温馨提示×

Ubuntu文件系统如何扩容与缩容

小樊
54
2025-09-23 01:29:43
栏目: 智能运维

Ubuntu文件系统扩容与缩容指南

一、文件系统扩容

扩容分为普通分区扩容(适用于非LVM环境)和LVM逻辑卷扩容(推荐,更灵活),以下是具体步骤:

(一)普通分区扩容(ext4/XFS)

1. 准备工作

  • 备份数据:扩容操作有数据丢失风险,务必提前备份重要文件。
  • 确认分区信息:使用lsblk查看磁盘分区布局(如/dev/sda1),df -Th确认文件系统类型(ext4/XFS)。
  • 确保未分配空间:若无未分配空间,需先缩小其他分区或添加新磁盘。

2. 扩展分区(以ext4为例)

  • 使用GParted图形工具(推荐新手):
    1. 安装GParted:sudo apt install gparted
    2. 运行GParted,选择目标磁盘(如/dev/sda)。
    3. 右键点击目标分区(如/dev/sda1),选择“Resize/Move”。
    4. 拖动分区边界或输入新大小,点击“Apply”完成扩展。
  • 使用命令行工具(如parted):
    1. 启动parted:sudo parted /dev/sda
    2. 查看分区表:print
    3. 调整分区大小:resizepart 1 新结束扇区(如resizepart 1 200GB,需指定具体扇区)。
    4. 退出并保存:quit

3. 扩展文件系统

  • ext4文件系统:使用resize2fs命令,无需卸载(若分区为根分区,建议用Live CD):
    sudo resize2fs /dev/sda1 # 自动扩展至分区最大容量 sudo resize2fs /dev/sda1 100G # 扩展至指定大小(如100GB) 
  • XFS文件系统:需使用xfs_growfs,且仅能扩展不能缩小
    sudo xfs_growfs /dev/sda1 # 扩展至分区最大容量 sudo xfs_growfs /mount/point # 通过挂载点扩展(如/) 

(二)LVM逻辑卷扩容(推荐)

LVM提供更灵活的存储管理,适合动态调整空间,步骤如下:

1. 准备工作

  • 确认LVM结构:使用以下命令查看物理卷(PV)、卷组(VG)、逻辑卷(LV)信息:
    sudo pvdisplay # 查看物理卷 sudo vgdisplay # 查看卷组 sudo lvdisplay # 查看逻辑卷 

2. 扩展逻辑卷

  • 场景1:有未分配物理空间(如新增硬盘):
    1. 将新硬盘初始化为物理卷:sudo pvcreate /dev/sdb/dev/sdb为新硬盘)。
    2. 将物理卷添加到现有卷组:sudo vgextend ubuntu-vg /dev/sdbubuntu-vg为卷组名)。
  • 场景2:缩小其他分区释放空间
    1. 缩小原分区(参考“缩容”部分),释放未分配空间。
    2. 将未分配空间添加到物理卷:sudo pvresize /dev/sda/dev/sda为原物理卷)。
  • 扩展逻辑卷
    sudo lvextend -l +100%FREE /dev/mapper/ubuntu--vg-ubuntu--lv # 扩展至卷组所有剩余空间 sudo lvextend -L +10G /dev/mapper/ubuntu--vg-ubuntu--lv # 扩展10GB 

3. 扩展文件系统

  • ext4文件系统
    sudo resize2fs /dev/mapper/ubuntu--vg-ubuntu--lv # 自动扩展至逻辑卷大小 
  • XFS文件系统
    sudo xfs_growfs /dev/mapper/ubuntu--vg-ubuntu--lv # 扩展至逻辑卷大小 

二、文件系统缩容

缩容风险更高(易导致数据丢失),需特别注意文件系统类型限制(XFS不支持缩小):

(一)普通分区缩容(ext4)

1. 准备工作

  • 备份数据:必须提前备份。
  • 确认文件系统类型:ext4支持缩小,XFS不支持。
  • 卸载分区:若为根分区,需用Live CD启动;若为非根分区,可直接卸载:
    sudo umount /dev/sda1 

2. 检查文件系统

sudo e2fsck -f /dev/sda1 # 强制检查并修复ext4文件系统 

3. 缩小文件系统

sudo resize2fs /dev/sda1 50G # 先缩小文件系统至50GB(目标大小需小于当前大小) 

4. 缩小分区

  • 使用GParted:右键点击分区→“Resize/Move”→拖动边界至目标大小→“Apply”。
  • 使用命令行parted):
    1. 启动parted:sudo parted /dev/sda
    2. 查看分区表:print
    3. 缩小分区:resizepart 1 50GB(将分区1缩小至50GB)。
    4. 退出:quit

5. 重新挂载

sudo mount /dev/sda1 /mnt # 挂载至原挂载点(如/mnt) 

(二)LVM逻辑卷缩容

1. 准备工作

  • 备份数据:必须提前备份。
  • 卸载分区:同普通分区。

2. 检查文件系统

sudo e2fsck -f /dev/mapper/ubuntu--vg-ubuntu--lv 

3. 缩小文件系统

sudo resize2fs /dev/mapper/ubuntu--vg-ubuntu--lv 50G # 先缩小文件系统 

4. 缩小逻辑卷

sudo lvreduce -L 50G /dev/mapper/ubuntu--vg-ubuntu--lv # 缩小逻辑卷至50GB 

5. 重新挂载

sudo mount /dev/mapper/ubuntu--vg-ubuntu--lv /mnt 

(三)注意事项

  • XFS文件系统不支持缩小,若需缩小必须备份数据、重新格式化为ext4。
  • 操作顺序:务必先缩小文件系统,再缩小分区/逻辑卷,否则会导致数据损坏。
  • 根分区缩容:需用Live CD启动(如Ubuntu安装盘),避免分区被占用。

三、关键提醒

  1. 备份优先:所有磁盘操作前,务必备份重要数据(可使用rsync或外部存储)。
  2. 文件系统限制:XFS仅支持扩展,不支持缩小;ext4支持双向调整,但需谨慎操作。
  3. LVM优势:若系统使用LVM,扩容/缩容更灵活,推荐优先采用。
  4. 验证结果:操作后使用df -h查看分区大小,确保调整正确。

0