我的 VDI 文件不断增大,我不知道为什么。VirtualBox 支持已确认这是 Ubuntu 客户操作系统的问题,而不是主机 VB 的问题。(顺便问一下,这个问题最好在这里回答吗,还是我应该在https://superuser.com?)
我在 Windows 7 (Home Premium) 64 位下作为主机运行最新的 VirtualBox (5.1.18)。Ubuntu 16.04 (最新补丁) 64 位作为客户机。VDI 文件使用动态分配存储,最高可达 100G。
当我运行 Ubuntu 14.04 时,一切似乎都很正常。最近我发现 VDI 映像的大小不断增加。它已经从 7G 增长到 14G。(对于某些人来说,这可能不算多,但对于使用 8G 内存条进行备份的我来说,这却是个问题!)我可以将 Ubuntu 启动到 Unity 桌面,然后立即退出,映像可能会增加 0.5G。
在 Ubuntu 中,输出df -h
显示:
Filesystem Size Used Avail Use% Mounted on
/dev/sda1 97G 7.7G 84G 9% /
也就是说,除了用过的与可用性. du -h -x -s /
确认使用了7.6G。
- 额外缺失的存储空间是什么?在哪里?
- VirtualBox 和 Ubuntu 16.04 之间是否存在已知问题(14.04 似乎没有这个问题)?我看到网上的一些帖子说 16.04 占用了过多的桌面内存,但内存总量还不到 6G……
答案1
据我所知,当您或任何程序向磁盘写入某些内容时,删除该文件后,只有与该文件相关的 inode 才会被删除,而数据(零和一)仍保留在磁盘上,因此当您使用动态分配存储时,VirtualBox 不知道您的操作系统中存在哪些文件,它只是知道例如有 10G 的数据已写入您的磁盘,因此它会增加您的硬盘大小来管理这 10G 的数据。
你可以做什么?
将客户机硬盘的可用空间清零,在 Linux 发行版中,您可以使用
dd
实用程序来执行此操作:sudo dd if=/dev/zero of=/home/zero bs=1M
然后使用
VBoxManage
带有开关的命令--compact
使您的 VDI 文件紧凑。VBoxManage modifyhd '/home/ravexina/VirtualBox VMs/Ubuntu/ubuntu.vdi'
有关压缩的更多信息:这里
保留块
关于您提到的大小,我猜那应该是为 ext4 文件系统保留的块。对于我的主分区来说sda2
。
user@machine:~$ sudo tune2fs -l /dev/sda2 | grep -ie 'reserved block count'
Reserved block count: 1408704
因为我的块大小是 4096 字节,所以 1408704x4096 等于 5770051584 字节,相当于我的主分区上 5.77 GB 的保留空间。
答案2
在 Win7 VirtulBox 5.2.0 上的 Ubuntu 16.04 遇到了同样的问题:
以下步骤解决了这个问题(感谢 Ravexina 的上述回答以及这:
访客 Ubuntu:
sudo dd if=/dev/zero of=/home/zero bs=1M
shutdown
在cmd中托管Win7(将目录更改为 .vdi 的位置):
C:/virtualbox/vboxmanage.exe modifymedium --compact MyPathTo/MyVM.vdi
重新启动客户机 Ubuntu:
sudo rm -rf /home/zero