Instalar y Configurar VirtualBox

Índice

1. Introducción

2. Instalación

Instalación de la versión libre
Instalación de la versión comercial

3. Configuración

4. Agregar máquinas virtuales

5. Compartir carpetas

6. Habilitar el Copy-Paste entre el Host Anfitrión y el Invitado

7. Crear Imágenes de nuestra máquina virtual

8. Configurar la máquina virtual para que forme parte de la red local

9. Configurar la máquina virtual como Host Interface Networking (Interface Anfitrión)

10. Clonar una máquina virtual

11. Algunos errores

Tras Actualizar Kernel
Tras Actualizar VirtualBox
Tras Exportar/Importar

12. Fuentes





1. Introducción:

VirtualBox es una aplicación que nos permite ejecutar diferentes Sistemas Operativos simultáneamente en el mismo equipo de manera virtual.

VirtualBox tiene doble licenciamiento: una versión libre (OSE) que se encuentra en los repositorios de Debian Testing y Sid y otra con licencia comercial.


2. Instalación:

2.1. Instalación de la versión libre:

VirtualBox no se encuentra en los repositorios de Etch, sólo se encuentra en los repositorios de Lenny, Squeeze y en Sid, por lo que si se desea instalar VirtualBox OSE, los repositorios tienen que apuntar a estos. Luego, se instala con aptitude:

# aptitude install virtualbox-ose

2.2. Instalación de la versión comercial:

Desde el sitio oficial hay que descargar el archivo correspondiente a Debian con la arquitectura que corresponda. Luego se instala con dpkg -i:

# dpkg -i virtualbox-x.xxx.deb


3. Configuración:

Para poder usar VirtualBox hay que darle permisos al usuario para que lo utilice, para ello debemos agregar nuestro usuario al grupo vboxusers. Esto se puede hacer de 2 maneras:

- Editando "/etc/group" para agregar una linea como esta:

vboxusers:x:xxxx:nuestro_usuario

- O también se puede hacer con el comando 'adduser' de esta otra manera:

# adduser nuestro_usuario vboxusers

Una vez hecho esto, podemos iniciar VirtualBox con el comando 'virtualbox' para comprobar que todo funcione correctamente.

Nota: A veces esto no es suficiente, por lo que al correr VirtualBox puede marcar un error de escritura en "/dev/vboxdrv". Esto se soluciona nombrando como propietario de "/dev/vboxdrv" a nuestro usuario:

# chown nuestro_usuario:nuestro_usuario /dev/vboxdrv

Luego se debe reiniciar el servicio:

# /etc/init.d/vboxdrv restart


4. Agregar máquinas virtuales:

Iniciamos VirtualBox y luego damos clic en el botón Nueva(new) para agregar una nueva máquina virtual siguiendo estos pasos:

  1. Primero especificamos el nombre de nuestra máquina virtual y el sistema operativo a instalar.
  2. Posteriormente seleccionamos la cantidad de memoria RAM que le queremos asignar.
  3. Luego le asignamos el disco duro virtual. Como no tenemos ninguno creamos uno:
    - damos clic en el botón Nuevo(New),
    - seleccionamos "Imagen de expansión dinámica",
    - y por último indicamos el tamaño del disco duro virtual.
  4. Finalizamos el asistente y listo.

Llegados a este punto, ya tenemos nuestra máquina virtual en la lista y podemos iniciarla si la seleccionamos y damos clic en Iniciar(Start).

Ahora sólo falta instalar el Sistema Operativo que deseen. Para ello inserte el CD en el CD-ROM, inicie la máquina creada y siga las instrucciones de instalación presentadas por el instalador.


5. Compartir carpetas:

Para poder compartir archivos entre el Host Virtual (Invitado) y el Anfitrión es necesario instalar en el Host Invitado la aplicación "virtual box Guest Additions".

