web-dev-qa-db-fra.com

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. 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
68
Bakhtiyor

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 à l'aide de la commande VBoxManage controlvm Ubuntu acpipowerbutton.

53
Egil

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

vboxmanage controlvm Ubuntu poweroff soft
19
menzer

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 runningvms renvoie 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
}
...
10
Jorge Sanchez

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 essayez éventuellement la méthode d’état de sauvegarde (savestate).

9
htorque

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 souhaitez enregistrer l'état de la machine (similaire à suspendre/hiberner), utilisez le deuxième point dans réponse de @ htorque .

6
Takkat