Назад | Перейти на главную страницу

Запись непосредственно на диск VirtualBox

Мне необходимо записать на гостевой жесткий диск VirtualBox после создания снимка (я не могу изменить исходный файл резервной копии (VDI, dd, что угодно). Я надеялся, что в VBox есть способ изменить диск с разностными снимками с помощью команд VBoxManage или их API (подобно тому, как VMWare позволяет вам читать и записывать сектора непосредственно на диск с помощью их команд управления / api, без взаимодействия с исходным файлом).

Единственное решение, которое у меня есть, - это создание сценария для серии задач, которые вставляют загрузочный компакт-диск с помощью VBoxManage storageattach, монтируют все найденные разделы, выполняют команды и автоматически завершают работу. Я бы предпочел взаимодействовать с машиной, когда она выключена.

В идеале я надеялся, что VirtualBox сможет предоставить что-то вроде виртуального блочного устройства на хосте Linux, чтобы я мог смонтировать его с помощью любого необходимого драйвера и выполнить свои необходимые задачи.

Я знаю, что есть инструменты для монтирования VDI, но они не подходят по нескольким причинам. Самым важным является то, что я не могу изменить резервное хранилище (отсюда и моментальный снимок), два из них - это не всегда VDI (цели iSCSI могут быть резервным хранилищем вместо локального файла)

В VBox есть несколько команд, использующих VBoxManage guestcontrol (http://www.virtualbox.org/manual/ch08.html), однако для этого требуется, чтобы машина была включена, гостевые дополнения были установлены, а также необходимы учетные данные для учетной записи на гостевой системе. Он также не допускает доступа ниже уровня файла.

Согласно разговору с разработчиками VirtualBox, это невозможно. Их единственное предложение заключалось в использовании загрузочного компакт-диска, который выполняет необходимые действия.

Улучшенный обходной путь:

Вы можете создать загрузочный образ компакт-диска (или дополнительный диск, который станет загрузочным и который вы удалите впоследствии), который не монтирует диск, а запускает sshd. Сценарий на хосте может подключаться через ssh и экспортировать файл устройства диска через sshfs. Но должен признать, что никогда не пытался получить доступ к файлу устройства через sshfs. Если это невозможно, то моей следующей попыткой было сопоставить файл устройства с обычным файлом, например, ПРЕДОХРАНИТЕЛЬ.