Запустити 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 в машину, лише якщо правильно налаштувати мережу. Я думаю, вам потрібно використовувати мости, щоб VM і ваш апарат знаходилися в одній мережі. Також VirtualBox як і раніше запустить gui цільової ОС, і ви зможете підключитися до нього через віддалений робочий стіл, "rdesktop" (
дістаньтеся

1
Правда. Я припускаю, що VM запускається зазвичай через GUI VirtualBox спочатку, щоб встановити його та налаштувати. Використовуйте VBoxManage лише коли все працює (включаючи мережу).
розвиненість,

За допомогою іншого програмного забезпечення VM я можу закрити вікно, щоб воно не завжди було відкритим, і воно продовжує працювати у фоновому режимі, але відкривати вікно, коли я хочу з ним взаємодіяти. Це це робить?
JFA

Переконайтеся, що ssh на машину без -X або -Y, оскільки, здається, згадана вище команда приєднує процес до оболонки, тому, якщо ви виходите, VM перерве.
moritz

63

Це вбудовано у VirtualBox 4.2.

Просто затримайте Shift під час запуску VM від диспетчера.

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


1
Оновлення: у VirtualBox 5.1 у вас навіть є меню, що випадає, праворуч від кнопки запуску у менеджері. Це меню доступне лише в тому випадку, коли VM зупинено.
Титу

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}"

Досить забавно, я щойно закінчив з'ясувати, як запустити VM без голови, над RDP.

Примітка. Принаймні у Windows він заблокує вікно вашої команди. Якщо вам потрібно продовжити користуватися вікном консолі, відкрийте іншу, щоб запустити VM.

Щоб вимкнути VM, ви вимагаєте відключити гостьову ОС. VBoxHeadlessвипускає консоль, коли гість повністю Ctrl+Cвимкнеться (можна , але я думаю, це може бути аналог жорсткого скидання на реальній машині).


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

Я думаю, що є спосіб зробити це на Windows, я просто не знайшов його. У будь-якому випадку безголовий vm звичайно використовує менше ресурсів на серверному комп'ютері, ніж один, який працює з повним графічним інтерфейсом.
Підроблене ім’я

2

Я використовую VBoxTool від http://vboxtool.sourceforge.net/, і він прекрасно працює для мене. Він може автозапустити віртуальний комп'ютер під час завантаження та зупинити / зберегти VM при відключенні та забезпечує простий чистий інтерфейс командного рядка.


2

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

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


Вибачте, VBoxManage була правильною справою. Пов’яжіть інформацію у посібнику http://www.virtualbox.org/manual/ch08.html


2

Щоб почати в безголовому режимі за допомогою GUI:

Утримуйте клавішу Shift під час запуску VM.

Після цього ви також зможете підключитися та від’єднатись від графічного інтерфейсу (Використовуючи параметри Show і Machine -> Detach GUI ).


1

Я виявив, що безголовий режим, здається, працює добре при фоновому режимі в Linux (CentOS 5.6), але ви втрачаєте доступ до функціональності RDP до тих пір, поки процес буде фоновим. Зробіть "fg", щоб повернути процес на перший план, і функціональність RDP буде відновлена. Виглядає, що запуск vm без голову найкраще здійснювати за допомогою сценарію init, де інтерактивність з консоллю не потрібна.


1

Ви можете використовувати VBoxHeadless або (і мені цікаво, чому ніхто до цього не згадував), ви можете просто вибрати один із варіантів запуску, який запустить VM без будь-якого GUI.

Або утримуйте зміну та запускайте машину, або клацніть правою кнопкою миші та шукайте щось на зразок "Запустити без виводу" під пунктом "Виконати"


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

Якщо VM працює і відображається екран, ви можете приховати його, виконавши наступні дії.

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

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

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.