Я думаю, что я решил проблему, используя следующую процедуру:
Имя виртуальной машины: Workbench64
Полный жесткий диск с деталями моментального снимка: HDD1
Уже объединенный жесткий диск без этой конкретной части снимка: HDD2
- Я сделал резервную копию каталога VM
Workbench64 , на случай дальнейшего повреждения
- Я проверил сломанный снимок в графическом интерфейсе VBox, чтобы найти UUID отсутствующей vdi-части, щелкнув его правой кнопкой мыши и выбрав "Детали снимка". Если подключенное запоминающее устройство недоступно, его UUID будет выделен жирным шрифтом. Мой был
{5c95...}
- Я закрыл графический интерфейс VBox, чтобы он не перекрывал файл
Workbench64.vbox .
- Я переместил файл
HDD2.vdi из каталога виртуальной машины Workbench64 . (может быть ненужным)
Я открыл файл Workbench64.vbox в текстовом редакторе и искал вхождения {5c95...} (очевидно, весь UUID).
Первое вхождение находится в разделе <HardDisks> . Это будет выглядеть примерно так:
<HardDisk uuid="{5c95...}" location="Snapshots/{5c95...}.vdi" format="VDI">
Если в конце есть /> , просто удалите всю эту строку. Если в конце нет /> , как в моем примере, удалите всю строку и одну </HardDisk> ниже (что не должно иметь значения, но для большей уверенности используйте ту, которая имеет такой же уровень отступа) (пробелы впереди) как удаленная вами строка).
Следующее вхождение должно быть в <Image> похожем на это:
<AttachedDevice type="HardDisk" hotpluggable="false" port="0" device=0">
<Image uuid="{5c95...}" />
</AttachedDevice">
Удалите <Image> и окружающий <AttachedDevice>[...]</AttachedDevice> .
Только UUID, который вы ищете, оставьте в покое!) Это удалит отсутствующий снимок vdi-part из VM-Snapshot.
- Сохраните файл и выйдите из текстового редактора.
- Откройте графический интерфейс VBox и снова проверьте сведения о снимке в вашей виртуальной машине, чтобы убедиться, что он по-прежнему жалуется на отсутствие vdi-части.
(Не должно.)
- Попробуйте удалить / объединить снимок сейчас. Он должен объединить vdi-часть (в моем случае)
HDD1 и удалить снимок с виртуальной машины.
Если все получилось, теперь у вас есть объединенный HDD1 и виртуальная машина без поврежденного снимка. Переместите HDD2.vdi обратно в папку VM, если вы выполнили шаг 4, и он должен загрузиться в самое последнее состояние / снимок, который вы имеете на этой VM.
Похоже, я не потерял никаких данных, так как слияние Snapshot зависло между фактическим слиянием, так что, возможно, мне просто повезло.