Comment arrêter en toute sécurité le système d'exploitation invité dans VirtualBox à l'aide de la ligne de commande


70

J'ai Ubuntu 10.10 et j'utilise VirtualBox 3.2. En tant qu'OS invité, j'ai un autre Ubuntu dans la VirtualBox.

Je lance Guest Ubuntu automatiquement en utilisant la commande suivante une fois que mon hôte Ubuntu a démarré:

VBoxHeadless -startvm Ubuntu --vrdp on

Ensuite, je peux y accéder avec ssh ou tsclient.

Maintenant, j'ai besoin d'arrêter automatiquement Guest Ubuntu une fois que j'ai arrêté mon hôte Ubuntu. Est-ce que quelqu'un connaît une méthode sûre pour arrêter automatiquement Guest Ubuntu avec une ligne de commande? J'ai découvert deux façons d'arrêter le système d'exploitation invité, mais je ne sais pas s'il est sécurisé ou non. Les voici:

VBoxManage controlvm Ubuntu acpipowerbutton

ou

VBoxManage controlvm Ubuntu poweroff

Réponses:


57

Si vous ouvrez les préférences de gestion de Gnome Power, vous pouvez définir les actions à exécuter lorsque vous appuyez sur le bouton d'alimentation. Si vous le configurez pour qu'il s'éteigne, il se fermera normalement lorsque vous appuierez sur le bouton d'alimentation virtuel avec la VBoxManage controlvm Ubuntu acpipowerbutton commande.


16

Pour arrêter en toute sécurité vm, utilisez cette commande:

vboxmanage controlvm Ubuntu poweroff soft

9
Pouvez-vous fournir votre source? Il me semble être incapable de trouver quoi que ce soit sur cette option "logicielle" dans le chapitre 8 de la documentation de la VBox.
rbaleksandar

5
Tuer des vms sans méfiance depuis 2013. Peut-être enlever cette réponse? N'importe qui?
Arraché

11

Si vous arrêtez la machine virtuelle lorsque le serveur le fait, vous devez attendre la ou les machines virtuelles.

(Dans ce shellscript, 'root' est l'invocateur et 'l'utilisateur' est le propriétaire de 'thevm')

Je sais que les vms ont fini lorsque la sortie de la commande VBoxManage list runningvmsrenvoie une chaîne vide.

J'utilise ceci dans mon script shell

...
stop(){
    su -c "VBoxManage controlvm thevm acpipowerbutton" -s /bin/bash theuser
    while [ "`su -c 'VBoxManage list runningvms' -s /bin/bash theuser`" != "" ]
    do
        echo waiting for VMs to shutdown
        sleep 3
    done
}
...

9

Ne fais pas ça:

VBoxManage controlvm Ubuntu poweroff

Cela équivaut à débrancher le cordon d’alimentation d’un ordinateur réel. Tu ne veux pas faire ça!

Utilisez la méthode d’arrêt ACPI (vérifiez le paramètre de gestion de l’énergie comme suggéré par Egil) ou savestateessayez peut-être avec la méthode d’état de sauvegarde ( ).


1
devrait probablement mettre le ne fais pas ça! partie avant la commande. J'ai lu les deux premières lignes et exécuté la commande!
nsane

1
@ nisargshah95 Puis-je vous référer à l'exemple donné par ce fil . Lisez toujours toutes les instructions en premier et faites toujours un effort pour comprendre les commandes avant de les exécuter. C'est particulièrement vrai sous Linux.
Samuel Harmer

2
Je comprends, mais dans le cas le plus courant, après avoir lu la commande, une personne en déduirait que c'est la solution (sans en lire plus)
nsane

Je suis d’accord @nsane - j’ai suggéré une modification afin que cela n’arrive pas aux autres.
Adam K Dean

6

Vous devez éteindre votre Ubuntu virtuel comme vous éteignez votre vrai matériel. À partir d'un commanline sur une session ssh à distance, émettez:

sudo poweroff

Si vous voulez sauvegarder l'état de la machine (similaire à suspendre / hiberner), utilisez le deuxième point de la réponse de @ htorque .


-4

J'ai l'habitude d'arrêter la machine virtuelle (Linux) en $ sudo shutdown -h now devinant que c'est la manière la plus élégante de mettre fin à la machine virtuelle car il s'agit d'un arrêt (pas de mise hors tension) qui fournit un temps de grâce et (éventuellement) le message aux utilisateurs qui se connectent.


1
La question concerne l'arrêt de l'OS invité à partir de l'hôte. Cela n'aurait pas l'effet escompté si vous l'exécutiez à partir de la machine hôte.
Dave
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.