Exécuter VirtualBox en arrière-plan, sans fenêtre?

106

Je me demandais s'il était possible de faire fonctionner une machine virtuelle Ubuntu en utilisant VirtualBox en arrière-plan, c'est-à-dire sans aucune fenêtre ouverte.

L'idée est de se connecter via SSH à l'hôte Linux, qui fonctionnerait en arrière-plan.

Est-ce que quelqu'un a déjà fait quelque chose comme ça? C'est possible?

Robotnik
la source
Vous voulez dire vous connecter via SSH à l' invité Linux ? Vous pouvez le faire très facilement avec QEMU, qui exécutera l'invité dans votre terminal.
Felix
Donc, vous pouvez également être intéressé par la configuration SSH: superuser.com/questions/424083/virtualbox-host-ssh-to-guest
Fabricio PH
1
Laisser ouverte car cette question est mieux traitée que l'original; voté pour clore en double sur l'autre question.
bwDraco
Tout à fait d’accord avec @DragonLord - Cliquez ici pour passer à l’autre question et la fermer comme une dupe à celle-ci.
Raystafarian

Réponses:

92

VBoxManage startvm $VM --type headless va démarrer la machine virtuelle spécifiée en arrière-plan.

Pour l'éteindre, demandez la fermeture de l'invité.

développementalinsanity
la source
Vous ne pourrez connecter SSH à la machine que si vous avez correctement configuré la mise en réseau. Je pense que vous devez utiliser un pont pour que la VM et votre machine soient sur le même réseau. De plus, VirtualBox continuera à exécuter l’interface utilisateur du système cible et vous pourrez vous y connecter via le bureau distant, "rdesktop" (obtenez depuis apt puisque vous êtes dans Ubuntu)
basszero
1
Vrai. Je suppose que la machine virtuelle est généralement exécutée via l'interface graphique de VirtualBox avant d'être installée et configurée. Utilisez VBoxManage uniquement lorsque tout (y compris la mise en réseau) fonctionne.
developmentalinsanity
Avec d'autres logiciels de machine virtuelle, je peux fermer la fenêtre afin qu'elle ne soit pas toujours ouverte et qu'elle continue à s'exécuter en arrière-plan, mais ouvre la fenêtre lorsque je souhaite me connecter à celle-ci. Est-ce ce que cela fait?
JFA
Assurez-vous de ssh sur la machine sans -X ou -Y car ceux-ci semblent obliger la commande ci-dessus à lier le processus au shell. Ainsi, si vous quittez la machine virtuelle.
Moritz
63

Ceci est intégré à VirtualBox 4.2.

Maintenez simplement la touche Maj enfoncée lors du lancement de la machine virtuelle à partir du gestionnaire.

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

Greg Sansom
la source
1
Mise à jour: dans VirtualBox 5.1, vous avez même un menu de démarrage déroulant juste à côté du bouton de démarrage dans le gestionnaire. Ce menu est disponible uniquement si la machine virtuelle est arrêtée.
Titou
23

Absolument! Vous recherchez une installation sans tête (Virtualbox). Pour démarrer la machine à partir de la ligne de commande, procédez comme suit:

VBoxHeadless --startvm Debian --vrdp=off

Cependant, vous aurez besoin d'un moyen de se connecter. Ce que je fais est la cartographie des ports entre invité et hôte. Avec cette configuration, votre port hôte 2222 sera mappé sur le port 22 de votre ordinateur invité.

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  

Après cela, vous pouvez vous connecter avec:

ssh localhost -p2222
SystematicFrank
la source
VM doit être à l'écoute des connexions SSH, non? Cela vaut peut-être la peine d'expliquer cela.
Matheus Santana
3

une alternative à VBoxManage startvm "{VMName}" --type headlessis
VBoxHeadless -startvm "{VMName}"

Chose amusante, je viens juste de comprendre comment exécuter une machine virtuelle sans tête sur RDP.

Remarque - Au moins sur Windows, votre fenêtre de commande sera bloquée. Si vous devez continuer à utiliser votre fenêtre de console, ouvrez-en une autre pour démarrer la machine virtuelle dans.

