如何防止 Virtualbox 上的磁盘损坏

如何防止 Virtualbox 上的磁盘损坏

我在 VirtualBox 映像中有一个包含冗余元数据的 btrfs 文件系统。主机系统崩溃后,btrfs 分区出现一些损坏,这违反了文件系统的保证,这表明 VirtualBox 违反了这些保证。

我怎样才能让 VBox 正常运行?

答案1

似乎有两个解决方案

  • 禁用忽略刷新,这只能通过命令行使用。

    虚拟 ATA 设备:

    VBoxManage setextradata “虚拟机名称” “VBoxInternal/Devices/piix3ide/0/LUN#[x]/Config/IgnoreFlush” 0

    虚拟 SATA 设备:

    VBoxManage setextradata “虚拟机名称” “VBoxInternal/Devices/ahci/0/LUN#[x]/Config/IgnoreFlush” 0

    其中 [x] 是该控制器的 0 索引驱动器编号

  • 启用主机缓存对于所讨论的虚拟控制器,这可以在 UI 中完成。它的缺点是 VM 内部的 IO 缓存可能会保存主机缓存中的数据,因此 IO 缓存会消耗两倍的内存。

    减少vm.swappiness客户机缓存可能会有所帮助,因为如果数据已经在主机缓存中,页面缓存就不那么重要了。

请注意,由于崩溃和损坏的随机性,很难判断每个解决方案是否可靠。

相关内容