最近因為需要使用 virtualbox

發覺一些問題

如果在 virtualbox 中安裝一些套件

例如安裝 pytorch 或是一些套件

都會需要下載很多檔案以及產生暫存檔案

也許將那些暫存檔案刪除之後

總使用空間是15G

但是在外面的 vdi 檔案可能有25G甚至30G

因為這檔案基本只會增加不會變少

 

但是這樣的話

對於要轉移 virtualbox 系統來說就非常麻煩

因為不可能每次都準備這麼大的隨身碟

甚至有時候連 隨身碟 都不能使用

 

所以 將 vdi 檔案瘦身是必要的

 

上網找一找的方法就是

 

"對於 Linux,請使用支援 ext2/ext3 檔案系統的Zerofree實用程式"

https://docs.oracle.com/en/virtualization/virtualbox/6.0/user/vboxmanage-modifymedium.html

 

使用方式可以參考

https://askubuntu.com/questions/1092812/zerofree-on-ubuntu-18-04

 

 

先安裝 zerofree

 

sudo apt-get install zerofree

 

在 virtualbox 啟動時按 ESC 進入 Recovery Mode

 

然後執行

 

zerofree /dev/sda1

 

 

這邊可能會遇到很多錯誤

例如

 

zerofree failed to open filesystem sda1

 

或是

 

filesystem dev/sda1 is mounted rw

 

首先要注意的是

sda1並不是絕對的

 

必須使用 df 來看看目前跟目錄掛載的硬碟檔案是哪一個

例如我這邊 virtualbox 掛載的是 lv 檔案

 

 

所以我要執行的指令是

 

zerofree /dev/mapper/ubuntu–vg-ubuntu–lv

 

 

 

完成之後

退出 virtualbox

 

然後到 virtualbox 安裝資料夾開啟 終端機

執行

 

VBoxManage modifyhd "D:\VirtualBox VMs\ubuntu22server\ubuntu22server.vdi" --compact

 

 

應該就可以看到檔案縮小了

 

 

可以從圖片看到

下面是我原本備份vdi 檔案的大小

有 20G + 10G左右

縮小後可以到達 11G + 7G

差非常多

 

所以如果要用 virtualbox 做系統展示或是應用

這招最好要學起來

 

給大家參考囉~~