温馨提示×

ubuntu文件系统怎么缩小

小樊
37
2025-12-26 04:32:54
栏目: 智能运维

Ubuntu 文件系统缩小实操指南

一、先确认关键信息

  • 查看分区与挂载点:lsblk -fdf -h
  • 确认文件系统类型:blkid /dev/sdXNdf -T
  • 重要规则:
    • ext2/ext3/ext4:可缩小,但必须先缩小文件系统,再缩小分区;已挂载时只能扩大,缩小需卸载。
    • XFS:仅支持扩大,不支持缩小(缩减需备份后格式化重建)。

二、场景一 非 LVM 的 ext4 分区(含普通数据盘、可卸载分区)

  • 适用:如单独的 /home 或数据分区,能在系统中卸载。
  • 步骤:
    1. 卸载目标分区:sudo umount /dev/sdXN
    2. 强制检查并缩小文件系统(先算好目标大小):
      • 查看最小可缩到多大:sudo resize2fs -P /dev/sdXN
      • 检查:sudo e2fsck -f /dev/sdXN
      • 缩小到目标值(如 10G):sudo resize2fs /dev/sdXN 10G
    3. 缩小分区表(两种工具二选一,操作前确认单位与扇区):
      • 使用 parted(推荐交互式):
        sudo parted /dev/sdX
        (parted) resizepart N END
        
        例:resizepart 5 11G(END 可用 4GB/10%/ -1s 等单位;建议略大于文件系统,避免损失)
      • 或使用 fdisk 删除后按新大小重建分区(保持起始扇区不变,仅改结束扇区)。
    4. 如有需要,把文件系统扩到与分区一致(若上一步留了余量):sudo resize2fs /dev/sdXN
    5. 重新挂载:sudo mount /dev/sdXN /mount/pointsudo mount -a
    6. 核对:df -hlsblk -f

三、场景二 LVM 逻辑卷(含根分区)

  • 适用:/dev/mapper/vg-lv 这类 LVM 卷。
  • 步骤(ext4 为例):
    1. 可卸载卷(如 /home)可直接操作;根分区需进入救援/单用户/LiveCD 环境卸载后再做。
    2. 缩小文件系统(先检查再缩,目标如 20G):
      sudo e2fsck -f /dev/mapper/vg-lv
      sudo resize2fs /dev/mapper/vg-lv 20G
      
    3. 缩小逻辑卷(注意单位与可用空间):
      sudo lvreduce -L 20G /dev/mapper/vg-lv
      
    4. 若第 2 步未把文件系统扩满分区,可再把文件系统扩到与 LV 一致:
      sudo resize2fs /dev/mapper/vg-lv
      
    5. 重启或重新挂载核验:df -hlvslsblk -f
  • 重要提示:
    • ext4 的 LV 不支持在线缩小;根分区必须离线操作(救援模式/LiveCD)。
    • XFS 不支持缩小(LVM+XFS 只能在线扩容,不能缩)。

四、场景三 根分区为非 LVM 的 ext4(系统盘离线缩小)

  • 思路:借助 LiveCD/救援模式 启动,确保根分区未挂载,然后按“先文件系统后分区”的顺序操作。
  • 步骤:
    1. 用 Ubuntu 安装介质启动 → 选择 Try Ubuntu(或救援模式)。
    2. 确认设备:lsblk -fblkid
    3. 检查并缩小文件系统到目标值(如 40G):
      sudo e2fsck -f /dev/sdX1
      sudo resize2fs /dev/sdX1 40G
      
    4. 缩小分区(两种工具二选一):
      • parted:resizepart 1 41G(建议略大留余量)
      • fdisk:删除分区后重建,保持起始扇区不变,仅改结束扇区。
    5. 重启进入系统核验:df -hlsblk -f
  • 风险提示:根分区操作风险高,务必先完整备份,并确保目标大小≥已用数据量。

五、常见问题与校验

  • 缩小顺序永远为:先文件系统 → 后分区/LV;文件系统不可大于底层分区或 LV。
  • 已挂载的 ext4 只能扩大,缩小必须卸载;XFS 不支持缩小。
  • 缩小分区时建议目标值略大于文件系统(例如多预留 100–500MB),避免由于单位换算或元数据导致“设备太小”错误。
  • 调整后若发现 /etc/fstab 挂载失败,用 blkid 核对 UUID 并更新 fstab。
  • 操作前务必做好完整备份,并在关键步骤后核验:df -hlsblk -fblkidresize2fs -P(查看最小大小)。

0