I lov3 CLI: Maquinas virtuales VBoxManage

Sin lugar a duda muchos hemos usado VirtualBox en su versión GUI, para probar y experimentar con distintas distros u otros S.O, o para aplicaciones en versiones de pruebas y no tener consecuencias en nuestros equipos de trabajo o servidores. Pero poco se habla de vboxmanage, su versión CLI, que además de ser muy completa y de tener el mismo control que tenemos con la versión gráfica, nos ahorra algunos megas de RAM, recursos que al fin y al cabo es lo valioso de este tipo de aplicaciones.

Instalado VirtualBox, instalado vboxmanage, así no hay nada más que enseñar al respecto. 😉

Si ya tenemos algunas maquinas virtuales (a.k.a VM) creadas, podemos visualizar una lista de ellas con el comando:

vboxmanage list vms

«Windows XP» {3d216ab8-3b44-46fd-8738-8c631801176e}
«Slackware» {f65d5b26-6491-4523-8c06-970cbe6844d5}
«Peppermint» {32b1845f-dd72-4c8a-bfe7-8cc3e83d0109}
«Test» {c25e1257-dfed-4789-a22b-8489c4d4df05}
«Mint» {acc458d0-435b-44c7-806d-41c4948bb490}

y más dependiendo de la cantidad de VM que tengan, si necesitáramos de más detalles recurrimos al atributo; menos,ele [-l]. Los nombres de las VM aparecen en comillas y entre llaves el UUID (identificador único interno) siendo esta la forma en que VBox las reconoce.

vboxmanage list vms -l

Siendo otra opción usar el comando [showvminfo] para ver los detalles de una VM especifica,  su sintaxis es:

vboxmanage showvminfo "Slackware"

Hay dos formas de arrancar las VM, una por su «nombre» y la otra con su UUID, para esto usamos el comando [startvm], siendo la sintaxis, la siguiente:

vboxmanage startvm "Peppermint"

se respeta las comillas, para el caso del UUID solo escribimos los números, nada de llaves.

vboxmanage startvm 32b1845f-dd72-4c8a-bfe7-8cc3e83d0109

y comenzara la ejecución de la maquina virtual en la ventana de virtualbox, además estos comandos de arranque pueden ser incluidos en el script de inicio de su pc o servidor.

Algo muy útil es saber  que VM están encendidas, para ello usamos el comando:

vboxmanage list runningvms

 

Para controlar los estados de la VM utilizamos el comando [controlvm], así podremos manejarlo, con la siguiente sintaxis:

vboxmanage controlvm "Peppermint" pause

podemos cambiar entre los estados pause, resume, reset, poweroff  y savestate.

Hasta aquí los comandos básicos para las VM existentes en nuestros equipos, con ellas nos podremos mover por ellas con facilidad.

Crear y Eliminar VM

Para crearlas usamos el comando [createvm] además de algunos atributos para personalizarla, a continuación la sintaxis:

vboxmanage createvm --name "Mint" --register

Con esto creamos nuestra maquina virtual, otorgamos el nombre «Mint», se registra (para evitar que la UUID sean iguales) y tiene una configuración por default, que luego podremos modificar a nuestro antojo.

Para eliminar una VM, usamos el comando [unregistervm] y usamos el atributo [–delete] (dos guiones,delete)

vboxmanage unregistervm "Mint" --delete

Configuración VM

Utilizamos el comando [modifyvm] además de todos sus parámetros,  con la siguiente sintaxis:

vboxmanage modifyvm "Test" --name "Testing" --ostype Linux --memory "2048"

Con este comando renombramos la VM Test a Testing, el tipo de S.O sera Linux y le otorgamos 2048 Mb de RAM (siempre serán Mb así que no copien y peguen, el comando).

A continuación creamos el disco duro, para ello definimos que controlador usar, según sea el caso elegimos si sera IDE o SATA (si el S.O que vamos a virtualizar es antiguo y no trae controladores SATA pues usaremos IDE en nuestra configuración, así podremos utilizarlo sin contratiempos)

vboxmanage storagectl "Testing" --name "IDE Controller" --add ide --controller IntelAHCI

continuamos con un:

vboxmanage createhd --size "300" --filename "Testeo"

Esto creara el disco duro virtual IDE de nombre «Testeo» (demás decir que este nombre es la ruta completa, hasta la carpeta de la VM, para que quede ordenado), con un tamaño de 300 Mb (recordar que siempre es en Mb) y el formato por default es vdi, en su defecto quisieran otro pues [doble guion, format] vhd|vmdk|vdi.

vboxmanage storageattach "Testing" --storagectl "IDE Controller" --port 0 --device 0 --type hdd --medium Testeo.vdi

Así vinculamos el HDD virtual IDE con la VM, ahora por la red:

vboxmanage modifyvm "Testing" --nic1 bridged --bridgeadapter1 eth0

Finalmente la lectora con la ISO:

vboxmanage storageattach "Testing" --storagectl "IDE Controller" --port 1 --device 0 --type dvddrive --medium /ruta/SO.iso

Además de vboxmanage al instalar virtualbox también nos ofrece la posibilidad de usar dos  frontend distintos como vboxsdl, que al usarlo mostrara una ventana simple sin menúes ni controles al ejecutar una VM y vboxheadless, que será linea de comandos pura, nada de interfaz gráfica alguna.

vboxsdl --startvm "Peppermint"

ó reemplazando vboxsdl por vboxheadless.

Buenas vibras lectores, hasta otro post.

6 comentarios

  1. Pues gracias a este artículo hice un lanzador que inicia mi máquina con windows 7. Ahora voy al lanzador directamente en lugar de iniciar virtualbox y arrancar la máquina virtual.

    ¡Exelente artículo! 😛

    Me gusta

  2. La verdad hace tiempo buscaba algo parecido para hacer una máquina virtual y lanzarla desde la terminal, pero estaba un poco complicado el tema de usar Xen o Kvm, pero a la final me decante por esas dos para así aprender sobre esos programas de virtualización, aparte de que en mi portátil quiero hacer passthrough de la tarjeta NVIDIA y Virtualbox no me lo permite.

    En fin, me gustó mucho tu articulo, estoy siguiendo tus artículos de amor por la línea de comandos 🙂

    Le gusta a 1 persona

    1. Muchas gracias por seguir la serie, pues tienes mucha razón hay cosas que Vitualbox no permite, o sera que no sepa usarlo del todo, que con Xen o KVM, VmWare u otras soluciones de virtualización es más visible. Espero que con este articulo te animes a darle una nueva chance.
      Saludos.

      Me gusta

Deja un comentario