Pour arrêter la machine virtuelle, vous demandez au système d'exploitation invité de s'éteindre. VBoxHeadlesslibère la console lorsque l'invité est complètement éteint (vous pouvez le faire Ctrl+C, mais je pense que cela peut être analogue à une réinitialisation matérielle sur une machine réelle).

Faux nom
la source
Le fait que vboxheadless bloque la console va à l’encontre du but d’un mode sans tête. Sous Mac OS X (et vraisemblablement sous Linux et Solaris), le mode sans en-tête fonctionne lorsque vous envoyez vboxhead en arrière-plan à l'aide de &.
Andrew J. Brehm
J'imagine qu'il y a un moyen de faire ça sur Windows, je ne l'ai tout simplement pas trouvé. En tout état de cause, une machine virtuelle sans tête utilise certes moins de ressources sur l’ordinateur serveur que celle utilisant une interface graphique complète.
Fake Name
2

J'utilise VBoxTool depuis http://vboxtool.sourceforge.net/ et cela fonctionne parfaitement pour moi. Il peut démarrer automatiquement les ordinateurs virtuels au démarrage et arrêter / enregistrer les ordinateurs virtuels à l’arrêt et fournit une interface de ligne de commande propre et simple.

Wolfgang Ulmer
la source
2

Je ne pense pas que le mode transparent soit vraiment ce qu'il recherche ici, je pense que la bonne chose à faire serait VBoxHeadless, dont les détails peuvent être trouvés dans le manuel. Il fonctionne à l'aide d'une interface de commande de ligne de commande et serait utilisé, par exemple, si une machine virtuelle était en cours d'exécution sur un serveur mais que l'affichage n'était pas souhaité par le serveur. Vous pourrez utiliser le bureau à distance sur la machine (à condition de savoir comment définir l’option via la ligne de commande).

Je recommanderais de demander ceci dans les forums de virtualbox. En fait, faites d'abord une recherche, car je pense que cela a déjà été demandé.


VBoxManage était la bonne chose, désolé. Liez les informations dans le manuel http://www.virtualbox.org/manual/ch08.html

tombull89
la source
2

Pour démarrer en mode sans tête à l'aide de l'interface graphique:

Maintenez la touche Maj enfoncée lors du démarrage de la machine virtuelle.

Après cela, vous pourrez également vous connecter et vous déconnecter de l'interface graphique (Utilisation des options Afficher et Machine -> Détacher les options de l' interface graphique ).

Rustyx
la source
1

J'ai trouvé que le mode sans tête semble fonctionner correctement avec Linux (CentOS 5.6), mais vous perdez l'accès à la fonctionnalité RDP tant que le processus est en arrière-plan. Faites un 'fg' pour ramener le processus au premier plan et la fonctionnalité RDP est restaurée. On dirait que le démarrage de vm headless est mieux réalisé via un script init, où l'interactivité avec la console n'est pas requise.

rhce2009
la source
1

Vous pouvez utiliser VBoxHeadless ou (et je me demande pourquoi personne ne l’a mentionné avant moi), vous pouvez simplement sélectionner l’une des options de démarrage, qui exécutera la machine virtuelle sans interface graphique.

Soit maintenez la touche Maj enfoncée et démarrez la machine, ou cliquez avec le bouton droit de la souris sur la machine et recherchez quelque chose comme "Exécuter sans sortie" sous "Exécuter".

lot
la source
0

J'ai ajouté ces lignes dans mon .bashrc:

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

Pour un accès ssh, vous n'avez pas besoin de modifier la configuration, conservez simplement le NAT et vous pouvez configurer la table de transfert de port comme suit:

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

Lorsque vous insérez localhost: 8080 dans le navigateur de votre ordinateur, la page de la machine virtuelle (sur le port 80) est ouverte.

radeklos
la source
0

Si la machine virtuelle est en cours d'exécution et que l'écran est affiché, vous pouvez le masquer en procédant comme suit.

entrez la description de l'image ici

entrez la description de l'image ici

Tableau complet
la source