VirtualBox im Hintergrund ohne Fenster ausführen?


106

Ich habe mich gefragt, ob es möglich ist, eine virtuelle Ubuntu-Maschine mit VirtualBox im Hintergrund auszuführen, ohne dass ein Fenster geöffnet ist.

Die Idee ist, sich über SSH mit dem Linux-Host zu verbinden, der im Hintergrund laufen würde.

Hat jemand so etwas schon einmal gemacht? Ist es möglich?


Du meinst über SSH mit dem Linux- Gast verbinden ? Mit QEMU, das den Gast in Ihrem Terminal ausführt, können Sie dies sehr einfach durchführen.
Felix

Vielleicht interessiert Sie auch die SSH-Konfiguration: superuser.com/questions/424083/virtualbox-host-ssh-to-guest
Fabricio PH


1
Offen zu lassen, da diese Frage besser als das Original behandelt wird; hat bei der anderen Frage für den Abschluss als Duplikat gestimmt.
bwDraco

Stimmen Sie voll und ganz mit @DragonLord überein - klicken Sie hier , um zu der anderen Frage zu gelangen, und schließen Sie sie als Duplikat für diese Frage.
Raystafarian

Antworten:


92

VBoxManage startvm $VM --type headless startet die angegebene virtuelle Maschine im Hintergrund.

Fordern Sie zum Herunterfahren das Herunterfahren beim Gast an.


Sie können nur dann eine SSH-Verbindung zum Computer herstellen, wenn Sie das Netzwerk ordnungsgemäß eingerichtet haben. Ich denke, Sie müssen Bridged verwenden, damit sich die VM und Ihr Computer im selben Netzwerk befinden. Außerdem wird VirtualBox weiterhin die GUI des Ziel-Betriebssystems ausführen und Sie können eine Verbindung über den Remotedesktop "rdesktop" (erhalten Sie von Apt, da Sie in Ubuntu sind) herstellen
Basszero

1
Wahr. Ich gehe davon aus, dass die VM normalerweise zuerst über die VirtualBox-Benutzeroberfläche ausgeführt wird, um sie zu installieren und zu konfigurieren. Verwenden Sie VBoxManage nur, wenn alles (einschließlich Netzwerkbetrieb) funktioniert.
Developmentalinsanity

Mit einer anderen VM-Software kann ich das Fenster schließen, damit es nicht immer geöffnet ist und weiterhin im Hintergrund ausgeführt wird. Das Fenster kann jedoch geöffnet werden, wenn ich eine Schnittstelle herstellen möchte. Ist es das was dies tut?
JFA

Stellen Sie sicher, dass ssh ohne -X oder -Y auf dem Computer ausgeführt wird, da dies den obigen Befehl zu veranlassen scheint, den Prozess an die Shell anzuhängen. Wenn Sie also beenden, wird die VM abgebrochen.
Moritz


23

Absolut! Sie suchen eine kopflose Installation (Virtualbox). So starten Sie den Computer über die Befehlszeile:

VBoxHeadless --startvm Debian --vrdp=off

Sie benötigen jedoch eine Möglichkeit, eine Verbindung herzustellen. Was ich tue, ist die Zuordnung von Ports zwischen Gast und Host. Mit dieser Konfiguration wird der Port 2222 Ihres Hosts dem Port 22 Ihres Gastcomputers zugeordnet.

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  

Danach können Sie sich einloggen mit:

ssh localhost -p2222

vm muss auf ssh-verbindungen hören, oder? Es kann angebracht sein, dies explizit zu formulieren.
Matheus Santana

3

eine Alternative zu VBoxManage startvm "{VMName}" --type headlessist
VBoxHeadless -startvm "{VMName}"

Amüsanterweise habe ich gerade herausgefunden, wie man eine VM kopflos über RDP laufen lässt.

Hinweis - Zumindest unter Windows wird Ihr Befehlsfenster blockiert. Wenn Sie Ihr Konsolenfenster weiterhin verwenden müssen, öffnen Sie ein anderes Fenster, um die VM zu starten.

