Linux 虚拟机根目录扩容指南(使用 GParted 和 LVM)

为运行中的 Linux 虚拟机扩展根目录(/)空间是一个相对复杂的操作,通常需要借助启动盘工具在系统外进行分区调整,随后在系统内完成逻辑卷和文件系统的扩展。本指南详细介绍了使用 GParted Live ISO 和 LVM 命令扩展根目录的完整流程。重要提示: 此操作存在风险,强烈建议在操作前备份重要数据。


1. 确认当前磁盘与分区信息

在开始扩容前,了解当前磁盘布局至关重要。执行以下命令:

  • df -h: 查看文件系统挂载点、已用空间和可用空间。
  • fdisk -l: 查看物理磁盘、分区表和分区信息。
root@qinghao_server:~$ df -h
Filesystem                        Size  Used Avail Use% Mounted on
...(省略其他行)...
/dev/mapper/ubuntu--vg-ubuntu--lv  192G  110G   73G  61% /  # 根目录(/),使用LVM,当前192G
/dev/sda2                         1.5G  309M  1.1G  23% /boot



root@qinghao_server:/home/qinghao_server# fdisk -l /dev/sda
Disk /dev/sda: 200 GiB ...  # 物理磁盘大小为200GB
...
Device       Start       End   Sectors   Size Type
/dev/sda1     2048      4095      2048     1M BIOS boot
/dev/sda2     4096   3149823   3145728   1.5G Linux filesystem  # /boot分区
/dev/sda3  3149824 419428351 416278528 198.5G Linux filesystem  # LVM物理卷分区

Disk /dev/mapper/ubuntu--vg-ubuntu--lv: 195 GiB ...  # 逻辑卷(根文件系统)大小为195GiB

理清概念 (LVM 架构):

  • 物理磁盘 (Physical Disk): /dev/sda (200GB)
  • 分区 (Partition): /dev/sda1 (BIOS boot), /dev/sda2 (/boot), /dev/sda3 (LVM 物理卷)
  • 物理卷 (Physical Volume, PV): /dev/sda3 被初始化为 LVM 物理卷。
  • 卷组 (Volume Group, VG): ubuntu-vg (由 /dev/sda3 组成)
  • 逻辑卷 (Logical Volume, LV): /dev/mapper/ubuntu--vg-ubuntu--lv (位于 ubuntu-vg 卷组上,格式化为文件系统并挂载到 /)
  • 流程概要: 扩展物理磁盘/dev/sda -> 扩展分区 /dev/sda3 -> 扩展物理卷 /dev/sda3 -> 扩展卷组 ubuntu-vg -> 扩展逻辑卷 ubuntu-lv -> 扩展文件系统。

2. 扩展虚拟机物理磁盘

关闭虚拟机。

在虚拟机管理程序 (如 VMware vSphere, Workstation, VirtualBox) 的设置中,找到目标虚拟硬盘。

将其大小调整到所需容量 (例如,从 200GB 扩展到 300GB)。

确认更改。(物理磁盘扩展完成)

3. 下载并挂载 GParted Live ISO

1. 从 https://gparted.org/download.php 下载最新的 GParted Live ISO 镜像。
2. 在虚拟机设置中,添加一个 CD/DVD 驱动器,并将其指向下载的 ISO 文件。
3. 确保该虚拟光驱在启动顺序中优先于硬盘(通常下一步设置)。

4.设置开机启动项

1. 启动虚拟机。
2. 在启动初期(通常是显示 BIOS/UEFI 信息时),按提示键(如 F2ESCDEL)进入 BIOS/UEFI 设置界面
3. 导航到 Boot 选项卡。
4. 调整启动顺序,将 CD-ROM Drive 或 Removable Devices 移动到硬盘之前(通常使用 +/- 键)。
5. 导航到 Exit 选项卡,选择 Save Changes and Exit 或类似选项。虚拟机将重启。

5. 启动进入 GParted Live 环境

1. 虚拟机重启后,会从 ISO 启动。选择 GParted Live (Default settings) 并按 Enter


2. 在键盘映射选择界面,选择 Don’t touch keymap 并按 Enter


3. 在语言选择界面,输入对应的数字(例如 33 为简体中文)或选择默认的 0 (US English) 并按 Enter


4. 在启动模式选择界面,输入 0 (使用默认运行模式) 并按 Enter。系统将加载 GParted 图形界面。

6. 使用 GParted 扩展分区

1. 桌面加载完成后,双击 GParted 图标启动程序。
2. 在右上角的下拉菜单中,务必确认选择了正确的磁盘 (例如 /dev/sda,对应 300GB)。
3. 在分区列表中,找到需要扩展的分区 (/dev/sda3)。它应该是紧跟在 /dev/sda2 (/boot) 之后、占据大部分空间的分区。
4. 右键单击 /dev/sda3 分区,选择 Resize/Move

5. 在打开的对话框中:
* 拖动分区条右侧的箭头到磁盘最末端,或者直接在 New size 后的 Maximum 框中输入最大值。
* 确保 Free space following 变为 0
* 点击 Resize

6. 点击 GParted 工具栏上的 绿色对勾图标 (Apply)。在弹出的确认对话框中点击 Apply

7. 等待操作完成(进度条走完),点击 Close
8. 关闭 GParted 窗口和 GParted Live 桌面环境。
9. 系统关机。在虚拟机设置中移除 GParted ISO 文件,确保下次从硬盘启动。

7. 扩展逻辑卷 (LV) 和文件系统

1. 启动虚拟机并正常登录系统。
2. 验证分区已扩展 (物理卷空间已增加):

sudo fdisk -l /dev/sda

预期输出 (关键变化):
Disk /dev/sda: 300 GiB … # 物理磁盘已变为300GB

(分区 /dev/sda3 扩展完成)

3. 扩展物理卷 (PV): LVM 会自动检测到 /dev/sda3 上的空闲空间,无需额外命令扩展 PV。
4. 扩展卷组 (VG): 扩展后的 PV (/dev/sda3) 上的空闲空间会自动加入其所在的 VG (ubuntu-vg),也无需额外命令。使用 sudo vgdisplay 可查看 VG 的 Free PE / Size 确认。
5. 扩展逻辑卷 (LV): 将 VG 中的空闲空间分配给 LV (ubuntu-lv)。注意: 建议预留少量空间(如本例从 298.5G 扩展到 295G)以避免计算误差导致失败。

lvextend -L 295G /dev/mapper/ubuntu--vg-ubuntu--lv

预期输出:
Size of logical volume ubuntu-vg/ubuntu-lv changed from 195.00 GiB (49920 extents) to 295.00 GiB (75520 extents). Logical volume ubuntu-vg/ubuntu-lv successfully resized.

6. 扩展文件系统: 在线调整根文件系统大小。

bash sudo resize2fs /dev/mapper/ubuntu--vg-ubuntu--lv

预期输出:
resize2fs 1.45.5 (07-Jan-2020) Filesystem at /dev/mapper/ubuntu--vg-ubuntu--lv is mounted on /; on-line resizing required old_desc_blocks = 25, new_desc_blocks = 37 The filesystem on /dev/mapper/ubuntu--vg-ubuntu--lv is now 77332480 (4k) blocks long.
(扩展完成)

使用 Docker 快速搭建 PostgreSQL 数据库 RustFS:基于 Rust 的高性能分布式对象存储 —— MinIO 的新替代方案! ESXi 6.7/7.0/8.0配置GPU/硬盘直通
View Comments
There are currently no comments.