VMWare虚拟机磁盘扩容踩坑记录
不是我说你,你就不能创建虚拟机的时候就给个60G吗小气鬼
一共两次,第一次踩的坑比较多,如果碰到问题可以看看
顺利的话可以直接看第二次!
更新了第三次
第四次,没扩容但是磁盘满了
第五次,扩展虚拟分区
步骤总结
(该sudo的一定要sudo啊)
在VMWare进行虚拟机磁盘扩容
进入命令行:Ctrl + Alt + F2
查看分区
1 | df -h |
使用parted分区
1 | sudo parted /dev/sda |
刷新、扩展文件系统、修复文件系统
1 | sudo partprobe /dev/sda |
逻辑卷的场景:
扩展逻辑卷,文件系统
1 | sudo pvresize /dev/sda3 # 刷新 LVM 对分区的感知 (PV Resize) |
相关知识
| 术语 | 含义 | 类比 |
|---|---|---|
| PV (Physical Volume) | 物理磁盘/分区 | 硬盘 |
| VG (Volume Group) | PV 组成的资源池 | 硬盘阵列 |
| LV (Logical Volume) | 从 VG 划出的虚拟分区 | C盘/D盘 |
| PE (Physical Extent) | 最小分配单元,默认 4MB | 簇/块 |
扩容经历
第六次(Ubuntu Server)
还是VMWare扩容,parted
查看实际分区表
1 | lsblk /dev/sda |
可以看到sda3扩展了,但是逻辑卷还没变

然后刷新 LVM 对分区的感知 (PV Resize),扩展逻辑卷,扩展文件系统
1 | sudo pvresize /dev/sda3 |
每个命令,如果空间有更新的话都会有提示的

第五次(Ubuntu Server)
Ubuntu Server的分区有些不一样。应该扩展根分区/dev/mapper/ubuntu–vg-ubuntu–lv(这名字咋这么奇怪)

一看磁盘是有40G的,但是看这个分区一共大概就20G吧
查看空间情况
1 | sudo fdisk -l /dev/sda |
sda3分区是正常的,问题是LVM 只用了其中一部分

查看实际使用
1 | sudo pvdisplay /dev/sda3 |
有19G空闲的,逻辑卷LV只用了19G

扩容。扩展逻辑卷,扩展文件系统。然后查看分区情况
1 | sudo lvextend -l +100%FREE /dev/ubuntu-vg/ubuntu-lv |

第四次
没扩容但是磁盘满了(应该是),也是这个现象

