Запустить VirtualBox в фоновом режиме, без окна?


106

Мне было интересно, можно ли запустить виртуальную машину Ubuntu, используя VirtualBox в фоновом режиме, я имею в виду, без какого-либо открытого окна.

Идея состоит в том, чтобы подключиться через SSH к хосту Linux, который будет работать в фоновом режиме.

Кто-нибудь когда-нибудь делал что-то подобное? Является ли это возможным?


Вы имеете в виду подключение через SSH к гостю Linux ? Вы можете сделать это очень легко с QEMU, который фактически запустит гостя в вашем терминале.
Феликс

Таким образом, вас также может заинтересовать конфигурация SSH: superuser.com/questions/424083/virtualbox-host-ssh-to-guest
Fabricio PH


1
Оставив открытым, так как этот вопрос лучше рассматривать как оригинал; проголосовал за закрытие как дубликат по другому вопросу.
bwDraco

Полностью согласен с @DragonLord - нажмите здесь, чтобы перейти к другому вопросу и закрыть его, как обман.
Raystafarian

Ответы:


92

VBoxManage startvm $VM --type headless запустит указанную виртуальную машину в фоновом режиме.

Чтобы закрыть его, запросите отключение от гостя.


Вы сможете подключиться к SSH только после правильной настройки сети. Я думаю, вам нужно использовать мост, чтобы виртуальная машина и ваш компьютер находились в одной сети. Кроме того, VirtualBox по-прежнему будет запускать
графический интерфейс

1
Правда. Я предполагаю, что виртуальная машина обычно запускается через графический интерфейс VirtualBox, чтобы установить и настроить ее. Используйте VBoxManage только тогда, когда все (включая сетевые) работает.
developmentininsanity

С другим программным обеспечением VM я могу закрыть окно, чтобы оно не всегда открывалось, и оно продолжало работать в фоновом режиме, но открывать окно, когда я хочу взаимодействовать с ним. Это то, что это делает?
JFA

Убедитесь, что вы подключили ssh к компьютеру без -X или -Y, так как те, которые, кажется, делают указанную выше команду, присоединяют процесс к оболочке, поэтому, если вы выходите, ВМ прерывается.
Мориц

63

Это встроено в VirtualBox 4.2.

Просто удерживайте Shift при запуске виртуальной машины из диспетчера.

https://blogs.oracle.com/fatbloke/entry/what_s_new_in_oracle


1
Обновление: в VirtualBox 5.1 у вас даже есть выпадающее меню справа от кнопки «Пуск» в диспетчере. Это меню доступно, только если виртуальная машина остановлена.
Титу,

23

Абсолютно! Вы ищете безголовую установку (Virtualbox). Способ запуска машины из командной строки выглядит примерно так:

VBoxHeadless --startvm Debian --vrdp=off

Однако вам понадобится какой-то способ подключения. Что я делаю, так это сопоставление портов между гостем и хостом. При такой конфигурации ваш порт 2222 хоста будет сопоставлен с портом 22 вашей гостевой машины.

VBoxManage setextradata "Debian" "VBoxInternal/Devices/pcnet/0/LUN#0/Config/guestssh/Protocol" TCP  
VBoxManage setextradata "Debian" "VBoxInternal/Devices/pcnet/0/LUN#0/Config/guestssh/GuestPort" 22  
VBoxManage setextradata "Debian" "VBoxInternal/Devices/pcnet/0/LUN#0/Config/guestssh/HostPort" 2222  

После этого вы можете войти через:

ssh localhost -p2222

VM должен слушать соединения SSH, верно? Возможно, стоит сделать это явно.
Матеус Сантана

3

альтернативой VBoxManage startvm "{VMName}" --type headlessявляется
VBoxHeadless -startvm "{VMName}"

Достаточно забавно, но я только что понял, как запустить виртуальную машину без головы, по RDP.

Примечание. По крайней мере в окнах оно заблокирует командное окно. Если вам нужно продолжить использовать консольное окно, откройте другое, чтобы запустить виртуальную машину в.

Чтобы выключить виртуальную машину, вы просите гостевую ОС завершить работу. VBoxHeadlessосвобождает консоль, когда гость полностью выключен (Вы можете Ctrl+C, но я думаю, что это может быть аналогом полной перезагрузки на реальной машине).


Тот факт, что vboxheadless блокирует консоль, очень сильно противоречит цели безголового режима. В Mac OS X (и предположительно в Linux и Solaris) режим без заголовка работает, когда вы отправляете vboxheadless в фоновый режим с помощью &.
Эндрю Дж. Брем

Я полагаю, что есть способ сделать это на окнах, я просто не нашел его. В любом случае безголовый виртуальный компьютер, безусловно, использует меньше ресурсов на сервере, чем тот, на котором запущен полный графический интерфейс.
Фальшивое имя

2

Я использую VBoxTool от http://vboxtool.sourceforge.net/, и он отлично работает для меня. Он может автоматически запускать виртуальные машины при загрузке и останавливать / сохранять виртуальные машины при завершении работы и обеспечивает простой интерфейс командной строки.


2

Я не думаю, что бесшовный режим - это то, что он ищет здесь, я думаю, что правильной вещью будет VBoxHeadless, подробности о которой вы можете найти в руководстве. Он работает с использованием интерфейса командной строки и будет использоваться, например, если на сервере была запущена виртуальная машина, но отображение не было запрошено с сервера. Вы сможете удаленно подключиться к компьютеру (если вы знаете, как установить параметр с помощью командной строки).

Я бы порекомендовал спросить об этом на форумах virtualbox. На самом деле, сначала выполните поиск, так как я ожидаю, что об этом уже спрашивали.


VBoxManage был правильным, извините. Ссылка информация в руководстве http://www.virtualbox.org/manual/ch08.html


2

Для запуска в автономном режиме с использованием графического интерфейса пользователя:

Удерживайте клавишу Shift при запуске виртуальной машины.

После этого вы также сможете подключаться и отключаться от графического интерфейса (Использование параметров Показать и Машина -> Отключить графический интерфейс ).


1

Я обнаружил, что режим автономной работы, кажется, отлично работает при фоновом режиме в Linux (CentOS 5.6), но вы теряете доступ к функциональности RDP, пока процесс является фоновым. Сделайте 'fg', чтобы вернуть процесс на передний план, и функциональность RDP восстановится. Похоже, что запуск vm headless лучше всего выполнить через скрипт init, где интерактивность с консолью не требуется.


1

Вы можете использовать VBoxHeadless или (и мне интересно, почему никто не упомянул об этом до меня), вы можете просто выбрать один из вариантов запуска, который будет запускать ВМ без какого-либо графического интерфейса.

Удерживайте клавишу shift и запустите машину, или щелкните правой кнопкой мыши машину и найдите что-то вроде «Запуск без вывода» в пункте «Выполнить».


0

Я добавил эти строки в мой .bashrc:

VM='anakim'
alias vm='VBoxManage startvm $VM --type headless'
alias sshvm='ssh -p2222 localhost'

Для доступа по ssh вам не нужно изменять конфигурацию, просто сохраняйте NAT, и вы можете настроить таблицу переадресации портов следующим образом:

Name      | Protocol | Host Port | Guest Port
guestssh  | TCP      | 2222      | 22
localhost | TCP      | 8080      | 80

Когда вы вставите localhost: 8080 в браузер вашего компьютера, откроется страница с VM (на порту 80).


0

Если виртуальная машина работает и отображается экран, вы можете скрыть ее, выполнив следующие действия.

введите описание изображения здесь

введите описание изображения здесь

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.