Virtualization: Shrink VMWare Disk Files .vmdk 虚拟机 Linux / Ubuntu 磁盘 收缩 回收
1. 概述:
VMWare下Linux虚拟机无法回收磁盘空间。
2. 相关原因:
ext4不允许压缩磁盘:
参见:
3. 解决办法:
采用替代方法:
- 在虚拟机中添加一块新硬盘。
- 使用Ubuntu Live CD启动虚拟机。
- 使用gparted,对旧硬盘分区进行Resize,调整分区大小略大于已用空间大小即可。
- 使用gparted,对新硬盘进行分区,对应旧硬盘分区,每个分区略大于旧硬盘对应分区。
- 使用dd if=/dev/sdXx of=/dev/sdXx,将旧硬盘分区分别克隆到新硬盘分区。
- 使用gparted,对新硬盘分区进行Resize,调整分区大小至需要的大小。
- 检查新旧硬盘分区UUID,若一致,重启即可,否则需要修复新硬盘Grub。
4. 注:
命令参考:
sudo gparted
GPT分区表的硬盘
1. esp分区信息:
路径: /dev/sdb1
文件系统: fat32
大小: 512.00 MiB
UUID: D6XX-XXAF
名称: EFI System Partition
标识: boot, esp
首扇区: 2048
末扇区: 1050623
总扇区数: 1048576
2. ext4分区信息:
路径: /dev/sdb2
文件系统: ext4
大小: 1.76 TiB
UUID: 40x3f3xx-2x72-5xbc-ax53-9axxxdx576x5
首扇区: 1050624
sudo dd if=/dev/sda1 of=/dev/sdb1 bs=16M status=progress sudo dd if=/dev/sda2 of=/dev/sdb2 bs=16M status=progress
修复新硬盘Grub:
mount /dev/sdXx /mnt for i in /dev /dev/pts /proc /sys /run; do sudo mount -B $i /mnt$i; done sudo chroot /mnt sudo grub-install --recheck /dev/sdX sudo update-grub
grub修复工具:
Boot-Repair-Disk https://sourceforge.net/p/boot-repair-cd/home/Home/