缩小 VDI 文件
针对缩小 VDI 文件,不同场景的处理方式是不同的;
场景:仅缩小 VDI 占用的磁盘空间,而不减小分配的空间大小
How to Shrink a VirtualBox Virtual Machine and Free Up Disk Space
How to compact / shrink a Dynamically Allocated virtual box vmdk file …
在我们的场景中,VDI 虚拟磁盘采用动态分配(Dynamic allocated)。某个日志文件过大,导致 VDI 文件增长过大;
我们删除该日志文件后,希望 能够减小 VDI 文件占用的磁盘空间,但是并不会配置减小分配空间(在创建虚拟磁盘时指定的参数);
1)我们通过离线挂载磁盘,针对 Ext4 文件系统,通过 resize2fs 来缩小文件系统占用的空间;
2)针对 Ext4 文件系统,通过 zerofree -v /dev/sda1 来用 0 填充未使用空间;
3)最后,关机,并通过 VBoxManage modifymedium disk “/path/to/disk.vdi” –compact 来缩小空间;
场景:缩小文件系统(未成功)
1)如果需要缩小磁盘文件,首先需要处理磁盘文件中的文件系统大小。我们通过离线挂载磁盘,针对 Ext4 文件系统,通过 resize2fs 来缩小;
2)然后 cfdisk 来重建分区表,以实际缩小文件系统所占用的磁盘空间;
我们这里希望缩小 VDI 文件的已配大小,但是未能找到响应的方法。但我们的根本目标还是限制磁盘空间的占用。
但是,通过分区的重建,从侧面实现对文件系统可用空间的限制。在这种情况下,虽然虚拟机磁盘分配较大空间,但是由于磁盘分区的限制而无法完全使用,结合 Dynamic allocated 来达到节约磁盘空间的目的。