Запускаем виртуальную машину VirtualBox как службу Windows
VirtualBox — это популярный бесплатный гипервизор, производства компании Oracle. Не смотря на то, что сам программный продукт весьма и весьма богат на всевозможные настройки, некоторых важных вещей он сделать не в состоянии. К примеру — запуск виртуальной машины в фоне, как службу Windows. К счастью, для этой цели есть отдельная программа, и в этой статье мы разберем как ей пользоваться.
Использование программы VBoxVmService
Для запуска виртуальных машин под VirtualBox как службы очень удобно использовать программу под названием VBoxVmService, которую скачать можно здесь. После завершения скачивания, устанавливаем программу, в процессе установки по сути ничего, кроме нажатия кнопки «Далее» делать не нужно.
После установки переходим в папку с установленной программой (по умолчанию — C:\vms), открываем там файл VBoxVmService.ini, и начинаем его переделывать под свои нужды. Ниже описаны обязательные для редактирования настройки:
[Settings]
VBOX_USER_HOME — тут нужно указать путь к папке с виртуальными машинами.
[Vm0]
VmName — указываем имя виртуальной машины;
ShutdownMethod=savestate — метод завершения работы виртуалной машины, которых может быть два — «savestate» или «acpipowerbutton«. Первый при выключении сохраняет состояние виртуальной машины, и при включении как бы продолжит её работу, второй является как бы полноценным выключением компьютера;
AutoStart — запускать виртуальную машину автоматом, при включении компьютера? Возможные варианты — yes и no, в переводе думаю не нуждаются.
Допустим, если целью стоит запуск виртуальной машины с названием Linux-Debian, то файл настроек будет выглядеть следующим образом:
После окончания редактирования сохраняем файл, запускаем исполняемый файл VBoxVmService.exe с параметром -i , и перезагружаем компьютер.
После этих действий указанная виртуальная машина должна запуститься автоматически.
Запустить VirtualBox в фоновом режиме, без окна?
Мне было интересно, можно ли запустить виртуальную машину Ubuntu, используя VirtualBox в фоновом режиме, я имею в виду, без какого-либо открытого окна.
Идея состоит в том, чтобы подключиться через SSH к хосту Linux, который будет работать в фоновом режиме.
Кто-нибудь когда-нибудь делал что-то подобное? Является ли это возможным?
VBoxManage startvm $VM —type headless запустит указанную виртуальную машину в фоновом режиме.
Чтобы закрыть его, запросите отключение от гостя.
Это встроено в VirtualBox 4.2.
Просто удерживайте Shift при запуске виртуальной машины из диспетчера.
Абсолютно! Вы ищете безголовую установку (Virtualbox). Способ запуска машины из командной строки выглядит примерно так:
Однако вам понадобится какой-то способ подключения. Что я делаю, так это сопоставление портов между гостем и хостом. При такой конфигурации ваш порт 2222 хоста будет сопоставлен с портом 22 вашей гостевой машины.
После этого вы можете войти через:
альтернативой VBoxManage startvm «
VBoxHeadless -startvm «
Достаточно забавно, но я только что понял, как запустить виртуальную машину без головы, по RDP.
Примечание. По крайней мере в окнах оно заблокирует командное окно. Если вам нужно продолжить использовать консольное окно, откройте другое, чтобы запустить виртуальную машину в.
Чтобы выключить виртуальную машину, вы просите гостевую ОС завершить работу. VBoxHeadless освобождает консоль, когда гость полностью выключен (Вы можете Ctrl+C , но я думаю, что это может быть аналогом полной перезагрузки на реальной машине).
Я использую VBoxTool от http://vboxtool.sourceforge.net/, и он отлично работает для меня. Он может автоматически запускать виртуальные машины при загрузке и останавливать / сохранять виртуальные машины при завершении работы и обеспечивает простой интерфейс командной строки.
Я не думаю, что бесшовный режим — это то, что он ищет здесь, я думаю, что правильной вещью будет VBoxHeadless, подробности о которой вы можете найти в руководстве. Он работает с использованием интерфейса командной строки и будет использоваться, например, если на сервере была запущена виртуальная машина, но отображение не было запрошено с сервера. Вы сможете удаленно подключиться к компьютеру (если вы знаете, как установить параметр с помощью командной строки).
Я бы порекомендовал спросить об этом на форумах virtualbox. На самом деле, сначала выполните поиск, так как я ожидаю, что об этом уже спрашивали.
VBoxManage был правильным, извините. Ссылка информация в руководстве http://www.virtualbox.org/manual/ch08.html
Для запуска в автономном режиме с использованием графического интерфейса пользователя:
Удерживайте клавишу Shift при запуске виртуальной машины.
После этого вы также сможете подключаться и отключаться от графического интерфейса (Использование параметров Показать и Машина -> Отключить графический интерфейс ).
Я обнаружил, что режим автономной работы, кажется, отлично работает при фоновом режиме в Linux (CentOS 5.6), но вы теряете доступ к функциональности RDP, пока процесс является фоновым. Сделайте ‘fg’, чтобы вернуть процесс на передний план, и функциональность RDP восстановится. Похоже, что запуск vm headless лучше всего выполнить через скрипт init, где интерактивность с консолью не требуется.
Вы можете использовать VBoxHeadless или (и мне интересно, почему никто не упомянул об этом до меня), вы можете просто выбрать один из вариантов запуска, который будет запускать ВМ без какого-либо графического интерфейса.
Удерживайте клавишу shift и запустите машину, или щелкните правой кнопкой мыши машину и найдите что-то вроде «Запуск без вывода» в пункте «Выполнить».
Я добавил эти строки в мой .bashrc:
Для доступа по ssh вам не нужно изменять конфигурацию, просто сохраняйте NAT, и вы можете настроить таблицу переадресации портов следующим образом:
Когда вы вставите localhost: 8080 в браузер вашего компьютера, откроется страница с VM (на порту 80).
Если виртуальная машина работает и отображается экран, вы можете скрыть ее, выполнив следующие действия.
Автозапуск виртуальной машины VirtualBox
Если вы запускаете виртуальные машины VirtualBox на сервере, то скорее всего, захотите, чтобы они оставались запущенными даже после неожиданной перезагрузки сервера.
В этой небольшой статье мы рассмотрим как настроить автозапуск виртуальной машины VirtualBox с помощью системы инициализации systemd, которая сейчас используется повсеместно.
Автозапуск виртуальной машины в VirtualBox
Давайте создадим файл юнита, который будет управлять автозагрузкой. Для этого выполните такую команду:
sudo systemctl edit vbox@.service —full —force
В открывшемся редакторе вставьте такой текст:
Description=Virtual Box Guest %I
After=network.target vboxdrv.service
Before=runlevel2.target shutdown.target
[Service]
User=root
Group=root
Type=forking
Restart=no
TimeoutSec=5min
IgnoreSIGPIPE=no
KillMode=process
GuessMainPID=no
RemainAfterExit=yes
ExecStart=/usr/bin/VBoxManage startvm %i —type headless
ExecStop=/usr/bin/VBoxManage controlvm %i acpipowerbutton
[Install]
WantedBy=multi-user.target
С помощью этого юнита мы и будем делать автозапуск virtualbox linux. В этом примере я запускаю виртуальную машину от имени пользователя root, но вам нужно запускать её от того пользователя, к которому добавлены виртуальные машины и от имени которого VirtualBox обычно работает.
Сохраните изменения в файле и выполните следующую команду, чтобы система инициализации перечитала конфигурационные файлы с диска:
В нашем юнит файле мы предусмотрели возможность использования параметра, в котором передается имя или UUID идентификатор виртуальной машины. Если в имени машины есть пробел, то лучше использовать UUID, а иначе можно и имя.
Смотрим список виртуальных машин:
VBoxManage list vms
Теперь давайте запустим машину Ubutnu1804 с UUID ed0ce7dd-0ddb-46bf-913c-876671c4d1f1 с помощью systemd:
sudo systemctl start vbox@ed0ce7dd-0ddb-46bf-913c-876671c4d1f1
Если во время запуска произошла ошибка, вы можете посмотреть её выполнив:
В данном случае машина уже была запущена. Я остановил её и запустил ещё раз с уже помощью systemd. Смотрим статус виртуальной машины:
sudo systemctl status vbox@ed0ce7dd-0ddb-46bf-913c-876671c4d1f1
Если всё хорошо, то всё, что нам осталось, это добавить этот сервис в автозагрузку:
sudo systemctl enable vbox@ed0ce7dd-0ddb-46bf-913c-876671c4d1f1
Выводы
В этой статье мы разобрались как делается автозагрузка виртуальной машины virtualbox. Как видите, всё очень просто и удобно. Теперь ваши виртуальные машины будут всегда запущены.