問題:
我使用Mac系統,但個別應用在Mac下沒有對應順手的,所以采用VirtualBox虛擬機(以下稱VirtualBox軟件為VBox,里面安裝的虛擬機為VM),在里面安裝Windows操作系統。但Mac磁盤容量並不奢侈,最近突然發現容量很緊張,所以着手來處理一下虛擬機占用空間的問題。
現象:對於動態分配的虛擬硬盤,在VM中安裝系統和軟件后,即使將源安裝文件刪除了,虛擬硬盤文件在物理機中占用的空間也沒有減少,甚至還有增加。
原因:動態分配的虛擬硬盤,在使用后一旦分配了,就沒有釋放。
方法:
假設VM的虛擬硬盤在物理機中的路徑和名稱是 ~/VBoxes/MyWindows/MyWindows.vdi
1. 將VM系統中的空閑空間填0。
我的VM安裝的是Windows操作系統。微軟有發布一個小程序sdelete (官方鏈接:https://docs.microsoft.com/en-us/sysinternals/downloads/sdelete ),將它下載下來,放在VM的某個位置(我將它放在共享文件夾,這樣不占VM磁盤的空間)。使用如下命令可對磁盤(例子中是C盤,其他盤類似)的空閑部分填0。
sdelete -z C:\
2. 在物理機系統中壓縮虛擬硬盤。
將VM關機,回到物理機Mac系統的命令行,使用VBox自帶的VBoxManage命令對磁盤進行壓縮(Windows系統也有VBoxManage,操作是類似的)。執行如下代碼,對MyWindows.vdi進行壓縮:
VBoxManage modifymedium ~/VBoxes/MyWindows/MyWindows.vdi --compact
壓縮完后,空間大概小了1/3,可以緩解一下空間緊張狀態。