jueves, 1 de septiembre de 2016

VirtualBox. Instalar las Guest Additions en Linux

Voy a utilizar una máquina virtual con Debian Jessie instalado.

Cuando instalamos un sistema operativo virtualizado con VirtualBox no disponemos de todas las funcionalidades porque la instalación es genérica. Con las Guest Additions vamos a disponer de todas estas funcionalidades como si se tratara de un sistema operativo instalado en una máquina real. Las funcionalidades a las que me refiero son las siguientes:
  1. Portapapeles compartido en modo bidireccional, es decir, entre la máquina real y la máquina virtualizada.
  2. Aceleración gráfica 2D y 3D.
  3. Modos adicionales de visualización (modo fluido - modo seamless, pantalla completa de la máquina virtual sin ocultar las barras de menús de la máquina real -, redimensionamiento automático de la ventana de la máquina virtual, etc.).
  4. Integración del ratón entre la máquina real y la máquina virtual.
  5. Sincronización horaria entre las máquinas real y virtual.
  6. Posibilidad de usar íntegramente los entornos de comandos VBoxControl y VBoxManage para gestionar la máquina virtual desde la máquina real.
  7. Compartición de memoria. En el caso de usar muchos sistemas virtualizados al mismo tiempo, podremos hacer uso de la función compartición de memoria. La función de compartición de memoria identificará trozos de memoria RAM idénticos entre las distintas máquinas virtuales y los solapará. Además, la compartición de memoria permitirá reservar áreas de memoria de una máquina virtual y cederlos al resto de máquinas virtuales. Esta acción se puede realizar con las máquinas virtuales en ejecución. Sin las Guest Additions, para modificar la memoria asignada a las máquinas virtuales, tienen que estar apagadas. Consultar este apartado de la documentación oficial de VirtualBox.
  8. Inicio de sesión automático, que permite configurar un login automático en nuestra máquina virtual a partir de los datos de inicio de sesión de la máquina real.
  9. Utilización de carpetas compartidas entre las máquinas real y virtual.
Estos son los pasos a seguir para instalar correctamente las Guest Additions en una máquina virtual con Debian Jessie instalado. Estas órdenes se ejecutarán en la máquina virtual (suponemos que estamos conectados con el usuario root y no tenemos que ejecutar la orden sudo):

Actualizar el sistema operativo.

Actualizamos los repositorios locales:

apt-get update

Actualizamos el sistema:

apt-get upgrade

Instalar el paquete build-essential. Este metapaquete (paquete de paquetes) contiene una lista informativa de los paquetes que se consideran esenciales para la creación de paquetes Debian. Entre otros paquetes contiene todo lo necesario para crear y compilar programas en C/C++.

apt-get install build-essential

Instalar las cabeceras del núcleo y el paquete dkms. Si no tenemos instaladas las cabeceras del kernel, las Guest Additions no se instalarán correctamente y, por lo tanto, no funcionarán en su totalidad.

apt-get install linux-headers-$(uname -r) dkms

La orden uname-r devuelve el kernel instalado en nuestra versión de Linux. En mi caso, devuelve 3.16.0-4-amd64. Por lo tanto, en la orden anterior estaríamos instalando las cabeceras del siguiente kernel:

linux-headers-3.16.0-4-amd64

En la orden anterior también estamos instalando el paquete dkms. El paquete dkms (Dynamic Kernel Module Support) permite gestionar los módulos ajenos al kernel de forma dinámica. Cuando el sistema se inicia, dkms lleva a cabo una comprobación del kernel en ejecución y de los módulos externos del kernel instalados. Si detecta cambios - normalmente porque se ha actualizado el kernel de la máquina real -, compila de nuevo estos módulos externos con la nueva versión del kernel que se está ejecutando.

Esta acción es muy importante para que las Guest Additions y la máquina virtual en general funcione correctamente. Cuando instalamos una máquina virtual, se crea un kernel "combinado" del sistema operativo instalado en la máquina real y del que se va a instalar en la máquina virtual. Si alguno de estos kernel se actualizan, la máquina virtual puede dar problemas al ejecutarse, incluidas las Guest Additions. Con el paquete dkms el sistema recompila automáticamente el kernel de las máquinas virtuales para evitar estos problemas.

Después de esta instalación hay que reiniciar la máquina virtual.

Instalar el paquete module-assistant. Este paquete se instala después de reiniciar la máquina virtual y se utiliza para compilar e instalar módulos de hardware no soportado por el kernel.

apt-get install module-assistant

Instalar las Guest Additions. Para realizar esta acción vamos a suponer que tenemos la imagen VBoxGuestAdditions.iso  insertada en la unidad CD/DVD de nuestra máquina virtual. Abrimos una Terminal y ejecutamos la siguiente orden:

sh /media/cdrom/VBoxLinuxAdditions.run

Después de la instalación, es necesario reiniciar la máquina virtual.

Con todas estas acciones ya tendremos instaladas correctamente las Guest Additions de VirtualBox en nuestra máquina virtual Debian Jessie.

Gran parte de la información que incluyo en este artículo está tomada del Blog de Tecnología geekland.