VirtualBox es un potente producto de virtualización para arquitecturas x86 y AMD64/Intel64; es rico en funcionalidades y presenta un buen rendimiento, su código fuente es liberado bajo los términos de la versión 2 de la Licencia Pública General (GPL) de GNU por lo que clasifica dentro del software libre. Puede instalarse en Windows, GNU/Linux y en UNIX: Solaris, Macintosh, FreeBSD y permite un gran número de sistemas operativos clientes como: Windows, GNU/Linux , Solaris y OpenSolaris, OpenBSD/FreeBSD/NetBSD.
VirtualBox tiene un desarrollo activo con frecuentes lanzamientos de nuevas versiones las cuales incluyen nuevas características, nuevos sistemas operativos clientes y nuevas plataformas en la que se ejecuta.
Con VirtualBox puede instalar y ejecutar tantas máquinas virtuales como espacio en disco y memoria lo permitan, recuerde que tanto el espacio y la memoria asignada a la máquina virtual son tomadas del sistema operativo anfitrión.
VirtualBox es sumamente simple pero también poderoso. Se puede ejecutar en sistemas embebidos, escritorios, servidores de internet, centros de datos y entornos en la nube.
El comando para manejar las maquinas virtuales es VBoxManage
no obstante en GNU/Linux y *BSD se puede usar su versión en minúsculas: vboxmanage
Crear/Configurar la máquina virtual
1. Listar los sistemas operativos clientes
Con esta opción se listan todos los sistemas operativos clientes conocidos para VirtualBox asi como el identifcador que se puede usar en el comando modifyvm.
$ vboxmanage list ostypes
...
ID: Debian
Description: Debian (32-bit)
Family ID: Linux
Family Desc: Linux
64 bit: false
ID: Debian_64
Description: Debian (64-bit)
Family ID: Linux
Family Desc: Linux
64 bit: true
...
2. Crear la Máquina Virtual
$ vboxmanage createvm --name DebianTest --ostype Debian_64 --register
Virtual machine 'DebianTest' is created and registered.
UUID: 309219c5-0c68-4567-a7c0-ee89127389a2
Settings file: '~/VirtualBox VMs/DebianTest/DebianTest.vbox'
Con este comando creamos el archivo de definición XML ~/VirtualBox VMs/DebianTest/DebianTest.vbox
, el cual tiene la configuración por defecto de la máquina virtual, se debe tener en cuenta que en este punto no hemos instalado ningún sistema operativo cliente, ni aún estamos listo para instalarlo porque se necesita al menos añadir un medio de almacenamiento.
La opción --name
es obligatoria y especifica el nombre de la máquina virtual.
La opción --register
significa que la máquina virtual ha sido registrada y ahora es visible para ejecutar determinadas operaciones sobre la misma.
Puede inspeccionar las propiedades de la máquina virtual usando showvminfo
y luego modificar la propiedad deseada en este caso solo modificaremos la memoria RAM.
3. Aumentar la memoria RAM de la máquina virtual
$ vboxmanage modifyvm DebianTest --memory 1024
Con el comando anterior aumentamos la memoria RAM de la máquina virtual a 1GB, consulte el manual de vboxmanage showvminfo para saber las opciones que puede modificar.
4. Configurar adaptador de red
$ vboxmanage modifyvm DebianTest --nic1 bridged --bridgeadapter1 wlp2s0
VirtualBox por defecto configura el adaptador de red en modo NAT lo que significa que la máquina virtual tiene acceso a Internet pero la misma no puede ser vista desde otros dispositivos en la red por la tanto el comando anterior garantiza que la máquina virtual esté accesible desde otros dispositivos al configurar la red en modo bridged, wlp2s0 es la interfaz (inalámbrica) de red del sistema operativo anfitrión.
Consulte Manual de usuario para más información sobre como configurar la red de la máquina virtual.
5. Agregando medio de almacenamiento
Tal como una computadora o dispositivo físico la máquina virtual necesita de un medio de almacenamiento para alojar el sistema operativo cliente y otras aplicaciones.
Crear disco duro virtual
A la hora de crear el medio de almacenamiento podemos crearlo como una imagen de tamaño dinámico o como una imagen de tamaño fijo. La diferencia entre estas dos variantes es que una imagen de tamaño dinámico ocupa inicialmente poco espacio de almacenamiento en el disco duro real, o sea en el sistema operativo anfitrión, creciendo a medida que aumenta la cantidad de espacio utilizado por el sistema operatico cliente. Por otro lado, cuando se crea una imagen de tamaño fijo, la cantidad de espacio especificada por el parámetro --size
se asigna de una vez, lo que puede conducir a una utilización ineficiente del espacio en disco aunque es válido aclarar que una imagen de tamaño fijo requiere menos procesamiento y por tanto puede ser ligeramente más rápida que una imagen de tamaño dinámico.
$ vboxmanage createmedium disk --filename VirtualBox\ VMs/DebianTest/DebianTest.vdi --size 8192
0%...10%...20%...30%...40%...50%...60%...70%...80%...90%...100%
Medium created. UUID: c777db09-95ff-40e4-8ca7-2cb87ee73905
Con el comando anterior creamos un disco duro virtual de 8GB de almacenamiento de tamaño dinámico formato VDI
Consulte Manual de usuario para más información sobre los diferentes formatos y características de los medios de almacenamiento.
Ahora necesitamos agregar el controlador de almacenamiento para ser usado con el disco virtual creado anteriormente
Agregar el controlador de almacenamiento
$ vboxmanage storagectl DebianTest --name "SATA Controller" --add sata --bootable on
Con el comando anterior agregamos un controlador SATA y booteable a nuestra máquina virtual, puede consultar el manual de Virtual Box para más información.
Adjuntar el disco duro al controlador de almacenamiento
Con el siguiente comando conectamos el disco duro virtual al controlador de almacenamiento.
$ vboxmanage storageattach DebianTest --storagectl "SATA Controller"
--port 0 --device 0 --type hdd
--medium VirtualBox\ VMs/DebianTest/DebianTest.vdi
6. Instalando el sistema operativo cliente
A continuación, debe configurar la máquina virtual para que arranque desde el medio de instalación, de modo que la instalación comience cuando la máquina virtual se inicie por primera vez. Ya sea que esté utilizando un DVD de instalación o una imagen ISO, debe crear una unidad de CD / DVD virtual y conectarla a los medios de instalación. Al igual que los discos duros virtuales, las unidades de CD / DVD virtuales requieren un controlador de almacenamiento. Si bien esto se puede hacer usando un controlador SATA para muchos sistemas operativos, el siguiente ejemplo ilustra la adición de un controlador IDE para la unidad de CD / DVD.
Agregar el controlador de almacenamiento
$ vboxmanage storagectl DebianTest --name "IDE Controller" --add ide
Adjuntar la image ISO al controlador de almacenamiento
$ vboxmanage storageattach DebianTest --storagectl "IDE Controller" --port 0 --device 0 --type dvddrive --medium Downloads/debian-10.1.0-amd64-netinst.iso
Ahora puede iniciar la máquina virtual e iniciar la instalación del sistema operativo cliente utilizando el siguiente comando.
$ vboxmanage startvm DebianTest
Para realizar una instalación destendida, el sistema operativo cliente debe permitir automatizar el proceso de instalación vea: ¿Cómo instalar Debian de forma automática o desatendida? luego ejecute el comando.
$ vboxmanage startvm DebianTest --type headless
La opción headless no iniciará la máquina virtual desde la GUI de VirtualBox, sino desde la línea de comandos. No aparecerá una ventana emergente gráfica con la consola de la máquina virtual por lo que debemos conectarnos a la máquina virtual vía SSH, tengáse en cuenta que usando SSH nos conectamos al sistema operativo cliente y no a la consola de la máquina virtual.
7. Listar todas las máquinas virtuales
$ vboxmanage list vms
8. Listar las máquinas virtuales que se están ejecutando
$ vboxmanage list runningvms
9. Iniciar la máquina virtual
$ vboxmanage startvm DebianTest
10. Permitir que VirtualBox acceda a puertos privelegiados
Para permitir que VirtualBox redireccione / acceda a puertos con privilegiados (<= 1024) en el sistema operativo anfitrión, debe configurar esta variable de entorno
export VBOX_HARD_CAP_NET_BIND_SERVICE=1
11. Apagar la máquina virtual
$ vboxmanage controlvm DebianTest poweroff
12. Mostrar información de la máquina virtual
Con este comando mostramos información detallada sobre la máquina virtual, por ejemplo sistema operativo cliente, memoria asignada, configuración de red, …
$ vboxmanage showvminfo DebianTest
13. Registrar/Agregar una máquina virtual
Con el siguiente comando registramos la máquina virtual y ahora es visible para ejecutar determinadas operaciones sobre la misma.
$ vboxmanage registervm 'VirtualBox VMs/DebianTest/DebianTest.vbox'
Si tiene un error al ejecutar el comando anterior entonces especifique el camino absoluto al fichero .vbox
14. Anular el registro de la máquina virtual
Con el siguiente comando hacemos que la máquina virtual no sea visible para VirtualBox por tanto no se puede ejecutar acciones sobre la misma.
Este comando no elimina la definición y los ficheros asociado a la máquina virtual.
Para registrar la máquina virtual nuevamente debe ejecutar el comando anterior.
$ vboxmanage unregistervm DebianTest
15. Clonar una máquina virtual
Con este comando creamos una máquina virtual a partir de una máquina virtual existente. La máquina virtual clonada tiene las mismas características que la máquina virtual base.
$ vboxmanage clonevm DebianTest --name DebianTestNuevaMV --register
16. Eliminar una máquina virtual
Con este comando eliminamos la máquina virtual así como sus ficheros asociados.
$ vboxmanage unregistervm --delete DebianTest