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

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


调整前的关键准备

  1. 备份数据
    使用 rsync 或 dd 命令备份整个磁盘,

    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

相关推荐

  • 如何正确配置LVM?

    分区基础概念在红帽企业Linux 6(RHEL 6)安装过程中,磁盘分区是构建稳定系统环境的关键步骤,合理的分区方案能提升系统安全性、简化维护并优化性能,以下为详细操作指南:必需的分区/boot 分区作用:存放内核与启动文件大小:≥500MB(推荐1GB)格式:ext4注意:BIOS系统需置于MBR磁盘前2TB……

    2025年7月19日
    29000
  • 如何检查SSH服务状态?

    当你的Linux服务器能够ping通,却无法远程连接时,这通常意味着网络基础连通性正常,但远程服务本身存在问题,以下是系统化的排查与解决方案,涵盖常见原因和修复步骤:检查远程服务是否运行远程连接依赖特定服务(如SSH、VNC),需确认服务已启动:# 若未运行,启动服务sudo systemctl start s……

    2025年7月29日
    27600
  • Linux 如何查看系统大小端模式?

    在计算机体系结构中,字节序(Byte Order)是指多字节数据在内存中的存储顺序,主要分为大端序(Big-Endian)和小端序(Little-Endian),大端序是指高位字节存储在低地址,低位字节存储在高地址,符合人类阅读习惯(如数字“0x12345678”在内存中存储为12 34 56 78);小端序则……

    2025年10月4日
    24400
  • 如何将进程名设为my-service?

    将进程名称修改为”my-service”通常通过修改程序启动命令或配置文件实现,便于在系统进程列表(如ps/top)中清晰识别和管理该特定服务进程。

    2025年7月1日
    29100
  • 如何强制终止Linux无响应进程?

    基础概念:信号(Signal)杀死进程本质是向进程发送信号,常用信号包括:SIGTERM (15):默认终止信号,请求进程正常退出(允许保存数据),SIGKILL (9):强制立即终止进程(无法被捕获或忽略),SIGHUP (1):挂起信号(常用于重启进程),📌 优先使用 SIGTERM,若无效再尝试 SIGK……

    2025年7月24日
    33800

发表回复

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

联系我们

400-880-8834

在线咨询: QQ交谈

邮件:HI@E.KD.CN

关注微信