当前位置:首页 > Linux > 正文

Linux磁盘空间不足怎么扩容?

在Linux中调整磁盘空间通常使用fdisk或parted工具修改分区表,卸载分区后执行resize2fs(ext文件系统)或xfs_growfs(XFS文件系统)命令调整文件系统大小,最后重新挂载分区即可完成扩容。

调整前的必备准备

  1. 备份数据
    ️ 任何磁盘操作前必须备份重要数据!可使用 rsyncdd 命令,或工具如 Clonezilla
  2. 检查磁盘状态
    df -h                  # 查看磁盘使用情况
    lsblk                  # 显示块设备结构
    sudo fdisk -l          # 列出分区表
  3. 确保有未分配空间
    若需扩展分区,磁盘末端需有未分配的可用空间(可通过删除相邻分区或扩展虚拟磁盘实现)。

场景1:扩展LVM逻辑卷(推荐安全方式)

LVM(逻辑卷管理)提供灵活的磁盘调整能力,适用于大多数现代Linux系统。

步骤:

  1. 扩展物理卷(PV)
    若磁盘有新增空间(如虚拟机扩展了磁盘容量):

    sudo pvresize /dev/sda2  # 调整物理卷大小(假设sda2是PV)
  2. 扩展卷组(VG)

    sudo vgextend vg_name /dev/sda2  # 将新空间加入卷组
    sudo vgs                          # 验证卷组剩余空间
  3. 扩展逻辑卷(LV)

    sudo lvextend -L +20G /dev/vg_name/lv_name  # 增加20GB
  4. 调整文件系统
    根据文件系统类型选择命令:

    Linux磁盘空间不足怎么扩容?  第1张

    # ext4文件系统
    sudo resize2fs /dev/vg_name/lv_name
    # xfs文件系统
    sudo xfs_growfs /mount/point

场景2:调整非LVM分区(使用parted)

适用于传统分区表(如MBR/GPT),需卸载分区操作。

步骤:

  1. 删除并重建分区(保留数据)
    ️ 使用 partedresizepart 命令可避免数据丢失(仅限相邻空间扩展):

    sudo parted /dev/sda
    (parted) resizepart 3 100%   # 将分区3扩展到剩余所有空间
    (parted) quit
  2. 扩展文件系统

    sudo e2fsck -f /dev/sda3      # 强制检查文件系统
    sudo resize2fs /dev/sda3       # 扩展ext4文件系统
    # 若为xfs:先卸载分区 → sudo xfs_growfs /dev/sda3 → 重新挂载

场景3:缩小分区(高风险操作)

缩小操作需严格按顺序执行:文件系统 → 分区 → 重新分区

  1. 缩小文件系统(以ext4为例)

    sudo umount /dev/sdb1
    sudo e2fsck -f /dev/sdb1
    sudo resize2fs /dev/sdb1 50G   # 缩小文件系统至50GB
  2. 缩小分区
    使用 parted 调整分区边界至匹配文件系统新大小。


关键注意事项

  1. 操作限制

    • 无法缩小已挂载的分区(需先卸载)。
    • 主引导记录(MBR)磁盘不支持超过2TB。
    • 调整 /boot 分区需在救援模式下进行。
  2. 工具选择建议
    | 工具 | 用途 | 风险等级 |
    |————-|——————————-|———-|
    | fdisk | MBR分区表操作 | 高 |
    | parted | GPT分区表/动态调整 | 中 |
    | resize2fs | 调整ext2/3/4文件系统 | 低 |
    | xfs_growfs| 扩展XFS文件系统 | 低 |

  3. 数据恢复预案
    若操作失误导致数据丢失:

    • 立即卸载分区:sudo umount /dev/sdX
    • 使用 testdisk 扫描分区表
    • photorec 恢复文件

  • 优先使用LVM:简化空间调整,支持动态扩展。
  • 备份是铁律:尤其涉及分区表修改时。
  • 验证操作:每次调整后执行 df -hlsblk 确认结果。
  • 对云服务器或虚拟机,先在测试环境演练。

引用说明

  • Linux man pages: resize2fs(8), lvextend(8), parted(8)
  • Red Hat LVM管理指南: LVM Administration
  • Ubuntu磁盘调整文档: Partitioning/Resizing

通过遵循上述步骤和警告,可安全调整Linux磁盘空间,复杂操作建议结合官方文档或系统管理员协助完成。

0