Um die VM herunterzufahren, fordern Sie das Gastbetriebssystem zum Herunterfahren auf. VBoxHeadlessDie Konsole wird freigegeben, wenn der Guest vollständig heruntergefahren ist Ctrl+C.


Die Tatsache, dass vboxheadless die Konsole stark blockiert, macht den Sinn eines Headless-Modus zunichte. Unter Mac OS X (und vermutlich unter Linux und Solaris) funktioniert der Headless-Modus, wenn Sie vboxheadless mit & in den Hintergrund senden.
Andrew J. Brehm

Ich könnte mir vorstellen, dass es einen Weg gibt, dies unter Windows zu tun. Ich habe ihn einfach nicht gefunden. Auf jeden Fall verbraucht eine kopflose VM weniger Ressourcen auf dem Servercomputer als eine mit einer vollständigen grafischen Benutzeroberfläche.
Fake Name

2

Ich verwende VBoxTool von http://vboxtool.sourceforge.net/ und es funktioniert perfekt für mich. Es kann VMs beim Booten automatisch starten und VMs beim Herunterfahren stoppen / speichern und bietet eine einfache, saubere Befehlszeilenschnittstelle.


2

Ich glaube nicht, dass der Seamless-Modus genau das ist, wonach er hier sucht. Ich denke, das Richtige wäre VBoxHeadless. Welche Details Sie im Handbuch finden können. Es wird über eine Befehlszeilenschnittstelle ausgeführt und beispielsweise verwendet, wenn eine virtuelle Maschine auf einem Server ausgeführt wird, die Anzeige jedoch nicht vom Server gewünscht wird. Sie können Remotedesktop auf dem Computer ausführen (vorausgesetzt, Sie wissen, wie die Option über die Befehlszeile festgelegt wird).

Ich würde empfehlen, dies in den Virtualbox-Foren zu erfragen. Führen Sie zunächst eine Suche durch, da dies meines Erachtens bereits abgefragt wurde.


VBoxManage war das Richtige, sorry. Verknüpfen Sie die Informationen im Handbuch http://www.virtualbox.org/manual/ch08.html


2

So starten Sie im Headless-Modus mit der GUI:

Halten Sie beim Starten der VM die Umschalttaste gedrückt.

Danach können Sie auch eine Verbindung zur GUI herstellen und diese trennen (Verwenden von Show and Machine -> Trennen der GUI- Optionen).


1

Ich habe festgestellt, dass der Headless-Modus beim Hintergrundbetrieb unter Linux (CentOS 5.6) anscheinend einwandfrei funktioniert, aber Sie verlieren den Zugriff auf die RDP-Funktionalität, solange der Prozess im Hintergrund ausgeführt wird. Führen Sie ein 'fg' aus, um den Prozess wieder in den Vordergrund zu stellen, und die RDP-Funktionalität wird wiederhergestellt. Sieht so aus, als würde das Starten des vm headless am besten über ein Init-Skript erfolgen, bei dem keine Interaktivität mit der Konsole erforderlich ist.


1

Sie können VBoxHeadless verwenden oder (und ich frage mich, warum niemand dies vor mir erwähnt hat) einfach eine der Startoptionen auswählen, mit denen die VM ohne GUI ausgeführt wird.

Halten Sie die Umschalttaste gedrückt, und starten Sie die Maschine, oder klicken Sie mit der rechten Maustaste auf die Maschine, und suchen Sie unter "Ausführen" nach "Ohne Ausgabe ausführen".


0

Ich habe diese Zeilen in meine .bashrc eingefügt:

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

Für den SSH-Zugriff müssen Sie die Konfiguration nicht ändern. Behalten Sie nur die NAT bei und richten Sie die Portweiterleitungstabelle wie folgt ein:

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

Wenn Sie localhost: 8080 in Ihren Maschinenbrowser einfügen, wird die Seite von VM (auf Port 80) geöffnet.


0

Wenn die VM ausgeführt wird und der Bildschirm angezeigt wird, können Sie sie mithilfe der folgenden Schritte ausblenden.

Bildbeschreibung hier eingeben

Bildbeschreibung hier eingeben

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.