減小VirtualBox虛擬硬碟檔案的大小

findumars發表於2014-08-07

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

相關文章