Ayer, necesitaba probar un par de cosas con una máquina Virtual. Como a mi otra PC con capacidad de correr maquinas virtuales se le habia roto el rigido, y no tenia ningún otro para probar, tuve que hacerlo utilizando mi laptop.
Si bien prefiero otras cosas a VirtualBox, era lo único que tenia a meno en mi distribución que es ArchLinux.
Cabe aclarar que utilizo la versión binaria de VirtualBox (qué es cerrada), pero me funciona en terminos de rendimiento mucho mejor que VirtualBox-OSE. El sistema operativo que necesitaba virtualizar era un Debian Lenny 5.0, con LVM. Para montar un par de servidores experimentales que necesito implementar en un trabajo que debo realizar en unos dias.
Si bien como repito, hay cosas mas adecuadas para virtualizar y más aún en un sistema en producción. VirtualBox nos puede resultar utilil para realizar algunas pruebas caseras, desde la comodidad de estar utilizando una sola PC.
A Virtualbox-bin lo instale desde AUR, utilizando yaourt. Es importante destacar que necesita como dependencia a qt para poder funcionar.
Configurando la red en VirtualBox
Lo primero que debemos hacer es instalar la máquina Virtual de la manera normal a que lo hacemos siempre.
Solo que en la configuración de la máquina virtual, en la sección de los adaptadores de red, debemos especificarle que se conecte al bridge, que crearemos en el host.
Arrancaremos instalando brdige-utils, y uml_utilities:
#: pacman -S bridge-utils uml_utilites
Una vez instalados ambos, editamos el archivo /etc/conf.d/bridges y añadimos nuestro bridge:
bridge_br0="eth0 vbox0"
BRIDGE_INTERFACES=(br0)
Obviamente, hay que reemplazar eth0 por la interface de red que ustedes esten utilizando para realizar el bridge, en mi caso como se ve, es eth0.
Ahora debemos crear el archivo /etc/udev/rules.d/90-vboxdrv.rules, con el siguiente contenido:
KERNEL=="vboxdrv", NAME="vboxdrv", OWNER="root", GROUP="vboxusers", MODE="0660"
De igual forma editamos el archivo /etc/vbox/interfaces y agregamos lo siguiente:
vbox0 usuario br0
Donde reemplazan a usuario, por el nombre de usuario de ustedes.
Solo nos queda editar el archivo /etc/rc.conf donde añadimos para que se inicien los modulos brige, vboxdrv y vboxnetflt.
MODULES=( vboxdrv cboxnetflt bridge)
Dentro del mismo archivo, en la sección especificas de las interfaces de red, agregamos nuestro bridge (br0):
br0="br0 192.168.1.4 netmask 255.255.255.0 broadcast 192.168.1.255"
eth0="eth0 192.168.1.2 netmask 255.255.255.0 broadcast 192.168.1.255"INTERFACES=(eth0 br0)
En este caso, mi placa de red en el host es eth0, a la que utiliza la dirección de IP 192.168.1.2, y al bridge le asigno la dirección de IP 192.168.1.4. Esta misma es la que debemos configurar dentro de la máquina virtual para poder acceder a ella.
Ahora solo nos resta crear el bridge de la siguiente manera:
#: brctl addbr br0
A esto mismo lo podemos añadir dentro del /etc/rc.local para que se cree cada vez que iniciamos el sistema.
VM corriendo en el background
No se si es el titulo mas adecuado para esta sección, pero es el unico que se me ocurre
.
Para ejecutar la máquina virtual siempre use lo siguiente:
#: VBoxManage startvm Debian
Donde Debian, es el nombre de la máquina virtual que quiero ejecutar, esto me abria la ventanita de VirtualBox, y la VM ya estaba corriendo. Pero me parecia poco cómodo utilizar esta opción, mi idea era que corra algo asi como en el “background”, y poder acceder a ella utilizando SSH.
La solución fue muy simple, consistia en ejecutarla de la siguiente manera:
#: VBoxManage startvm Debian -type vrdp
Instalando Guest Additions
Bueno esto es extremadamente facil, al instalar Debian, necesitamos ademas instalar gcc, make, y los headers del kernel, utilizando por ejemplo apt-get.<
Para empezar iniciamos de forma convencional la VM, vamos a Dispositivos, y seleccionamos Instalar 'Guest Additions'.
Dentro de la VM, montamos la unicdad de CD-Rom y nos dirigimos al punto de montaje.
Alli ejecutamos:
#: sh VBoxLinuxAdditions-x86.run
O en caso de que utilizen 64 bits:
#: sh VBoxLinuxAdditions-amd64.run
Compilara un par de cositas, y listo. Todo instalado
.
Mensaje Spurious NAK en Debian
Al empezar a utilizar la máquina virtual, la terminal (tty1) se veia inundada del siguiente mensaje (a igual que en dmesg):
atkbd.c : Spurious NAK on isa0060/serio0. Somme program might be trying access hardware directly
Para que este mensaje no aparezca, podemos hacerlo de dos formas, por una sysctl, o pasandole unos parametros al archivo /proc/sys/kernel/printk.
Primer método:
#: echo "4 4 7 1" > /proc/sys/kernel/printk
Segundo método:
#: sysctl kernel.printk="4 4 1 7"
También lo podriamos agregar al archivo /etc/sysctl.conf de la misma forma que lo acabamos de hacer.
