Мне необходимо записать на гостевой жесткий диск 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. Если это невозможно, то моей следующей попыткой было сопоставить файл устройства с обычным файлом, например, ПРЕДОХРАНИТЕЛЬ.