87 votes

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

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

Je démarre Ubuntu invité automatiquement en utilisant la commande suivante une fois que mon Ubuntu hôte démarre :

VBoxHeadless -startvm Ubuntu --vrdp on

Je peux alors y accéder avec ssh ou tsclient.

Maintenant, je dois arrêter automatiquement l'Ubuntu invité une fois que j'ai arrêté l'Ubuntu hôte. Quelqu'un connaît-il une méthode sûre pour arrêter automatiquement Guest Ubuntu en ligne de commande ? J'ai trouvé deux façons d'arrêter le système d'exploitation invité mais je ne suis pas sûr qu'elles soient sûres ou non. Les voici :

VBoxManage controlvm Ubuntu acpipowerbutton

o

VBoxManage controlvm Ubuntu poweroff

70voto

Egil Points 13196

Si vous ouvrez les préférences de gestion de l'alimentation de Gnome, vous pouvez définir les actions à entreprendre lorsque vous appuyez sur le bouton d'alimentation. Si vous le paramétrez pour qu'il s'éteigne, il s'éteindra gracieusement lorsque vous appuierez sur le bouton d'alimentation virtuel avec l'icône VBoxManage controlvm Ubuntu acpipowerbutton comando.

24voto

menzer Points 345

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

vboxmanage controlvm Ubuntu poweroff soft

14voto

Maciek Gryka Points 1807

Ne faites pas ça :

VBoxManage controlvm Ubuntu poweroff

Cela équivaut à débrancher la prise de courant d'un véritable ordinateur. Vous ne voulez pas faire ça !

Utilisez la méthode d'arrêt ACPI (vérifiez les paramètres de gestion de l'énergie comme le suggère Egil) ou peut-être la méthode de sauvegarde de l'état ( savestate ) un essai.

12voto

Jorge Sanchez Points 221

Si vous arrêtez le vm en même temps que le serveur, vous devez attendre que le(s) vm(s)

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

Je sais que les vms sont terminés lorsque la sortie de la commande VBoxManage list runningvms renvoie une chaîne vide.

J'utilise ceci dans mon Shell 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
}
...

7voto

Takkat Points 135194

Vous devez éteindre votre Ubuntu virtuelle comme vous éteignez votre matériel réel. Depuis une ligne de commande sur une session ssh à distance :

sudo poweroff

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

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X