Pasos a seguir:
- Instalar "virtual box Guest Additions". Cuando la máquina virtual se este ejecutando, hacer clic en el menú "Dispositivos" y luego en "instalar Guest Additions". Guest Additions es un conjunto de utilidades que mejoran las capacidades del sistema virtualizado, entre ellas el compartir carpetas.
- Si el anterior paso falló y nuestro sistema invitado es una versión de Windows: Descargar la versión adecuada a través del navegador Web del sistema invitado yendo a La Web de descargas oficial de la aplicación. Es importante asegurarse de que la versión que instalemos sea la misma que la de VirtualBox para que los siguientes pasos funcionen. Observar que siempre se encuentra dentro de la carpeta de cada versión en la parte de arriba de la ventana con nombre VBoxGuestAdditions_número_de_versión.iso. Una vez descargado el archivo iso deberemos montarlo desde la ventana del sistema invitado a través de Dispositivos > Montar CD/DVD-ROM > Imagen CD/DVD-ROM > En la nueva ventana de diálogo que nos aparece pulsaremos sobre el botón "Agregar" y buscaremos y añadiremos el archivo iso > Después lo seleccionaremos con el ratón y pulsaremos sobre el botón "Seleccionar" > Ahora tras unos instantes ya aparecerá el asistente de instalación en el sistema invitado, seguir los pasos.
- Si nuestro sistema invitado es Windows XP y por error instalamos una versión de Guest Additions distinta que la versión de VirtualBox instalada: Desinstalar la aplicación e instalar la correcta desde el sistema invitado puede dar problemas y ya no arrancar. Se recomienda desde éste restaurar el sistema (Inicio > Todos los programas > Accesorios > Herramientas del sistema > Restaurar sistema > ...). Si ya intentamos desinstalar la versión incorrecta e instalar la correcta y el sistema invitado se dañó y no arranca: Arrancarlo presionando F8 repetidas veces y arrancar en el "Modo Seguro" y restaurar el sistema de la forma explicada.
- Apagar la máquina virtual.
- Compartir la carpeta en el Host Anfitrión con el comando:

   VBoxManage sharedfolder add "Nombre_Maquina_Virtual" -name "nombre_a_mostrar" -hostpath "/ruta/carpeta/compartida"

También se puede compartir desde la interfaz gráfica de VirtualBox en la configuración de la máquina en la opción "Directorios compartidos". Tener en cuenta que si se hace de esta forma, y después desde la línea de comandos se crea un directorio compartido con el mismo nombre o ruta, dará un error.

- Iniciar la máquina virtual.

Para acceder a la carpeta compartida:
- En Windows ejecutar: \\vboxsvr\Nombre_carpeta_compartida y luego vaya a "Mi PC" y ahí estará montada el directorio compartido.
También puede mapear la unidad de red con: net use z: \\vboxsrv\Nombre_carpeta_compartida (Observar que hay que introducir un espacio después de z:)
Donde Nombre_carpeta_compartida es lo mismo que pusimos como argumento del parámetro -name en el comando VBoxManage (nombre_a_mostrar) en el Host Anfitrión.
- En Linux se monta la unidad con:

    mount -t vboxsf [-o OPTIONS] Nombre_carpeta_Compartida /ruta/donde/se/desea/montar

Para ver las carpetas que tiene compartidas desde el Host Anfitrión se hace con: VBoxManage list vms o desde las configuraciones de la máquina en la Opción "Directorios compartidos"

Podrá leer y escribir en la carpeta compartida desde la máquina virtual.


6. Habilitar el Copy-Paste entre el Host Anfitrión y el Invitado:

Para poder utilizar esta función es necesario instalar en el Host Invitado la aplicación "virtual box Guest Additions".

En un Host Invitado con Windows cuando la máquina virtual se está ejecutando, haga clic en el menú "Dispositivos" y luego en "instalar Guest Additions".

En un Host Invitado con GNU/Linux se requiere instalar los headers del kernel que se este usando. Para saber el kernel que usamos tecleamos "uname -r". Ejemplo: si tenemos el kernel "2.6.18-5-486" instalamos el paquete "linux-headers-2.6.18-5-486":

    # aptitude install linux-headers-2.6.18-5-486

Ahora hacemos clic en el menú "Dispositivos" y luego en "instalar Guest Additions". Esto nos montara un CD-ROM virtual. Nos vamos a /media/cdrom/ e instalamos el paquete VBoxLinuxAdditions.run y luego reiniciamos o apagamos la máquina virtual:

    # cd /media/cdrom
    # sh VBoxLinuxAdditions.run
    # poweroff

Ya que instalamos "virtual box Guest Additions" ahora nos vamos al administrador de VirtualBox, entramos a la configuración de la máquina virtual, en la opción "General", en la pestaña "Avanzado" en la opción "Portapapeles Compartidos" seleccionamos: "Anfitrión a Huesped", "Huesped a Anfitrión" o "Bidireccional" según lo deseado.


7. Crear Imágenes de nuestra máquina virtual:

