分区调整如何不丢失数据?

在Linux系统中调整磁盘大小是一项需要谨慎操作的任务,涉及分区、文件系统及逻辑卷管理,以下是详细操作指南,请务必提前备份重要数据,并在非生产环境测试后再执行。


调整前的关键准备

  1. 备份数据
    使用 rsyncdd 命令备份整个磁盘,

    rsync -av /mnt/data/ /backup/  # 备份目录
    dd if=/dev/sda1 of=/backup/sda1.img bs=4M  # 备份整个分区
  2. 检查磁盘状态
    • 确认磁盘挂载点:df -h
    • 查看分区表:sudo fdisk -l
    • 检查文件系统类型:lsblk -f
  3. 卸载分区(必须步骤)
    sudo umount /dev/sda1  # 替换为你的分区

调整分区大小(非LVM场景)

方法1:使用 parted(推荐)

sudo parted /dev/sda  # 进入交互模式
(parted) resizepart 1  # 选择分区号(例如分区1)
End? [旧值] 20GB      # 输入新结束位置(如扩容至20GB)
(parted) quit

方法2:使用 fdisk

sudo fdisk /dev/sda```
> **注意**:  
> - 分区只能向磁盘末尾方向扩展,不能缩小(除非先缩小文件系统)。  
> - 操作后需用 `partprobe` 更新内核分区表。
---
### **三、调整文件系统大小**
#### **EXT2/3/4 文件系统**(使用 `resize2fs`)
```bash
sudo resize2fs /dev/sda1  # 自动扩展到分区最大容量
sudo resize2fs /dev/sda1 15G  # 精确缩小至15GB(需先缩小分区)

XFS 文件系统(仅支持扩容)

sudo xfs_growfs /mnt/data  # 直接对挂载点操作(无需卸载)

Btrfs 文件系统

sudo btrfs filesystem resize +5G /mnt/data  # 增加5GB
sudo btrfs filesystem resize 10G /mnt/data   # 设置为10GB

LVM逻辑卷调整(推荐方案)

LVM(Logical Volume Manager)支持动态调整,更安全灵活。

扩展物理卷(PV)

sudo pvresize /dev/sdb1  # 调整已存在的PV

扩展逻辑卷(LV)

sudo lvextend -L +10G /dev/vg01/lv_data  # 增加10GB
sudo lvresize --size 30G /dev/vg01/lv_data  # 直接设为30GB

扩展文件系统

# EXT4
sudo resize2fs /dev/vg01/lv_data
# XFS
sudo xfs_growfs /mnt/data

缩小逻辑卷(谨慎操作)

sudo umount /mnt/data
sudo e2fsck -f /dev/vg01/lv_data  # 强制检查EXT4文件系统
sudo resize2fs /dev/vg01/lv_data 15G  # 先缩小文件系统
sudo lvreduce -L 15G /dev/vg01/lv_data  # 再缩小LV
sudo mount /dev/vg01/lv_data /mnt/data

关键注意事项

  1. 操作顺序
    扩容:调整分区 → 调整物理卷(LVM)→ 调整逻辑卷 → 调整文件系统
    缩容:备份 → 卸载 → 缩小文件系统 → 缩小逻辑卷/分区
  2. 风险规避
    • 缩容前必须用 e2fsck -f 检查EXT文件系统。
    • XFS 不支持缩小,需备份后重建分区。
    • 使用 dmesg | grep error 检查操作后错误日志。
  3. 工具依赖
    • 安装必要工具:sudo apt-get install e2fsprogs xfsprogs parted(Debian/Ubuntu)
    • 使用 fsck 修复文件系统损坏。

常见问题解决

  • 分区调整后系统未识别
    执行 partprobe -s 或重启系统。
  • “设备忙”错误
    确保分区已卸载,终止占用进程:lsof /mnt/data
  • LVM空间不足
    添加新物理卷:sudo vgextend vg01 /dev/sdc1

调整磁盘大小是高风险操作,严格遵循备份→检查→分步执行流程,对于生产环境,建议在专业运维人员指导下进行,LVM提供了更灵活的存储管理方案,推荐优先使用。

引用说明

  • Linux man pages: man fdisk, man parted, man lvm
  • The Linux Documentation Project (tldp.org)
  • Ubuntu Server Guide: Disk Management
  • Red Hat Enterprise Linux Storage Administration Guide

原创文章,发布者:酷番叔,转转请注明出处:https://cloud.kd.cn/ask/5679.html

(0)
酷番叔酷番叔
上一篇 2025年6月27日 04:11
下一篇 2025年6月27日 04:38

相关推荐

  • PHP-FPM服务异常如何重启?

    在Linux系统中重启PHP服务是常见的运维操作,通常发生在修改PHP配置(如php.ini)或更新代码后需要重新加载时,具体方法取决于PHP的运行方式和系统服务管理工具,以下是详细指南:确认PHP运行方式重启前需明确PHP的工作模式:PHP-FPM模式(主流):Nginx或Apache通过FastCGI与PH……

    2025年7月16日
    18700
  • linux如何启动apache

    在Linux系统中启动Apache服务是搭建Web服务的基础操作,不同Linux发行版可能因初始化系统(Systemd或SysVinit)的差异导致命令略有不同,但核心流程一致,以下从前提条件、启动步骤、验证方法、常见问题处理及开机自配置等方面详细说明,启动Apache的前提条件在启动Apache前,需确保已正……

    2025年9月8日
    13500
  • CDLinux如何使用?新手快速上手详细教程步骤指南

    CDLinux是一款轻量级的Linux发行版,专为系统维护、数据恢复和网络测试设计,具有体积小、启动快、兼容性强等特点,以下从安装启动、基础操作、核心功能到实用技巧,详细讲解其使用方法,帮助用户快速上手,准备阶段:下载与制作启动盘使用CDLinux前,需先下载镜像并制作启动盘,下载镜像:访问CDLinux官网……

    2025年9月25日
    13600
  • Linux如何打开TTY终端?操作步骤与方法详解

    在Linux系统中,tty(Teletypewriter,电传打字机)是终端设备的统称,它是用户与系统交互的重要接口,无论是物理终端、虚拟终端还是伪终端,都承担着输入输出功能,本文将详细介绍Linux系统中不同类型tty的打开方式、适用场景及相关操作细节,tty的基础概念与类型Linux中的tty主要分为以下几……

    2025年10月8日
    25400
  • Linux系统退出GDB调试器的正确方法是什么?

    在Linux系统中,GDB(GNU Debugger)是常用的程序调试工具,掌握退出GDB的方法是高效调试的基础,退出GDB的方式多样,可根据调试场景、程序状态及需求选择合适的方法,既能正常结束调试,也能应对异常卡顿或强制终止的情况,以下从常规退出、异常处理、脚本/批量退出等场景详细说明退出GDB的操作方法,常……

    2025年9月30日
    14300

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

联系我们

400-880-8834

在线咨询: QQ交谈

邮件:HI@E.KD.CN

关注微信