Как создать распространяемый автономный двоичный дистрибутив виртуальной машины с VirtualBox?


Можно ли создать автономный двоичный дистрибутив виртуальной машины с помощью VirtualBox или какого-либо другого инструмента?

Мои требования:

  • Нет установки VirtualBox
  • автономные двоичные файлы / - I для запуска и остановки виртуальной машины (со всей поддержкой среды VirtualBox на ней)
  • возможно нет прав администратора для запуска и остановки виртуальной машины
  • по крайней мере windows, но лучше, если кросс-платформенный
2 2

2 ответа:

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

Однако, это только теория. На практике гипервизоры - это очень сложные части программного обеспечения и требуют некоторого доступа ring-0 (уровень ядра), чтобы напрямую общаться с процессором и другим оборудованием, и VirtualBox не является исключением. Так что устанавливайте их, на любую операционную систему, которая заботится даже немного о безопасности, потребует доступа администратора / root / супервизора, поскольку вы не можете установить драйверы и другие компоненты ядра в противном случае.

Если производительность не вызывает беспокойства, можно использовать эмулятор типа Qemu/Bohs, который может работать без доступа ring-0. Однако в настоящее время я не знаю ни одного проекта, в котором были бы такие самораспаковывающиеся и запускаемые эмуляторы для готовых образов виртуальных машин (тем более в Windows).

Как пишет Tekn0, требуется низкоуровневый доступ к уровню ОС хоста. Я нашел проектPortable VirtualBox , который настраивает хост-машину на лету. Я проверил его, и он недостаточно удовлетворителен. С сайта:

Примечание

VirtualBox требует установки нескольких драйверов ядра и их запуска. несколько служб: если драйверы и службы еще не установлены для запуска Portable-VirtualBox вам потребуются права администратора.

Когда Portable-VirtualBox запускается, он проверяет, есть ли драйверы. установленный. Если их нет, он установит их перед запуском VirtualBox и удалит их позже. Аналогично, Portable-VirtualBox проверяет, запущены ли службы. Если нет, он начнет их, а затем остановит, когда выйдет.

В результате получается продукт, не всегда работающий и со странными ошибками ядра. Есть еще один проект (начиная с наблюдений Tekn0) Kquemu Portable и наконецБохи .