压缩虚拟磁盘文件大小
压缩分为两个步骤:
- 将客户机的磁盘空闲空间置零
- 在宿主机压缩客户机的虚拟磁盘
第一步:清除虚拟机的空闲磁盘空间
Linux 客户机系统
将系统空闲空间用 0 填满,然后删除。有两种方法:
第一种:
| Bash |
|---|
| cat /dev/zero > zero.fill;sync;sleep 1;sync;rm -f zero.fill
|
第二种(推荐):
| Bash |
|---|
| dd if=/dev/zero of=./zero.fill bs=1M
rm -f ./zero.fill
|
Windows 客户机系统
将系统空闲空间置为 0,Windows系统需要下载 Sysinternals Suite sdelete 并执行:
清理完后,记得将虚拟机关机!
第二步:在宿主机压缩客户机的虚拟磁盘
VirtualBox 宿主机压缩命令
| Text Only |
|---|
| # Linux Host:
vboxmanage modifymedium --compact /path/to/thedisk.vdi
# Windows Host:
VBoxManage.exe modifymedium --compact c:\path\to\thedisk.vdi
# Mac Host:
VBoxManage modifymedium --compact /path/to/thedisk.vdi
|
如果虚拟硬盘是 VMDK 格式,则需要转换:
| Bash |
|---|
| vboxmanage clonehd "source.vmdk" "cloned.vdi" --format vdi
vboxmanage clonehd "cloned.vdi" "compressed.vmdk" --format vmdk
|
VMware Linux 宿主机压缩命令
| Text Only |
|---|
| /usr/bin/vmware-toolbox-cmd disk shrinkonly
|
如果提示:shrink disk is disabled for this virtual machine,有两种可能:
- 磁盘是固定分配大小的,这样的话不能收缩
- 当前磁盘存在快照,删除快照后就再试
VMware Windows 宿主机压缩命令
使用图形界面:
- 虚拟机设置 -> 硬件**选项卡 -> 选择一块**硬盘 -> 磁盘实用工具 -> 压缩
命令行:在 vmware 安装目录下,执行下面命令:
| Text Only |
|---|
| D:\VMware>vmware-vdiskmanager.exe -k C:\Users\windows\Desktop\xxxx-disk1.vmdk
|