如何减少虚拟机大小?

Hap*_*per 5 virtualbox ubuntu

我有一个 Virtualbox VM,它的 .vdi 在主机中占用 49gb。

我可能曾经在 VM 中使用过那么多空间,但现在我只真正使用了大约 6GB。

我为 virtualbox 尝试了这个命令:

vboxmanage modifyhd /path/to/disk.vdi --compact
Run Code Online (Sandbox Code Playgroud)

它开始工作 0%..10%...100%。但实际上什么也没发生,.vdi 仍然是 49GB。

然后我在 VM 中运行 '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
Run Code Online (Sandbox Code Playgroud)

我不知道为什么它在那里使用 38GB。

我清理了垃圾箱,但没有帮助。

关于我还能做什么的任何想法?

VM 有 Ubuntu 12,带有加密的 LVM 和 home(即 .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
Run Code Online (Sandbox Code Playgroud)

Dan*_*eck 8

手册

为了使此操作有效,需要先使用合适的软件工具将来宾系统中的可用空间清零。对于 Windows 来宾,您可以使用sdeleteMicrosoft 提供的工具。sdelete -c在来宾中执行以在压缩虚拟磁盘映像之前将可用磁盘空间归零。对于 Linux,请使用zerofree支持 ext2/ext3 文件系统的实用程序。