VMWare下的Linux虛擬機,使用時間越長,磁盤文件(*.vmdk文件)會越來越大。清理虛擬機內文件後,還是不會減少。用VMWare自帶的磁盤壓縮,也不見效果。這是個Linux虛擬機的通病,經過幾代VMWare版本的升級也得不到解決。
我有一個Ubuntu虛擬機,內部佔用硬盤空間只9GB(用df -hl命令查詢)左右,但是vmdk文件在29GB左右。在網上找了很久,通過自己實驗,終於解決了這個困擾多時的問題。
解決方法:
1、打開Ubuntu虛擬機的終端
sudo su
#使用root權限
cat /dev/zero > zero.fill
#將佔用空間卻無法清理的東西轉變成一個 zero.fill文件,這個過程的時間會比較長,最後出現:
cat: 寫入錯誤: 設備上沒有空間
rm -f zero.fill
#將這個zero.fill文件徹底刪除
注意:在此過程中並不會增大虛擬機vmdk文件的容量,因此不用擔心硬盤分區被擠爆。
sudo shutdown now
#關閉虛擬機
2、VMWare硬盤壓縮
編輯虛擬機設置——硬件——硬盤(SATA),選擇實用工具——壓縮(C)
過一段時間,等壓縮完畢後,將VMWare關閉。
重新打開VMWare,查看一下硬盤——容量——當前大小,應該會和虛擬機實際硬盤佔用相差不大了。
我的Ubuntu虛擬機壓縮前是29GB,壓縮後僅剩8.4GB,整整回收了20GB空間。
其實,Linux虛擬機壓縮按照這個方法是可靠的,不過安全起見,我在第一次做壓縮操作的時候還是將整個虛擬機目錄拷貝到另一個分區去做,最後確認沒問題了才拷貝回來覆蓋原來的目錄。