VirtualBox VDI 文件大小随着 Ubuntu 16.04 不断增长

VirtualBox VDI 文件大小随着 Ubuntu 16.04 不断增长

我的 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。

  1. 额外缺失的存储空间是什么?在哪里?
  2. VirtualBox 和 Ubuntu 16.04 之间是否存在已知问题(14.04 似乎没有这个问题)?我看到网上的一些帖子说 16.04 占用了过多的桌面内存,但内存总量还不到 6G……

答案1

据我所知,当您或任何程序向磁盘写入某些内容时,删除该文件后,只有与该文件相关的 inode 才会被删除,而数据(零和一)仍保留在磁盘上,因此当您使用动态分配存储时,VirtualBox 不知道您的操作系统中存在哪些文件,它只是知道例如有 10G 的数据已写入您的磁盘,因此它会增加您的硬盘大小来管理这 10G 的数据。

你可以做什么?

  1. 将客户机硬盘的可用空间清零,在 Linux 发行版中,您可以使用dd实用程序来执行此操作:

      sudo dd if=/dev/zero of=/home/zero bs=1M
    
  2. 然后使用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

相关内容