2

Резюме

VirtualBox, кажется, хочет, чтобы все было "зарегистрировано", что делает работу с командной строкой более раздражающей.

Я пытаюсь создать автоматический скрипт, который будет создавать, перемещать, запускать, останавливать и уничтожать виртуальные машины и виртуальные диски. Требование регистрации усложнит задачу по следующим причинам.

  • оставляет информацию о состоянии вокруг, что может привести к непредсказуемым случаям, вызывающим сбой скриптов.
  • создает потенциальные конфликты пространства имен для нескольких процессов, создавая виртуальные машины с одинаковыми именами
  • перемещение / копирование ресурсов на том же компьютере более сложное, потому что ссылки в реестре должны быть обновлены
  • Копирование ресурсов (комбинация диск + виртуальная машина) на другой компьютер требует реконфигурации, как только они достигают своего целевого компьютера, и требует перенос дополнительных метаданных для выполнения реконфигурации.
  • Если что-то неожиданно дает сбой, и, таким образом, не происходит отмена регистрации, оставшаяся информация о конфигурации может вызвать проблемы при последующих запусках.

Случай использования

Мой конкретный пример использования - для сервера непрерывной интеграции, который создает и уничтожает виртуальные машины и образы дисков, потенциально с одним и тем же именем, и требует большей логики для работы с состоянием реестра.

Воображаемый пример

Кажется, что я должен быть в состоянии, например, (используя некоторые мнимые и / или неправильные команды):

mkdir foobar
customdiskimg_script ./foo/foo.vdi
vboxmanage createvm --name "foo" --ostype Linux --basefolder ./foo/foo.xml
vboxmanage storagectl ./foo/foo.xml --name foo --add ide
vboxmanage storageattach --storagectl foo --medium ./foo/foo.vdi ./foo/foo.xml 
vboxmanage startvm ./foo/foo.xml

TLDR

Есть ли способ использовать virtualbox без "регистрации" жестких дисков и виртуальных машин?

2 ответа2

0

Так как вы работаете в Linux, существуют инструменты операционной системы, которые можно использовать для создания временной виртуальной среды, чтобы ограничить взаимодействие VirtualBox между процессами. В частности, вы можете использовать chroot для создания минимальной среды, содержащей только необходимый минимум, необходимый для запуска VirtualBox, вместе со свежим домашним каталогом для вашего пользователя, а затем запустить VirtualBox в этой среде. Хотя я не пробовал этого, я предполагаю, что это изолирует процессы друг от друга и, следовательно, решит вашу проблему

(К сожалению, я пришел к этому вопросу в поисках ответа на ту же проблему для хоста Windows, где такое решение было бы невозможно. Ну что ж.)

0

Нет.

После просмотра исходного кода, насколько я могу судить, поиск может происходить только по имени, для которого требуется реестр.

Казалось бы, если бы существовал способ изменить путь каталога конфигурации virtualbox на что-то нестандартное, можно было бы приблизить эффект, который я искал, но это тоже не представляется возможным.

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