因此我在 VirtualBox 中安装了 Ubuntu 16.04。使用安装程序,我加密了整个 / 分区。
该磁盘是动态的,最大可达 200GB。根据 ,我使用的不到 20GB df -h
,我的 上有 180GB 可用/
。
过了一段时间,我想像往常一样缩小虚拟机。在恢复中启动,然后运行dd if=/dev/zero of=dump bs=100M; rm dump
。因此,之后我的 .vdi 文件占用了驱动器上的 200GB。这是意料之外的,因为这个命令之前并没有真正使我的 .vdis 变大,但这一定是加密的结果。
因此,在关闭虚拟机并检查 / 上的可用空间后,我运行VBoxManage modifyhd --compact myvdi.vdi
,它似乎运行良好,但不会缩小文件。
我的猜测是,我现在有加密的零文件,luks 不会因任何原因删除它。
那我该怎么办?
答案1
所以我无法手动缩小 lvm 容器。
但我可以将discard="true"
选项添加到 .vbox 文件中,如下所示
<AttachedDevice nonrotational="true" discard="true" type="HardDisk" port="1" device="0">
<Image uuid="{3836a042-a83e-4000-9a59-e95ad65162ce}"/>
</AttachedDevice>
现在再次启动后,我能够运行fstrim
,并且.vdi 文件也缩小了。
事实上,我有一些问题之前使用过这个选项,所以我想手动完成这个。
我强烈建议您备份,因为我删除了 .vdi 文件,无法恢复。此外,我稍后再次禁用了该选项,并在删除备份之前检查了文件系统。
还有更多信息这里。