Я думаю, что я решил проблему, используя следующую процедуру:
Имя виртуальной машины: 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 зависло между фактическим слиянием, так что, возможно, мне просто повезло.