Ubuntu 分区后扩展空间的实用步骤
一、操作前准备与风险
- 备份重要数据(扩容涉及分区表与文件系统变更,存在数据丢失风险)。
- 确认当前磁盘与分区布局:使用命令查看设备与挂载点。
- 查看块设备与分区:lsblk
- 查看文件系统与挂载:df -hT
- 查看详细分区表:sudo parted -l
- 虚拟机场景需先在虚拟化平台扩展虚拟磁盘容量,再进入系统扩容分区与文件系统。
二、场景一 LVM 根分区扩容(最常见)
- 适用特征:根分区位于 /dev/mapper/ubuntu–vg-* 或 /dev/ubuntu-vg/*,即使用 LVM。
- 步骤
- 扩展底层分区(若底层分区未变大,先扩分区)
- 查看并调整分区大小:sudo parted /dev/sda
- 在 parted 中执行:print 查看;resizepart 3 100% 将分区 3 扩展到最大(示例以 sda3 为 LVM 物理卷所在分区)。
- 让 LVM 识别新增空间
- 刷新物理卷:sudo pvresize /dev/sda3
- 扩展逻辑卷
- 将卷组全部空闲空间给根逻辑卷:sudo lvextend -l +100%FREE /dev/ubuntu-vg/ubuntu-lv
- 扩展文件系统
- 若是 ext2/ext3/ext4:sudo resize2fs /dev/ubuntu-vg/ubuntu-lv
- 若是 xfs:sudo xfs_growfs /(以实际挂载点为准)
- 验证
三、场景二 非 LVM 的 ext4 分区扩容(传统分区)
- 适用特征:根分区或数据分区为普通分区(如 /dev/sda2),文件系统为 ext4。
- 步骤
- 虚拟机先在平台扩展虚拟磁盘;物理机则新增磁盘或替换更大磁盘。
- 扩展分区
- 推荐工具 growpart(云镜像常见):sudo growpart /dev/sda 2
- 或使用 parted:sudo parted /dev/sda → resizepart 2 100%
- 扩展文件系统
- 对 ext4:sudo resize2fs /dev/sda2
- 验证
四、场景三 新增磁盘并入 LVM 卷组
- 适用特征:新增一块磁盘(如 /dev/vdb),希望并入现有 LVM 卷组以扩容根分区或其他逻辑卷。
- 步骤
- 初始化新磁盘为物理卷:sudo pvcreate /dev/vdb
- 扩展卷组:sudo vgextend ubuntu-vg /dev/vdb
- 扩展逻辑卷(示例为根分区):sudo lvextend -l +100%FREE /dev/ubuntu-vg/ubuntu-lv
- 扩展文件系统
- ext4:sudo resize2fs /dev/ubuntu-vg/ubuntu-lv
- xfs:sudo xfs_growfs /
- 验证:df -h 与 sudo vgdisplay 查看空间变化。
五、常见问题与注意事项
- 未分配空间必须与目标分区相邻(同一磁盘上、其后方连续),否则需先移动分区,建议用 GParted Live 操作。
- 扩展分区前请关闭 swap(如 /dev/sda5 为 swap):sudo swapoff -a,调整完再 sudo swapon -a;若调整了 swap 分区或位置,需同步更新 /etc/fstab 中的 UUID。
- 文件系统类型不同,扩容命令不同:ext2/3/4 用 resize2fs,xfs 用 xfs_growfs(且以挂载点执行)。
- 虚拟机扩容务必先在宿主平台完成磁盘扩容,再进入系统执行分区与文件系统调整。
- 重要数据请先完整备份;对关键业务系统建议在维护窗口操作,并确保有回滚方案。