虛擬機器使用久了就會發現虛擬硬碟越來越大,但是進入虛擬機器裡的系統用命令看了下,實際佔用的空間遠沒有虛擬硬碟大小那麼大,這個讓人很不爽,而且在分享虛擬機器映象的時候也很不方便。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