Optimizar discos virtuales en VirtualBox

VirtualBoxUna de las grandes diferencias entre Virtualbox y los productos de VMware (que son de pago en su mayoría) es la facilidad para comprimir los archivos que contienen los discos virtuales. Con VMware es bastante sencillo, y phpvirtualbox ( o el gui de virtualbox) no tienen implementado este comando.

Para poder reducir el tamaño de estos archivos e incrementar el rendimiento de nuestras máquinas virtuales debemos efectuar los siguientes pasos:

 

 1. Máquinas Virtuales Windows:

  1. Defragmentamos el disco duro desde dentro de la máquina virtual: podemos hacerlo con la utilidad que viene por defecto en el Windows, aunque yo os recomiendo el Auslogics disk defrag, que es gratuito y va muy bien.
  2. Borramos el espacio libre desdedentrodelwindows cliente. Para hacerlo podéis usar dos aplicaciones.
    1. El Ccleaner, que tiene una opción para limpiar el espacio libre, y
    2.  El SDelete, que os lo podéisbajardesdeSYSinternals, y después de instalarlo,corréis en el terminalelsiguientecomando.
       sdelete -z
  3. Apagamos el windows virtual.
  4. Ejecutamos el comando

VBoxManage.exe modifyhd c:\path\to\thedisk.vdi --compact

 2. Máquinas Virtuales Linux:

  1. Borramos el espacio libre desde el terminaldellinux cliente.
    sudo dd if=/dev/zero of=/bigemptyfile bs=4096k
    sudo rm -rf /bigemptyfile
  2. Apagamos el linux virtual.
  3. Ejecutamos elcomando
    vboxmanage modifyhd /path/to/thedisk.vdi --compact

    Y ya tenemos el disco reducido y optimizado.

Thanks to superuser.

VirtualBox + PhpVirtualBox Ubuntu Server 12.04

imgvirtualbox1

Nota: Versión actualizada a Ubuntu 16.04 aquí.

Objetivo:

Ejecutar máquinas virtuales en un servidor ubuntu 12.04 LTS, sin interfaz gráfica, para acceder a ellas de forma remota.

 

Instalación de VirtualBox Headless.

 

Añadimos la clave de apt de virtualbox

wget -q http://download.virtualbox.org/virtualbox/debian/oracle_vbox.asc -O- | sudo apt-key add -

 

Editamos el archivo de fuentes de apt

sudo nano /etc/apt/sources.list

 

Y añadimos el repositorio a apt de VirtualBox, añadiendo la siguiente línea

deb http://download.virtualbox.org/virtualbox/debian precise contrib

Actualizamos e instalamos VirtualBox y otros paquetes:

sudo apt-get update
sudo apt-get install build-essential virtualbox-4.2 dkms

 

Descargamos e instalamos el “extension pack” para tener acceso a funciones como el USB 2.0, y el servidor rdp que necesitamos para instalar phpvirtualbox. La última versión la podemos encontrar en http://www.virtualbox.org/wiki/Downloads. En el momento actual :

cd /tmp
wget http://dlc.sun.com.edgesuite.net/virtualbox/4.2.16/Oracle_VM_VirtualBox_Extension_Pack-4.2.16-86992.vbox-extpack
sudo VBoxManage extpack install Oracle_VM_VirtualBox_Extension_Pack-4.2.16-86992.vbox-extpack

 

Y finalmente añadimos nuestro usuario al grupo VirtualBox

sudo adduser user vboxusers

 

Instalar phpvirtualbox.

La página del proyecto es http://sourceforge.net/projects/phpvirtualbox/

Actuamos como root

sudo su

 

Añadimos nuestro usuario habitual al acceso web de VirtualBox editando …

nano /etc/default/virtualbox

Y añadimos la línea

VBOXWEB_USER=User

En User ponemos nuestro usuario

Ahora creamos los enlaces de inicio del vboxwebsrv

update-rc.d vboxweb-service defaults
/etc/init.d/vboxweb-service start

 

Añadimos unos cuantos paquetes para el servidor Apache + PHP

apt-get install apache2-mpm-prefork apache2-utils apache2.2-bin apache2.2-common apache2 apache2-doc apache2-suexec libapache2-mod-php5 libapr1 libaprutil1 libaprutil1-dbd-sqlite3 libaprutil1-ldap libapr1 php5-common php5-mysql php5-suhosin php-pear wget unzip

Reiniciamos apache

sudo service apache2 restart

 

Descargamos y descomprimimos la última versión de phpvirtualbox en el directorio /var/www

cd /var/www
wget http://surfnet.dl.sourceforge.net/project/phpvirtualbox/phpvirtualbox-4.2-7.zip
unzip phpvirtualbox-4.2-7.zip
mv phpvirtualbox-4.2-7 phpvirtualbox
rm phpvirtualbox-4.2-7.zip

Ahora entramos dentro del directorio de phpvirtualbox y hacemos copia de seguridad del archivo de configuración.

cd /var/www/phpvirtualbox/

 

cp config.php-example config.php

 

Modificamos config.php

nano config.php

Y modificamos las siguientes líneas. Introducimos usuario y contraseña de nuestro usuario.

[...]
/* Username / Password for system user that runs VirtualBox */
var $username = 'user';
var $password = 'secret';
[...]

 

Y ya podemos acceder al interface de phpvirtualbox tecleando

http://ip_servidor/phpvirtualbox.

 

El usuario es “admin”, y el password “admin”. Por tanto lo primero que tenemos que hacer es cambiarlo. En File, Chage Password.

A partir de aquí el uso es similar al cliente gtk de virtual box.

Si la máquina virtual que instaláis es linux, os recomiendo que después de instalar los «guest tools», instaléis xrdp en español.

 

Gracias a:

http://www.howtoforge.com/managing-a-headless-virtualbox-installation-with-phpvirtualbox-ubuntu-12.04

 

http://www.howtoforge.com/vboxheadless-running-virtual-machines-with-virtualbox-4.1-on-a-headless-ubuntu-12.04-server