Cómo apagar con seguridad el sistema operativo invitado en VirtualBox usando la línea de comandos

70

Tengo Ubuntu 10.10 y estoy usando VirtualBox 3.2. Como SO invitado tengo otro Ubuntu en VirtualBox.

Estoy iniciando Guest Ubuntu automáticamente usando el siguiente comando una vez que mi Host Ubuntu se inicia:

VBoxHeadless -startvm Ubuntu --vrdp on

Entonces puedo acceder a él con ssh o tsclient.

Ahora necesito apagar automáticamente Ubuntu invitado una vez que apague mi Ubuntu Ubuntu. ¿Alguien sabe algún método seguro para apagar automáticamente Ubuntu invitado con una línea de comando? He descubierto dos formas en que uno puede apagar el sistema operativo invitado, pero no estoy seguro de si son seguros o no. Aquí están ellos:

VBoxManage controlvm Ubuntu acpipowerbutton

o

VBoxManage controlvm Ubuntu poweroff
Bakhtiyor
fuente

Respuestas:

57

Si abre las preferencias de administración de Gnome Power, puede establecer qué acciones tomar cuando se presione el botón de encendido. Si lo configura para que se apague, se apagará correctamente cuando presione el botón de encendido virtual con el VBoxManage controlvm Ubuntu acpipowerbutton comando.

Egil
fuente
16

Para apagar vm de forma segura, use este comando:

vboxmanage controlvm Ubuntu poweroff soft
Menzer
fuente
9
¿Puedes proporcionar tu fuente? Parece que no puedo encontrar nada en esta opción "suave" en el Capítulo 8 de la documentación de VBox.
rbaleksandar
55
Matando vms desprevenidos desde 2013. ¿Quizás eliminar esta respuesta? ¿Nadie?
Desarraigado el
11

Si está cerrando el vm cuando el servidor lo hace, debe esperar a que el vm (s)

(En este shellscript, 'root' es el invocador, y 'theuser' es el propietario de 'thevm')

Sé que los vms han terminado cuando la salida del comando VBoxManage list runningvmsdevuelve una cadena vacía.

Lo uso en mi script de 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
}
...
Jorge Sanchez
fuente
9

No hagas esto:

VBoxManage controlvm Ubuntu poweroff

Es equivalente a desconectar el cable de alimentación de una computadora real. ¡No quieres hacer esto!

Use el método de apagado ACPI (verifique la configuración de administración de energía como sugiere Egil) o savestatepruebe el método de estado de guardado ( ).

htorque
fuente
1
probablemente debería poner el no hacer esto! parte antes del comando. ¡Leí las dos primeras líneas y ejecuté el comando!
nsane
1
@ nisargshah95 ¿Puedo referirme al ejemplo dado por este hilo ? Siempre lea primero todas las instrucciones y siempre haga un esfuerzo por comprender cualquier comando antes de ejecutarlo. Especialmente cierto en Linux.
Samuel Harmer
2
Lo entiendo, pero en el caso más común, después de leer la orden, una persona pudiera inferir que se trata de la solución (sin seguir leyendo)
Nsane
Estoy de acuerdo @nsane: he sugerido una edición para que esto no le suceda a otros.
Adam K Dean
6

Debe apagar su Ubuntu virtual al igual que apaga su hardware real. Desde un comando en una sesión ssh, emitir de forma remota:

sudo poweroff

Si desea guardar el estado de la máquina (similar a suspender / hibernar) use el segundo punto en la respuesta de @ htorque .

Takkat
fuente
-4

Por lo general, apago la VM (Linux) $ sudo shutdown -h now porque creo que es la forma más elegante de terminar la VM porque está apagada (no apagada) y proporciona tiempo de gracia y (posiblemente) el mensaje a los usuarios que inician sesión.

Woogon Chung
fuente
1
La pregunta se relaciona con el apagado del sistema operativo invitado desde el host. Esto no tendría el efecto ... er ... previsto, si lo ejecutó desde la máquina host.
Dave