Las instantáneas (snapshots) sirven para crear imágenes de la partición del disco duro virtual, la cual puede restaurarse en cualquier momento y regresar la partición y los datos como estaban cuando fue creada la imagen. Para crear una imagen vaya al Menú de la máquina virtual y elija "Maquina" y luego "Tomar instantánea".


8. Configurar la máquina virtual para que forme parte de la red local.

Para entender mejor como configurar la red es necesario una breve explicación de las posibles configuraciones de la red. Al configurar la red de la máquina virtual se pueden elegir entre las siguientes opciones:

- Not attached (No conectado).- Sirve para desactivar la tarjeta de red virtual, por lo que no se tendrá acceso a ninguna red.
- NAT .- Sirve básicamente para acceder a Internet, descargar archivos y enviar correos, pero las funciones avanzadas de red no están habilitadas. La máquina virtual obtiene una IP de un router que viene siendo VirtualBox y que funciona como DHCP asignando una IP 10.0.2.0 a la primera interface y 10.0.3.0 a la segunda interface, el tráfico de la máquina virtual es transparente.
- Adaptador Puente (bridge) .- Simulación de una red real, el Host puede enviar datos al invitado y viceversa, se puede conectar a la red.
- Internal Networking (Red Interna) .- Similar a "Adaptador Puente (bridge)", sin embargo el acceso a Internet es limitado, de esta manera se mejora la seguridad y velocidad.

La que nos interesa es "Adaptador Puente (bridge)". Esta configuración sirve para configurar la máquina virtual para que forme parte de la red.


9. Configurar la máquina virtual como Host Interface Networking (Interface Anfitrión):

En versiones recientes de VirtualBox para que la máquina virtual forme parte de la red como si fuera un equipo más solo hay que elegir la opción "Adaptador Puente (bridge)".

En versiones anteriores se tenía que crear una interface de red virtual en el Host anfitrión por cada tarjeta (interface) de red que se usaba(n) en la(s) máquina(s) virtual(es), pero en versiones recientes ya no es necesario. A continuación se explica:

A grandes rasgos lo que se tiene que hacer para configurar interfaces permanentes en el Host anfitrión con GNU/Linux es:
1.- Crear un puente a la interfaz real. Esto permite compartir la interfaz física entre la interfaz real y la virtual.
2.- Por cada tarjeta de red virtual (invitada) usada, debe ser creado un nueva interfaz virtual en el Host padre (llamada tap0 o vbox0 o similar) y agregada esta interfaz al puente.
3.- Finalmente especificar la nueva interfaz en las configuraciones de la tarjeta de red virtual de la máquina virtual.

Ahora presentamos detalladamente los pasos para configurar interfaces permanentes en el Host Anfitrión con Debian y derivadas:

1.- Instalar el paquete "uml-utilities" en el Anfitrión, que contienen herramientas para crear tarjetas de red virtuales y el paquete de utilerías bridge "bridge-utils". Generalmente se instalan con el sistema base.

    # apt-get install uml-utilities
    # apt-get install bridge-utils

Para que el usuario que ejecutará la máquina virtual tenga acceso a la interfaz, el usuario tendrá que pertenecer al grupo "uml-net" por lo que hay que agregarlo:

    # gpasswd -a usuario uml-net

Esto modificará el archivo "/etc/group/" quedando la linea del grupo uml-net así:

    uml-net:x:NNN:usuario

2.- Editar el archivo "/etc/network/interfaces" para declarar la interfaz de red virtual a utilizar por el Host Invitado espeficando la interfaz a utilizar (tap0) y usuario que la usara, para ello agregamos las siguientes lineas:

auto tap0
iface tap0 inet manual
    up ifconfig $IFACE 0.0.0.0 up
    down ifconfig $IFACE down
    tunctl_user usuario

Modifique usuario por el usuario que ejecutará la máquina virtual.

Es importante que nuestra interfaz real (ejemplo eth0) este comentada o que no tenga asignada una IP del mismo rango, de lo contrario el Host Anfitrión no saldrá a Internet.

3.- La primera vez que se use, se debe activar el bridge y la interfaz creada con los siguientes comandos:

   # /sbin/ifup tap0
   # /sbin/ifup br0

Esto sólo es necesario la primera vez, las siguientes veces se activarán automáticamente.

4.- En el archivo "/etc/network/interfaces" hay que declarar el bridge (llamado br0) y agregar la interfaz creada al mismo:

auto br0
iface br0 inet dhcp
    bridge_ports all tap0

También, se puede asignar una IP estática dependiendo de las necesidades.

