Cómo iniciar y detener invitados VirtualBox a través de la línea de comandos

11

Tengo VirtualBox en Ubuntu 16.04 como host e invitados también. Tengo que administrar invitados (iniciar, detener solo) a través de la línea de comando SSH, pero no encontré ninguna solución que funcione.

codolom
fuente
Fue más fácil de lo que pensaba. Lo siento por OFF. Hay alguna herramienta de línea de comando para kvm. Uno de ellos es "virsh". Para iniciar | detener un vm simplemente use: $ virsh start | shutdown <vmname> (puede enumerar por $ virsh list --todos). Puede usar esta herramienta en bash script o crontab, por ejemplo. Gracias por la ayuda nuevamente.
codolom el

Respuestas:

19

Todo esto se puede lograr mediante el uso VBoxManage después de haber establecido una conexión ssh:

1. Incluya su VMS:

Primero enumere sus máquinas virtuales disponibles con el comando VBoxManage list vms, lo ilustra en mi propia configuración:

andrew@ilium~$ VBoxManage list vms
"Windows 8" {c4422acd-727b-45a0-9eef-65636bcde44d}
"Windows 10" {a8e262be-a032-4918-9085-63185318a979}
"Trusty Tahr Clean Copy" {c99bcf4b-9fea-4971-b190-425cb0b0cdeb}
"Xenial Xerus Clean Copy" {850122b9-c65f-425b-abb3-ffda68e159c6}
"Precise Pangolin Clean Copy" {169086e6-a3f4-42e7-8a89-63dcb273143f}
"Precise Pangolin Working Copy" {ff8312b6-cfae-4877-aa93-d71036d8882c}
"Xenial Xerus for MPlayer" {44902710-4368-4c06-9d24-3cb55328d31c}
"Xenial Xerus for vlc" {a62ad306-17d9-4ee3-8c1a-e4439c3b0e05}
"Xenial Xerus mingw64" {584d8513-6a16-49c7-b020-d657b93d5552}
"Trusty Tahr Working copy..." {433349e9-52eb-4066-bae7-623592871839}
"Xenial Xerus Working copy..." {dda23e74-cdb5-4c7d-8836-31be4129c02a}
andrew@ilium~$ 

Nota: Si no está seguro de qué máquina virtual se está ejecutando , puede usar VBoxManage list runningvmsen su lugar ...

2. Inicie una VM:

El VBoxManagecomando y las opciones que busca para iniciar una máquina virtual son los siguientes:

  startvm                   <uuid|vmname>...
                            [--type gui|sdl|headless|separate]

Entonces, para iniciar la VM "Trusty Tahr Clean Copy" en mi ejemplo, usaría:

VBoxManage startvm "Trusty Tahr Clean Copy" --type gui

3. Detener una VM:

Para detener la VM, volvería a utilizarla VBoxManagepero esta vez con la controlvmopción:

  controlvm                 <uuid|vmname>
                            pause|resume|reset|poweroff|savestate|

Y en mi ejemplo para cerrar la VM "Trusty Tahr Clean Copy", el comando sería:

VBoxManage controlvm "Trusty Tahr Clean Copy" savestate

Todo esto debería funcionar bien sobre ssh, que necesita una interfaz gráfica de usuario después de todo :)

andrew.46
fuente
He probado estos comandos antes de preguntar. VBoxManage lista vms | runningvms | cualquier otra cosa - resultado vacío Imposible. Los vms se crean en una interfaz gráfica y se están ejecutando. Este fue el momento, cuando pedí ayuda.
codolom el
@codolom Hmmm .... debe ser la conexión ssh entonces. ¿Se está conectando a su computadora host desde otra computadora a través de ssh? Supongo que está utilizando la línea de comandos ssh ...
andrew.46
@codolom t es curioso, probé la información en mi respuesta en mi propio sistema a través de ssh y funcionó perfectamente. ¿`VBoxManage list vms` da un error?
andrew.46
No sabía que eso debería ser un problema. He intentado solucionarlo de esta manera: stackoverflow.com/questions/5906441/… Odio este cuadro de texto con Ctrl + Enter :( - Lo siento por las líneas que faltan.
Apliqué
Sin errores. Salida vacía
codolom
2

Para un uso elegante del apagado:

VBoxManage controlvm "Name" acpipowerbutton
Mella
fuente