Virtualbox 文件转换 压缩和扩容
我的虚拟机使用的是Virtualbox
挂在的之前Vmware
创建的.vmdk
文件,最近突然发现原来分配的100G磁盘容量已经不够实用,实际虚拟机系统并未使用如此大的磁盘容量,具体原因是VMware虚拟机的虚拟磁盘的大小会随着使用时间不断变大,而且只赠不减。即使在虚拟系统中删除了磁盘中的文件,虚拟磁盘的大小仍然不会变小。
克隆.vmdk
文件为.vdi
文件
F:\Devs\Oracle\VirtualBox\VBoxManage.exe clonehd source.vmdk cloned.vdi --format vdi
挂在文件到虚拟机
挂在过程会报错: 错误:打开虚拟硬盘失败,UUID already exists
, 克隆的磁盘文件的uuid
和之前的vmdk
文件一致,所以修改一下uuid
即可
F:\Devs\Oracle\VirtualBox\VBoxManage.exe internalcommands sethduuid cloned.vdi 131b2a66-a477-41dd-b920-1a0a460d3ec8
之后就可以正常挂载了
磁盘瘦身
1.在虚拟机上执行命令
sudo dd if=/dev/zero of=zero.fill
sudo rm -f zero.fill
poweroff
确保空间足够存放zero.fill,不然整个系统将会由于空间耗尽导致各种异常
2.在宿主机上执行命令
F:\Devs\Oracle\VirtualBox\VBoxManage.exe modifyvdi cloned.vdi --compact
扩展磁盘容量
扩展到120G
F:\Devs\Oracle\VirtualBox\VBoxManage.exe modifyhd cloned.vdi --resize 122880
现在有了更大的虚拟磁盘了,但是对应的操作系统里分区的大小还是原来那样,不能访问刚刚增加的空间。扩展客户机操作系统的分区就像扩展一个物理计算机的真实分区。必须在虚拟机里的系统未运行状态下进行,正像你不能在系统还在运行时来扩大C盘的大小.
后续需要结合 GParted工具 工具,参考扩大虚拟机硬盘容量