Si hemos seguido correctamente los pasos del 2 al 4, en "/etc/network/interfaces" y deseamos unir a la red dos máquinas virtuales deberíamos tener el siguiente contenido:

auto lo
iface lo inet loopback

#iface eth0 inet dhcp
#auto eth0

auto tap0
iface tap0 inet manual
    up ifconfig $IFACE 0.0.0.0 up
    down ifconfig $IFACE down
    tunctl_user usuario

auto tap1
iface tap1 inet manual
    up ifconfig $IFACE 0.0.0.0 up
    down ifconfig $IFACE down
    tunctl_user usuario

auto br0
iface br0 inet dhcp
    bridge_ports all tap0 tap1

NOTA: las interfaces virtuales declaradas y que formen parte de un bridge no deben tener ninguna dirección IP asignada, por ello se pone "0.0.0.0" en vez de una IP real.

5.- Reiniciamos el servicio networking:

    # /etc/init.d/networking restart

6.- Modifique la configuración de la máquina virtual. Esto se hace desde la aplicación VirtualBox, en "Configuraciones", "Red", “Attached to”, modificando un adaptador de red y especificando "Host Interface Networking"/"Interface Anfitrion" y en el campo “Interface name" tecleamos "tap0" o "tap1" dependiendo del nombre de interfaz virtual configurada en "/etc/network/interfaces".

7.- Finalmente vaya al Host Virtual (Invitado) y configure los paramentros de red apropiadamente.


10. Clonar una máquina virtual:

- Nos ubicamos donde están guardados los vdi (/home/usuario/.VirtualBox/VDI) y clonamos el vdi con un UUID diferente:

    $ cd /home/usuario/.VirtualBox/VDI
    $ VBoxManage clonevdi NombreOriginal.vdi NuevoNombre.vdi

- Desde el administrador de VirtualBox creamos una nueva máquina; elegimos el mismo sistema operativo y otro nombre para la nueva máquina, asignamos memoria. En disco duro elegimos existente y elegimos el creado en el paso anterior (NuevoNombre.vdi) y listo ya tenemos una nueva máquina virtual identica.


11. Algunos errores:

11.1. Tras Actualizar Kernel:

En GNU/Linux, cuando se actualiza el kernel, VirtualBox nos marcará un error al tratar de iniciar una máquina virtual. El error mostrado suele ser el siguiente:

  VirtualBox kernel driver not installed. The vboxdrv kernel module was
  either not loaded or /dev/vboxdrv was not created for some reason. Please
  install the virtualbox-ose-modules package for your kernel and execute '/
  etc/init.d/vboxdrv start' as root.
  VBox status code: -1908 (VERR_VM_DRIVER_NOT_INSTALLED).

La solución es simple, solo ejecutamos lo siguiente para que se solucione:

  # /etc/init.d/vboxdrv setup

11.2. Tras Actualizar VirtualBox:

Otro error que se suele cometer es actualizar VirtualBox a una nueva versión sin apagar las máquinas virtuales provocando que estas no se puedan ejecutar. Por lo que hay que desinstalar la nueva versión e instalar la versión anterior, apagar las máquinas virtuales e instalar la nueva versión de VirtualBox.

11.3. Tras Exportar/Importar :

Tras realizar una exportación de varias maquinas Debian (Guest) y luego su importanción , al volver a iniciarlas todas ellas daban el siguiente error:

...
Setting up networking...
Configuring Network interfaces....SIOCSIFADDR: No Such Device
eth0: ERROR while getting interface flags: No Such Device
SIOCSIFNETMASK: No Such Device
eth0: ERROR while getting interface flags: No Such Device
Failed to bring up eth0
...

Por lo que la red se perdió,parece ser que obtiene otra 'MAC address' y se lia, no reconociendo la eth0; asi que si hacemos un 'dmesg | grep eth', veremos cual es la que nos detecta, diciendo que la habra renombrado a otra, por ejemplo eth2, y es en este momento donde podemos hacer dos cosas:

1.- Ir a '/etc/network/interfaces' y donde pone 'eth0' poner la nueva que nos de.(eth2)
2.- Simplemente con borrar el fichero '70-persistent-net.rules', del directorio '/etc/udev/rules.d/' y en el próximo reinicio todo estará como siempre.

Por supuesto un backup no estaría mal, pero es un fichero que se autogenera solo. Pero si le hechais un vistazo comprobareis que ahí es donde asocia la MAC con una tarjeta en concreto.

12. Fuentes:

http://virtualbox.org
http://virtualbox.org/download/UserManual.pdf