按Ctrl + Alt + F2进入命令行。查看容量,/dev/sda3分区满了(爆了
扩容。关机,编辑虚拟机设置。坏了,得删快照
使用parted分区
这里因为resize2fs忘记sudo了卡了一下
第三次
扩展到30G,也是黑屏打印/dev/sda
不过知道了个新办法。按Ctrl + Alt + F2进入命令行,登录用户可以执行命令。有个问题就是汉字显示不出来,会有乱码,总之差不多看得懂就行啦
接下来就是正常流程
parted
print
resizepart
更新分区
partprobe
resize2fs
然后验证,df -h,lsblk

第二次
这次在VMware扩展完磁盘可以正常开机诶,好神奇
那就直接用parted改分区大小吧
1 | sudo parted /dev/sda |
执行print
1 | print # 查看当前分区表,确认分区号和结束位置 |

调整分区
1 | (parted) resizepart 3 # 输入要调整的分区号(例如3) |

退出 parted 后,强制刷新分区表:
1 | sudo partprobe /dev/sda |
扩展文件系统(ext4的情况)
1 | sudo resize2fs /dev/sda3 |

验证扩展结果
1 | df -h # 查看根分区容量是否扩展 |


第一次(Ubuntu)
一次虚拟机扩容踩坑记录,搞完是25.3.10了
方法很脚踩香蕉皮,不太建议参考
参考:VMware虚拟机解决空间不足,增加磁盘空间(磁盘扩容)
开头是参考这个,后面出问题了就问ds去了(大半篇都是一边踩坑一边问ds)
感觉也可以结合这个看VMware扩展硬盘后无法正常开机的解决方法,就不要像我一样到处踩了
磁盘扩展
关闭虚拟机,点击编辑虚拟机设置-硬盘-扩展

分区
启动虚拟机,发现一直停在这个页面
查了下应该是现在系统要正确分区才能启动了
强制重启并进入恢复模式
重新启动虚拟机,在启动时按住 Shift 键进入GRUB菜单(这里注意要先Ctrl + G定向输入到虚拟机再按shift,鼠标点好像没用)
选择 Advanced options for Ubuntu → 选择带有 (recovery mode) 的内核。
选择 root(进入root shell)。
执行以下命令挂载根分区为可读写:
1 | mount -o remount,rw / |
查看扩展后的磁盘容量是否被识别:
1 | fdisk -l /dev/sda |
磁盘总量是25GB,但是因为没分区,分区容量还是20GB的
使用 growpart 工具扩展分区(分区为 /dev/sda3)
1 | apt update && apt install cloud-guest-utils |
没有足够空间!
尝试清理APT缓存和临时文件
1 | # 清理APT下载的软件包缓存 |
清完尝试安装growpart,还是空间不足,于是尝试用parted手动分区
执行以下命令查看分区情况:
1 | lsblk |
记录需要扩展的分区(这里是/dev/sda3),确认 VMware 扩展后的磁盘总大小(是25GB啦)
运行parted
1 | parted /dev/sda |
执行print
1 | print # 查看当前分区表,确认分区号和结束位置 |
这里也能看到sda3是ext4文件系统
调整分区
1 | (parted) resizepart 3 # 输入要调整的分区号(例如3) |
end我输入了25GB,最安全的方法应该是输入100%

退出 parted 后,强制刷新分区表:
1 | partprobe /dev/sda |
扩展文件系统(ext4的情况)
1 | resize2fs /dev/sda3 |

验证扩展结果
1 | df -h / # 查看根分区容量是否扩展 |
看到sda3已经扩展了
修复文件系统
运行文件系统检查,防止潜在错误:
1 | fsck -f /dev/sda3 |
提示sda3正挂载着(之前看到根目录/就是挂载到sda3下的),fsck无法安全地进行检查,所以退出了

需要先卸载分区
重启虚拟机,在启动时按住 Shift 键进入 GRUB 菜单,选择 Advanced options for Ubuntu → 选择带有 (recovery mode) 的内核,选择 root
以只读模式重新挂载根分区
1 | mount -o remount,ro / |
卸载sda3分区
1 | umount /dev/sda3 |

提示target is busy,说明仍然有进程在占用分区(这是当然的吧!)
尝试延迟卸载
1 | umount -l /dev/sda3 # -l 表示“lazy unmount”,解除挂载后让进程逐渐退出 |
报了一大堆错捏,大意是说这些东西找不到,应该是因为一些关键目录标记成了未挂载,需要重新挂载
这样也没法fsck,很麻烦啊很麻烦
Live ISO
后面问ds回答又滚回去了,所以总结了一下问他,于是他终于拿出了终极解决方案——Live ISO
关机
编辑虚拟机设置 → CD/DVD 驱动器 → 选择 Ubuntu 安装镜像(如 ubuntu-22.04.3-desktop-amd64.iso),勾选 Connect at power on。
不知道为什么我这有两个…?随便选了一个
启动时快按Esc进入启动菜单,选择 CD/DVD Drive 启动,在 Live 启动界面选择 Try Ubuntu(无需安装系统)
(此处重启了三四次(怒
选择try!
打开终端,获取用户权限
1 | sudo -i # 切换至 root 用户 |
确认根分区设备名(根据容量和挂载点判断)…没有根目录是什么情况啊!但是应该没问题
果然是没挂载,如果挂载了的话用umount卸载
1 | umount /dev/sda3 # 如果系统自动挂载了分区,先卸载 |
执行文件系统检查与修复
1 | fsck -y /dev/sda3 |
看起来应该是sda3没问题(太好了我去兜这么大一圈子早知道就不fsck了)
卸载Live ISO并重启,先关机,然后取消CD/DVD的启动时连接
这里我之前都是勾选的,但是查了下平时还是不要勾选为好,防止平时使用时不小心从CD/DVD驱动器启动了,这个选项通常用于安装操作系统、运行启动盘工具或进行系统恢复等操作。所以取消勾选!
然后正常启动虚拟机,已经能正常显示桌面了,再检查一下分区容量
1 | df -h |
查看启动日志
1 | journalctl -b -p 3 # 检查本次启动的错误信息 |
嗯也看不太懂
后续
要关注磁盘空间状况啊!
定期清理系统
1 | sudo apt autoremove && sudo apt clean # 删除无用软件包和缓存 |
监控磁盘空间
1 | watch df -h / # 实时查看根分区使用情况 |