如何減小虛擬機器大小?

如何減小虛擬機器大小?

我有一個 Virtualbox 虛擬機,其 .vdi 在主機中佔用 49GB 空間。

我可能曾經在虛擬機器內使用過這麼多空間,但現在我只使用了大約 6GB。

我為 virtualbox 嘗試了這個命令:

vboxmanage modifyhd /path/to/disk.vdi --compact

它開始工作 0%..10%.....100%。但實際上什麼也沒發生,.vdi 仍然是 49gb。

然後我在虛擬機器中運行“df -h”並發現:

root@mypc# df -h
Filesystem                  Size  Used Avail Use% Mounted on
/dev/mapper/mypc-root       2.0T   38G  1.9T   2% /
udev                        1.3G  4.0K  1.3G   1% /dev
tmpfs                       502M  784K  501M   1% /run
none                        5.0M     0  5.0M   0% /run/lock
none                        1.3G  160K  1.3G   1% /run/shm
/dev/sda1                   228M   31M  185M  15% /boot
/home/someuser/.Private     2.0T   38G  1.9T   2% /home/someuser

我不知道為什麼它使用 38gb 那裡。

我清理了垃圾箱,但沒有幫助。

關於我還能做什麼的任何想法?

VM 具有 Ubuntu 12,具有加密的 LVM 和主目錄(即 .Private 目錄)。主機裝有Windows 7。

更新

我能夠為 /dev/sda1 釋放空間,但不能為 /dev/mapper/mypc-root 釋放空間。 Zerofree 啟動並且永遠不會結束,儘管我可以看出磁碟已停止寫入,因為它在一分鐘後停止發出噪音。

這是“df -ih”的輸出

root@mypc:/home/someuser# df -ih
Filesystem                 Inodes IUsed IFree IUse% Mounted on
/dev/mapper/mypc-root        128M  208K  128M    1% /
udev                         311K   495  310K    1% /dev
tmpfs                        314K   428  314K    1% /run
none                         314K     4  314K    1% /run/lock
none                         314K     7  314K    1% /run/shm
/dev/sda1                    122K   230  122K    1% /boot
/home/someuser/.Private      128M  208K  128M    1% /home/someuser

答案1

來自手動的:

為了使此操作有效,需要先使用合適的軟體工具將客戶系統中的可用空間清除。對於 Windows 用戶端,您可以使用sdeleteMicrosoft 提供的工具。sdelete -c在壓縮虛擬磁碟映像之前,在來賓中執行以將可用磁碟空間清除。對於 Linux,請使用zerofree支援 ext2/ext3 檔案系統的實用程式。

答案2

相對於該原來的答案有這個解決方案:

在虛擬機器中:

  1. dd if=/dev/zero of=test.file
  2. sync
  3. rm test.file

在主機上:

  1. VBoxManage modifyhd --compact your_image_path.vdi

這是我嘗試過的唯一有效的解決方案。和zerofreesfill來自secure-delete)在我的 Debian VM(Windows 10 主機)上不起作用。

答案3

我認為你問題的核心是你的根檔案系統(/)的大小是 2TB。對於這麼大的檔案系統,相對較小的開銷(索引節點等)仍然相當大(在您的情況下> 32GB)。

如果要縮小虛擬磁碟,則需要先縮小根檔案系統。

相關內容