У меня есть файловая система btrfs с избыточными метаданными в образе virtualbox. После сбоя хост-системы раздел 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 для этого контроллера
включить кэш хостадля рассматриваемого виртуального контроллера это можно сделать в пользовательском интерфейсе. Недостатком является то, что кэш ввода-вывода внутри виртуальной машины, скорее всего, будет содержать данные, которые также будут находиться в кэше хоста, таким образом, потребляя в два раза больше памяти для кэшей ввода-вывода.
В этом случае может помочь уменьшение
vm.swappiness
гостевой ОС, поскольку кэш страниц менее важен, если данные уже находятся в кэше хоста.
Обратите внимание, что сложно сказать, является ли каждое решение надежным, поскольку сбои и повреждения носят случайный характер.