Lo hemos configurado para tener un arranque por grub con el menú que nos permitirá lanzar las VM deseadas o entrar al sistema host.
Lo primero que tenemos que hacer es crearnos las máquinas virtuales. Para ellos se puede arrancar VirtualBox en modo gráfico:
Yo tengo equipos nuevecitos con 4 núcleos y 4GB de RAM, así que a mis VM les he puesto los 4 núcleos y 3GB de RAM, ya que el sistema host no va ha hacer nada mas que servir de virtualizador.Misuario@Equipo:~$xinit VirtualBox
En mi caso, las máquinas se encuentran en:
/home/MiUsuario/.VirtualBox
He creado una VM con Windows7 que he llamado Windows7Guest y otra con Linux que he llamado LinuxGuest.
La idea es que una vez instalados y configurados los sistemas tomo una instantánea de cada uno que llamare "inicio" y que podre restaurar antes de levantar la VM para que el sistema siempre este limpio.
Para arrancarlas ejecuto los siguientes scripts como MiUsuario: StartW7.sh t StartLinux.sh.
StartW7.sh:
#!/bin/sh
VBoxManage snapshot W7Guest restore inicio &&
xinit /usr/bin/VBoxSDL -startvm W7Guest --hwvirtex --fullscreen
sudo /sbin/poweroff
StartLinux.sh:
#!/bin/shCon este script lanzamos ls VM sin necesidad de lanzar las X's y además cuando apagamos la VM se apaga la máquina host.
VBoxManage snapshot LinuxGuest restore inicio &&
xinit /usr/bin/VBoxSDL -startvm LinuxGuest --hwvirtex --fullscreen
sudo /sbin/poweroff
Para ello, es necesario modificar el fichero /etc/sudoers para que permita ejecutar el comando poweroff sin pedir password. Basta con añadir un linea como la siguiente:
MiUsusario ALL = NOPASSWD: /sbin/halt,/sbin/poweroff,/usr/bin/vdfuse
Otra cosa interesante es la necesidad de que funcionen los USB en las VM's de forma transparente al usuario. Para ello, desde VirtualBox (xinit VirtualBox) habilitamos los USB's y creamos un "filtro vacío" (mirar la documentación del VirtualBox si no sabéis de lo que hablo).
Para que se enlacen los dispositivos usb a la VM necesitamos crear una regla en el udev. Esto lo podemos hacer poniendo la regla 90-usb-virtualbox.rules en /etc/udev/rules.d/
90-usb-virtualbox.rules:
SUBSYSTEM=="usb", ACTION=="add", RUN+="/usr/local/sbin/usb-virtualbox.sh"
Donde usb-virtualbox.sh es un script creado por nosotros y hemos situado en /usr/local/bin/
usb-virtualbox.sh:
#!/bin/bash
U=MiUsuario
A=$(env | grep DEVPATH | cut -f 5-6 -d /)
S=$(su $U -c "VBoxManage list usbhost" | grep "$A" | awk '{print $2}' )
su $U -c "VBoxManage controlvm W7Guest usbattach $S"
su $U -c "VBoxManage controlvm LinuxGuest usbattach $S"
Con todo esto ya tenemos un sistema host que arranca directamente las VM que seleccionamos desde el menu de inicio de grub.
Que las VM's reconozcan los dispositivos USB de forma transparente al usuario de la VM.
Y que la máquina física se apage al apagar la VM.
En la próxima 3ª parte nos meteremos en como automatiza la clonación de estos equipos virtualizados.
No hay comentarios:
Publicar un comentario