У меня есть виртуальная машина с двумя жесткими дисками.

Используя эту настройку, я сделал 7 снимков и хотел удалить третий.

Во время процесса объединения произошел сбой VBoxSvc я остался с одним (надеюсь, успешно) слитым Жестким диском 2, одним несжатым Жестким диском 1 и виртуальной машиной, которая по-прежнему отображает снимок как подарок.

  1. Я не могу удалить снимок снова, потому что на жестком диске 2 отсутствует соответствующий снимок-vdi.
  2. Я не могу использовать Hard Drive 2, потому что виртуальная машина думает, что для этого нужен удаленный снимок-vdi.

Возможно ли объединить жесткий диск 1 так же, как это было сделано с жестким диском 2, затем вручную отредактируйте файл .vbox, чтобы удалить из него снимок и, следовательно, завершить процесс удаления снимка?

Снимки экрана: https://imgur.com/a/zmH6LSM

1 ответ1

0

Я думаю, что я решил проблему, используя следующую процедуру:

Имя виртуальной машины: Workbench64
Полный жесткий диск с деталями моментального снимка: HDD1
Уже объединенный жесткий диск без этой конкретной части снимка: HDD2

  1. Я сделал резервную копию каталога VM Workbench64 , на случай дальнейшего повреждения
  2. Я проверил сломанный снимок в графическом интерфейсе VBox, чтобы найти UUID отсутствующей vdi-части, щелкнув его правой кнопкой мыши и выбрав "Детали снимка". Если подключенное запоминающее устройство недоступно, его UUID будет выделен жирным шрифтом. Мой был {5c95...}
  3. Я закрыл графический интерфейс VBox, чтобы он не перекрывал файл Workbench64.vbox .
  4. Я переместил файл HDD2.vdi из каталога виртуальной машины Workbench64 . (может быть ненужным)
  5. Я открыл файл Workbench64.vbox в текстовом редакторе и искал вхождения {5c95...} (очевидно, весь UUID). Первое вхождение находится в разделе <HardDisks> . Это будет выглядеть примерно так:
    <HardDisk uuid="{5c95...}" location="Snapshots/{5c95...}.vdi" format="VDI">
    Если в конце есть /> , просто удалите всю эту строку. Если в конце нет /> , как в моем примере, удалите всю строку и одну </HardDisk> ниже (что не должно иметь значения, но для большей уверенности используйте ту, которая имеет такой же уровень отступа) (пробелы впереди) как удаленная вами строка).

  6. Следующее вхождение должно быть в <Image> похожем на это:
    <AttachedDevice type="HardDisk" hotpluggable="false" port="0" device=0"> <Image uuid="{5c95...}" /> </AttachedDevice">
    Удалите <Image> и окружающий <AttachedDevice>[...]</AttachedDevice> . Только UUID, который вы ищете, оставьте в покое!) Это удалит отсутствующий снимок vdi-part из VM-Snapshot.

  7. Сохраните файл и выйдите из текстового редактора.
  8. Откройте графический интерфейс VBox и снова проверьте сведения о снимке в вашей виртуальной машине, чтобы убедиться, что он по-прежнему жалуется на отсутствие vdi-части. (Не должно.)
  9. Попробуйте удалить / объединить снимок сейчас. Он должен объединить vdi-часть (в моем случае) HDD1 и удалить снимок с виртуальной машины.

Если все получилось, теперь у вас есть объединенный HDD1 и виртуальная машина без поврежденного снимка. Переместите HDD2.vdi обратно в папку VM, если вы выполнили шаг 4, и он должен загрузиться в самое последнее состояние / снимок, который вы имеете на этой VM.

Похоже, я не потерял никаких данных, так как слияние Snapshot зависло между фактическим слиянием, так что, возможно, мне просто повезло.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .