VMware 可以在軟件上圖形化窗口直接操作 “壓縮磁盤以回收未使用的空間”(方法:編輯虛擬機設置 -> 選取 “硬盤” -> 點擊右側 “壓縮” 即可)。
VirtualBox 6(目前的最新版本)不支持軟件窗口操作縮小虛擬機磁盤空間或者壓縮虛擬機磁盤空間(不因虛擬機中刪除文件釋放空間),但提供 VBoxManage 命令進行清理。
一、Windows 環境
1、在虛擬機中,從微軟官網下載SDelete (https://technet.microsoft.com/en-us/sysinternals/bb897443),下載完成后解壓,然后 cmd 進入到剛剛存放的目錄下(如 直接放在c盤根目錄下),打開 cmd 執行:
-- 把整個 c 盤下的未使用的磁盤空間標記為 0,執行完后把虛擬機關機
------------------------------------------------------
C:\sdelete -z c:\
------------------------------------------------------
舉例:
2、然后進入宿主機 VBoxManage.exe 目錄(通常為 VirtualBox 安裝目錄),然后執行 BoxManage 命令壓縮 VDI 虛擬機磁盤文件即可。
------------------------------------------------------
D:
cd D:\Program Files\Oracle\VirtualBox
VBoxManage modifyhd F:\VMs\windows_xp_professional_sp3_x86.vdi –compact
------------------------------------------------------
舉例:(我是桌面環境是Ubuntu18.04下安裝的Virtualbox命令執行過程與Windows略有不同“Win7\ ASP\ Config\ -disk001.vdi”是呀回收空間的磁盤)
------------------------------------------------------
pipci@HP:~/vsd/Virtualbox/Win7 ASP work$ vboxmanage modifyhd Win7\ ASP\ Config\ -disk001.vdi -compact
0%...10%...20%...30%...40%...50%...60%...70%...80%...90%...100%
pipci@HP:~/vsd/Virtualbox/Win7 ASP work$
------------------------------------------------------
二、Linux環境
1、在虛擬機中,打開終端執行:
-- 依次執行,執行完后把虛擬機關機
------------------------------------------------------
sudo dd if=/dev/zero of=/empty
sudo rm -f /empty
------------------------------------------------------
2、然后進入宿主機 VBoxManage.exe 目錄(通常為 VirtualBox 安裝目錄),然后執行 BoxManage 命令壓縮 VDI 虛擬機磁盤文件即可。
------------------------------------------------------
VBoxManage.exe modifyhd "E:\VMs\rhel_erver_6.8_x64.vdi" --compact
------------------------------------------------------
參考:https://blog.csdn.net/JohnnySun2015/article/details/105181139