Come arrestare in sicurezza il SO guest in VirtualBox usando la riga di comando


70

Ho Ubuntu 10.10 e utilizzo VirtualBox 3.2. Come SO guest ho un altro Ubuntu nel VirtualBox.

Sto avviando Guest Ubuntu automaticamente usando il comando seguente dopo l'avvio del mio Host Ubuntu:

VBoxHeadless -startvm Ubuntu --vrdp on

Quindi posso accedervi con ssh o tsclient.

Ora ho bisogno di spegnere automaticamente Guest Ubuntu dopo aver spento il mio Host Ubuntu. Qualcuno conosce un metodo sicuro per spegnere automaticamente Guest Ubuntu con una riga di comando? Ho scoperto due modi in cui è possibile arrestare il SO guest ma non sono sicuro che siano sicuri o meno. Eccoli qui:

VBoxManage controlvm Ubuntu acpipowerbutton

o

VBoxManage controlvm Ubuntu poweroff

Risposte:


57

Se si aprono le preferenze di gestione dell'alimentazione di Gnome, è possibile impostare quali azioni intraprendere quando si preme il pulsante di accensione. Se lo imposti per spegnerlo, si spegnerà con grazia quando premi il pulsante di accensione virtuale con il VBoxManage controlvm Ubuntu acpipowerbutton comando.


16

Per spegnere in sicurezza vm usa questo comando:

vboxmanage controlvm Ubuntu poweroff soft

9
Potete fornire la vostra fonte? Mi sembra di non riuscire a trovare nulla su questa opzione "soft" nel capitolo 8 della documentazione di VBox.
rbaleksandar,

5
Uccidere vm ignari dal 2013. Forse rimuovere questa risposta? Chiunque?
Sradicato il

11

Se stai chiudendo la VM quando il server lo fa, devi aspettare la VM

(In questo shellscript "root" è l'invocatore e "theuser" è il proprietario di "thevm")

So che i vms sono terminati quando l'output del comando VBoxManage list runningvmsrestituisce una stringa vuota.

Lo uso nel mio script di 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

Non farlo:

VBoxManage controlvm Ubuntu poweroff

È equivalente a staccare la spina di alimentazione su un computer reale. Non vuoi farlo!

Usa il metodo di spegnimento ACPI (controlla le impostazioni di risparmio energetico come suggerisce Egil) o magari savestateprova il metodo save state ( ).


1
probabilmente dovrei mettere il non farlo! parte prima del comando. Ho letto le prime due righe ed eseguito il comando!
nsane,

1
@ nisargshah95 Vorrei rimandarti all'esempio dato da questa discussione . Leggere sempre prima tutte le istruzioni e fare sempre uno sforzo per comprendere qualsiasi comando prima di eseguirlo. Soprattutto vero in Linux.
Samuel Harmer,

2
Capisco, ma nel caso più comune, dopo aver letto il comando, una persona vorrebbe dedurre che è la soluzione (senza leggere oltre)
nsane

Accetto @nsane - ho suggerito una modifica in modo che ciò non accada ad altri.
Adam K Dean,

6

Dovresti spegnere Ubuntu virtuale proprio come fai spegnere il tuo vero hardware. Da una commanline su una sessione ssh in remoto:

sudo poweroff

Se vuoi salvare lo stato della macchina (simile a suspend / hibernate) usa il secondo punto nella risposta di @ htorque .


-4

Di solito spengo la VM (Linux) $ sudo shutdown -h now suppongo che sia il modo più grazioso di terminare la VM perché è lo spegnimento (non lo spegnimento) e fornisce il tempo di tolleranza e (possibilmente) il messaggio agli utenti di accesso.


1
La domanda riguarda l'arresto del sistema operativo guest dall'host. Ciò non avrebbe l'effetto ... er ... previsto, se lo avessi eseguito dal computer host.
Dave,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.