虛擬機使用久了就會發現虛擬硬盤越來越大,但是進入虛擬機里的系統用命令看了下,實際占用的空間遠沒有虛擬硬盤大小那么大,這個讓人很不爽,而且在分享虛擬機鏡像的時候也很不方便。VirtualBox似乎沒有提供圖形界面的方式可以讓我們來壓縮虛擬硬盤大小,但是可以通過命令行來實現。經過實際測試,我的一個30多G的虛擬硬盤可以壓縮到13G大小,可見效果還是非常顯著的,這個可以壓縮的空間取決於你虛擬機內真實的空間占用大小。
VirtualBox同時支持自己的虛擬硬盤格式VDI和Vmware的VMDK格式,兩種格式的壓縮略有不同。
1. 碎片整理
第一步要做的是碎片整理,打開虛擬機,執行下面的命令:
Linux系統:
1
2
|
sudo
dd
if
=
/dev/zero
of=
/EMPTY
bs=1M
sudo
rm
-f
/EMPTY
|
Windows系統需要下載Sysinternals Suite並執行:
1
|
sdelete –z
|
2. 壓縮磁盤
關閉虛擬機,現在可以開始壓縮虛擬硬盤了
如果你的虛擬硬盤是VirtualBox自己的VDI格式,找到你的虛擬硬盤文件,執行命令:
1
|
VBoxManage modifyhd mydisk.vdi --compact
|
如果你的虛擬硬盤是Vmware的VMDK格式,那就要麻煩點,因為VirtualBox不支持直接壓縮VMDK格式,但是可以變通下:先轉換成VDI並壓縮,再轉回VMDK。執行命令:
1
2
3
|
VBoxManage clonehd
"source.vmdk"
"cloned.vdi"
--
format
vdi
VBoxManage modifyhd cloned.vdi --compact
VBoxManage clonehd
"cloned.vdi"
"compressed.vmdk"
--
format
vmdk
|
事實上,執行命令的過程中可以發現:在從VMDK轉換到VDI的過程中似乎已經做了壓縮,文件大小已經減少了很多,第二條命令反而沒見到文件大小有什么變化,所以這里第二條命令應該可以省略了。
參考:
http://my.oschina.net/tsl0922/blog/188276