PVE 虚拟机 Ubuntu 分区扩容实战:解决中间分区”挡路”问题

日期: 2026-02-18
环境: Proxmox VE (PVE), Ubuntu 24.04 LTS
工具: GParted Live (Ubuntu 安装盘自带)


1. 问题背景

在给 Ubuntu 虚拟机的 /home (/dev/sda4) 分区扩容时,发现虽然磁盘末尾有 10GB+ 的空闲空间,但无法直接合并。

原因分析: Linux 的分区扩容要求空间必须是连续的。如下图所示,目标分区 sda4 和 剩余空间 之间,隔了一个 sda5 分区。sda5 就像一堵墙,挡住了 sda4 向后延伸的道路。

磁盘分区现状
(图:sda5 挡在了 sda4 和空闲空间之间)

解决方案: 使用 Ubuntu Live CD 进入试用模式,通过 GParted 工具先移动 sda5,再扩容 sda4


2. 操作步骤

第一步:PVE 快照备份 (高危操作保险)

在进行任何磁盘分区移动操作前,务必在 PVE 控制台对虚拟机进行快照(Snapshot)。

  • 操作:PVE > 虚拟机 > Snapshots > Take Snapshot。
  • 目的:一旦操作失误导致数据丢失,可以一键回滚。

第二步:挂载 ISO 并进入 Live 环境

由于当前系统正在运行,无法移动正在挂载的分区,必须进入 Live 环境。

  1. 在 PVE 硬件设置中,将 CD/DVD Drive 挂载 Ubuntu 安装镜像 (ISO)。
  2. 在 Options > Boot Order 中将 CD/DVD 设为第一启动项。
  3. 重启虚拟机。
  4. 在 GRUB 启动菜单中,选择 **”Try or Install Ubuntu”**。

GRUB 启动菜单

  1. 进入欢迎界面后,点击 **”Try Ubuntu” (试用 Ubuntu)**,不要点击安装。

第三步:使用 GParted 移动分区

进入桌面后,搜索并打开 GParted 分区工具。

1. 移动”挡路”的 sda5

从 GParted 界面可以看到,sda4 和 unallocated (灰色空闲空间) 被 sda5 隔开。

GParted 初始状态

  • 右键点击 /dev/sda5 -> 选择 Resize/Move
  • 将 sda5 的滑块拖动到最右边(或者将 “Free space preceding” 设置为最大值)。
  • 目的:将那 10GB 空闲空间”挤”到 sda5 的左边(即 sda4 的右边)。

2. 扩容目标 sda4

现在 sda4 右侧已经紧邻空闲空间了。

  • 右键点击 /dev/sda4 -> 选择 Resize/Move
  • 拖动右边缘,占满所有空闲空间。

3. 应用更改 (Apply)

点击工具栏上方的 **打钩图标 (Apply All Operations)**。

  • 注意:移动分区数据可能需要几分钟,请耐心等待直到显示 “Completed”。

3. 最终结果

操作完成后,GParted 显示如下状态:

最终成功状态
(图:sda4 成功扩容至 19.31 GiB,无中间空隙)

  • 验证:重启虚拟机(记得卸载 ISO),进入系统执行 df -h,确认 /home 容量已更新。
  • 收尾:确认系统正常运行后,删除 PVE 的快照以释放空间。

总结:在 Linux 下扩容被阻挡的分区,核心思路是”挪腾位置”。在 PVE 虚拟机中,利用快照功能和 ISO 试用模式,可以安全、快速地完成这一操作,无需复杂的命令行计算。