VMWare虚拟机磁盘扩容踩坑记录

不是我说你,你就不能创建虚拟机的时候就给个60G吗小气鬼

一共两次,第一次踩的坑比较多,如果碰到问题可以看看
顺利的话可以直接看第二次!
更新了第三次
第四次,没扩容但是磁盘满了

第五次,扩展虚拟分区

步骤总结

(该sudo的一定要sudo啊)

在VMWare进行虚拟机磁盘扩容

进入命令行:Ctrl + Alt + F2
查看分区

1
df -h

使用parted分区

1
2
3
4
5
sudo parted /dev/sda
(parted) print
(parted) resizepart 3 # 输入要调整的分区号(例如3)
End? [旧结束位置] # 输入磁盘最大可用值(例如100%或具体数值,如100GB对应21474836480s)
(parted) quit

刷新、扩展文件系统、修复文件系统

1
2
3
sudo partprobe /dev/sda	
sudo resize2fs /dev/sda3
sudo fsck -f /dev/sda3

逻辑卷的场景:

扩展逻辑卷,文件系统

1
2
3
4
sudo pvresize /dev/sda3									# 刷新 LVM 对分区的感知 (PV Resize)
sudo lvextend -l +100%FREE /dev/ubuntu-vg/ubuntu-lv # 扩展逻辑卷
sudo resize2fs /dev/ubuntu-vg/ubuntu-lv # 扩展文件系统
df -h

相关知识

术语 含义 类比
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扩展了,但是逻辑卷还没变

image-20260320150321591

然后刷新 LVM 对分区的感知 (PV Resize),扩展逻辑卷,扩展文件系统

1
2
3
4
sudo pvresize /dev/sda3
sudo lvextend -l +100%FREE /dev/ubuntu-vg/ubuntu-lv
sudo resize2fs /dev/ubuntu-vg/ubuntu-lv
df -h

每个命令,如果空间有更新的话都会有提示的

image-20260320150650379

第五次(Ubuntu Server)

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

image-20260206232909466

一看磁盘是有40G的,但是看这个分区一共大概就20G吧

查看空间情况

1
sudo fdisk -l /dev/sda

sda3分区是正常的,问题是LVM 只用了其中一部分

image-20260207221732076

查看实际使用

1
2
3
sudo pvdisplay /dev/sda3
sudo vgdisplay ubuntu-vg
sudo lvdisplay /dev/mapper/ubuntu--vg-ubuntu--lv

有19G空闲的,逻辑卷LV只用了19G

image-20260207222522301

扩容。扩展逻辑卷,扩展文件系统。然后查看分区情况

1
2
3
sudo lvextend -l +100%FREE /dev/ubuntu-vg/ubuntu-lv
sudo resize2fs /dev/ubuntu-vg/ubuntu-lv
df -h

image-20260207222935093

第四次

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

在这里插入图片描述
按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
2
3
(parted) resizepart 3   # 输入要调整的分区号(例如3)
End? [旧结束位置] # 输入磁盘最大可用值(例如100%或具体数值,如100GB对应21474836480s)
(parted) quit

在这里插入图片描述
退出 parted 后,强制刷新分区表:

1
sudo partprobe /dev/sda

扩展文件系统(ext4的情况)

1
sudo resize2fs /dev/sda3

在这里插入图片描述

验证扩展结果

1
2
df -h           # 查看根分区容量是否扩展
lsblk # 确认分区大小已更新

在这里插入图片描述在这里插入图片描述

第一次(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
2
apt update && apt install cloud-guest-utils
growpart /dev/sda 3

没有足够空间!
在这里插入图片描述尝试清理APT缓存和临时文件

1
2
3
4
5
6
7
8
9
# 清理APT下载的软件包缓存
apt clean

# 删除不再需要的旧版本软件包
apt autoremove

# 可选:清理旧的日志文件(谨慎操作)
# 这个我没搞
rm -rf /var/log/*.gz

清完尝试安装growpart,还是空间不足,于是尝试用parted手动分区
执行以下命令查看分区情况:

1
2
lsblk
fdisk -l /dev/sda

在这里插入图片描述记录需要扩展的分区(这里是/dev/sda3),确认 VMware 扩展后的磁盘总大小(是25GB啦)
运行parted

1
parted /dev/sda

执行print

1
print          # 查看当前分区表,确认分区号和结束位置

这里也能看到sda3是ext4文件系统
在这里插入图片描述调整分区

1
2
3
(parted) resizepart 3   # 输入要调整的分区号(例如3)
End? [旧结束位置] # 输入磁盘最大可用值(例如100%或具体数值,如100GB对应21474836480s)
(parted) quit

end我输入了25GB,最安全的方法应该是输入100%

在这里插入图片描述
退出 parted 后,强制刷新分区表:

1
partprobe /dev/sda

扩展文件系统(ext4的情况)

1
resize2fs /dev/sda3

在这里插入图片描述

验证扩展结果

1
2
df -h /         # 查看根分区容量是否扩展
lsblk # 确认分区大小已更新

看到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 /  # 实时查看根分区使用情况