VirtualBox VDI文件大小随着Ubuntu 16.04的增长而不断增长
我的VDI文件不断增长,我不明白为什么。 VirtualBox支持已经确认这是一个Ubuntu Guest OS问题,而不是主机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% /
所以这就是说,与Avail相比,还有一个额外的6G已经“丢失”。 du -h -x -s /
确认7.6G使用。
- 多余的存储空间是什么?
- VirtualBox和Ubuntu 16.04之间是否存在已知问题(14.04似乎没有这个问题)? 我在网上看到一些post说16.04正在使用过多的桌面内存,但没有任何东西可以达到6G ……
据我所知,当您或任何程序向磁盘写入内容时,删除该文件后,只会删除该文件的相关inode,并且数据(零和1)仍保留在磁盘上,因此在使用动态分配存储时, VirtualBox不知道你的操作系统中有哪些文件,只知道例如10G的数据已写入你的磁盘,所以它会增加你的硬盘大小来管理那10G的数据。
你可以做什么?
-
将guest虚拟机中的硬盘空闲空间归零,在Linux发行版中,您可以使用
dd
实用程序来执行此操作:sudo dd if=/dev/zero of=/home/zero bs=1M
-
然后使用带有
--compact
开关的VBoxManage
命令使您的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字节,所以1408704×4096使得5770051584再见,这相当于我的家庭补丁上的5.77 GB预留空间。
在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