Académique Documents
Professionnel Documents
Culture Documents
aereos
VirtualBox es un programa que básicamente está formado (entre otras) por dos interfaces
diferentes y equivalentes entre sí: una GUI -muy sencilla-, y una interfaz por línea de comandos. Si
deseamos poner en marcha la interfaz gráfica del programa, desde la cual podremos crear las máquinas virtuales
y los discos virtuales y arrancar la máquina deseada,etc , lo único que tenemos que hacer es buscar en el "Dash"
de nuestro escritorio el programa "VirtualBox" y hacer clic sobre su icono.Si todo va bien, aparecerá la interfaz
gráfica del programa, y podremos empezar a trabajar. A continuación, escribo los pasos para crear una nueva
máquina virtual, instalar en ella un sistema operativo y, finalmente, iniciarlo.
1.-Crear una máquina virtual (dándole un nombre) y definir de entre la lista, el tipo de sistema
operativo que vamos a instalar en ella.
2.-Asignar la cantidad de memoria RAM (en MB) que tendrá nuestra máquina. Atención porque
la cantidad que aquí asignemos se la estaremos restando a la máquina real.
3.-Asociar a nuestra máquina un archivo VDI, que representará el disco duro (en principio, de
tipo SATA, concretamente "sda") que tendrá ésta. Si no existe este archivo ya, lo deberemos de
crear en este momento, con un nuevo asistente, que nos preguntará por el nombre del archivo a
crear y su tamaño -que puede ser fijo o dinámico: esto último significa que el tamaño indicado
no será real sino que será el máximo posible, ya que el tamaño del fichero irá aumentando a
medida que se vaya rellenando de contenido--. Este archivo inicialmente estará vacío -un disco
duro sin contenido- , pero en un paso posterior instalaremos en él el sistema operativo que
queramos. Es decir, nuestra máquina virtual utilizará este archivo como disco duro, dentro el cual
estará instalado el sistema operativo que toque, por lo que este archivo VDI ha de ser lo
suficientemente grande para que quepa la instalación de un sistema operativo completo.
Una vez realizados los pasos anteriores ya tendemos creada la máquina virtual, y así deberá
aparecer en la pantalla principal del programa. No obstante, no hemos acabado: necesitamos instalar el sistema
operativo en nuestro disco duro virtual -el archivo VDI- para poder posteriormente arrancarlo en nuestra
máquina virtual y empezar a usarlo. Pero antes, investiguemos primero un poco el VirtualBox: cliquemos en
el botón “Parámetros” y saldrá un panel con diversos apartados:
*En el apartado “General”, podremos modificar, si así lo queremos, los datos que hemos
introducido en el asistente de creación de la máquina virtual, como su nombre ó el tipo de
sistema operativo que se va a instalar. En la pestaña "Avanzado" de este apartado se puede
configurar el modo del portapapeles entre el sistema anfitrión y el invitado (bidireccional por
defecto) y la ruta de la carpeta donde se guardarán las instantáneas del sistema -”snapshots”-.,
entre otras cosas (hablaremos de ellas más adelante). También aparece una pestaña
"Encriptación" por si quisíeramos cifrar nuestra máquina virtual para una mayor protección.
*En el apartado "Sistema", dentro de la pestaña "Placa base", se pueden modificar la cantidad
de RAM que se asignaron inicialmente en el asistente de creación de la máquina virtual.
También se establece allí el orden de arranque de los dispositivos de nuestra máquina virtual;
ahora nos interesa que primero esté el DVD y luego el disco duro,ya que tenemos que instalar
todavía en nuestro archivo VDI el sistema operativo que queremos, el cual lo tenemos en un
DVD (o en un archivo .iso equivalente). Una vez que hayamos instalado el S.O, podremos
volver aquí y variar el orden de arranque para que se inicie de entrada desde el
disco.Finalmente, podemos ver que otra opción diferente de esta pestaña es habilitar el ACPI y
otra convertir el tipo de arranque de nuestra máquina en UEFI (en vez de BIOS, que es el
estándar).En la pestaña "Procesador" se puede especificar el número de núcleos de CPU que
dispondrá la máquina virtual (siempre cogiéndolos de los que tenga la CPU real, por lo que ésta
se quedará sin poderlos usar) y si se desea habilitar las extensiones PAE. Finalmente, en la
pestaña "Aceleración", por defecto se mantiene activada la opción de virtualizar por hardware
(si así lo permite la CPU real, debido a que incorpore las extensiones Intel-VT ó AMD-V).
*Un apartado que no estudiaremos en profundidad en este texto es el de "Pantalla". En él se
puede establecer la cantidad de la RAM de vídeo. Este dato no suele ser demasiado relevante
para nuestro trabajo diario, ya que la cantidad de VRAM que se establezca no influirá
demasiado en la calidad final de la imagen, a excepción de algunos efectos visuales -de
videojuegos, sobretodo-. VirtualBox emula la tarjeta gráfica de la máquina invitada de forma
relativamente pobre, a no ser que se active la aceleración 3D (aunque sea limitada) para poder
hacer uso de funciones OpenGL en el sistema invitado. En este apartado también tenemos la
posibilidad de configurar la pantalla remota, habilitando un servidor VRDP (de esta posibilidad
se hablará más adelante) y de realizar capturas de vídeo de la pantalla de la máquina virtual (muy
útil para videotutoriales, por ejemplo).
*Otros apartados que sirven para habilitar en la máquina virtual diferentes dispositivos:
“Audio”, “Red”,”Puertos serie”, “USB”, o bien para la de creación de “Carpetas
compartidas” (entre máquina anfitrión e invitada).Ya hablaremos de ellos más adelante.
También aparece el apartado "Interfície de usuario" que sirve para modificar a nuestro gusto
los menús e iconos disponibles que aparecen al poner en marcha una máquina virtual.
Bien. Nos habíamos quedado en que tenemos que instalar el sistema operativo en nuestro disco
duro virtual. Para ello, lo que tendremos que hacer es decidir si la unidad virtual de DVD será un mapeo de
una unidad real, o si bien su contenido será el de un archivo Iso. Normalmente, lo más práctico es emplear el
segundo método porque un archivo Iso es más manejable (y siempre podremos grabarlo en un DVD real si nos
hiciera falta).
NOTA: Por cierto, si estuviéramos en el caso de tener un DVD real y quisiéramos obtener a partir de él el archivo .iso
correspondiente, es tan fácil como ejecutar el siguiente comando (el archivo .iso se generará en el directorio desde
donde lo escribamos): dd if=/dev/sdc0 of=archivo.iso , donde /dev/sdc0 es el nombre del dispositivo lector de DVD de
nuestro ordenador. No obstante, no siempre se llama así ya que depende del sistema Linux concreto que usemos: se puede
llamar /dev/cdrom0, /dev/cdrom, /dev/hdc, etc, etc. Para saber su nombre sin dudas, se puede ejecutar el comando mount
para ver la lista de dispositivos montados en el sistema, lista donde deberá de aparecer nuestra lectora DVD, o bien, desde
cualquier escritorio (Gnome, KDE) echando un vistazo a las "Propiedades" de las unidades visibles.
Una vez que hemos elegido el archivo .iso (de instalación del sistema operativo, se supone) a
"colocar" en la unidad de DVD de la máquina virtual, una 2ª acción que debemos realizar es asegurarnos que
el orden de arranque de los dispositivos sea el correcto: primero el DVD y después el disco duro.
Hecho esto, cuando pulsemos el botón “Inicio”, deberá de abrirse una ventana que representa la
pantalla de nuestra máquina virtual. Antes de nada sale un mensaje recordándonos que si hacemos clic dentro
de dicha pantalla, el ratón y el teclado pasarán a ser controlados por la máquina virtual, y si queremos que
ésta suelte el control del ratón y el teclado para poderlos usar en el sistema anfitrión, hay que pulsar la tecla
mostrada en la barra de estado abajo a la derecha (la llamada “host key”, que por defecto es la tecla CTRL
derecha, aunque eso se puede cambiar en el menú de Preferencias). Una vez aceptemos el mensaje, deberá de
comenzar el arranque de algún menú ó escritorio (si el DVD es de tipo "Live") o bien algún tipo de proceso
de instalación del sistema operativo en el interior del archivo VDI, si la iso corresponde a un DVD de
instalación.
NOTA: Hay determinadas combinaciones de teclas que siempre serán detectadas por la máquina anfitriona, y nunca por
la invitada, como CTRL+ALT+SUPR, CTRL+ALT+BACKSPACE ó CTRL+ALT+Fx. En estos casos, para que la
combinación deseada afecte a la máquina invitada, se han de usar otras teclas, respectivamente: "Host key"+SUPR,
"Host key"+BACKSPACE ó "Host key"+Fx (esta última es muy útil en Linux para poder cambiar de terminal virtual).
Otras combinaciones típicas, como ALT+TAB, se pueden configurar dentro del menú "Archivo->Preferencias-
>Entrada" de la interfaz gráfica de VirtualBox para decidir si afectan al sistema anfitrión o al invitado.
Una vez instalado el sistema, hay que acordarse de, o bien desmontar la unidad de DVD, o bien,
si la queremos seguir usando, cambiar el archivo .iso asociado, o bien, variar el orden de arranque de los
dispositivos para que arranque primero el disco duro. Si no hacemos alguna cosa de éstas, siempre empezará
arrancando el DVD de instalación del sistema operativo.
Para arrancar el nuevo sistema operativo ya instalado, clicaremos siempre en el botón “Iniciar”.
Para parar la máquina de forma estándar, podemos utilizar la opción correspondiente de la máquina invitada.
Otra posibilidad sería también cerrar la ventana del sistema invitado, (o bien clicar en el botón “Parar” de la
interfaz gráfica de VirtualBox); en estos dos casos lo que ocurre es que un cuadro con tres opciones:
"Guardar estado", "Enviar señal de apagado" y "Apagar máquina". La primera es similar a la opción de
"Hibernar" existente en la mayoría de los sistemas operativos: se guarda el contenido de la memoria RAM
(en un fichero de nombre {IdMaquina}.sav dentro de la misma carpeta donde están los ficheros vdi de los
discos virtuales), de manera que el siguiente inicio de la máquina sea casi instantáneo, y además se recuerde
el estado y configuración de los programas que estaban ejecutándose en ese mismo momento. Esto hace que
de manera inmediata se pueda seguir trabajando exactamente en el mismo estado tal como estaba el sistema
antes de apagarlo. La segunda opción se correspondería con el apagado estándar y correcto del sistema
operativo. La tercera opción es similar a desenchufar el cable de corriente de la máquina invitada, por lo que
se corre el riesgo de pérdida de datos o incluso inconsistencias en el sistema de ficheros, por lo que este
procedimiento no se recomienda a menos que sea absolutamente necesario. Si hubiéramos creado alguna
snapshots (ya hablaremos de ellas más adelante), al seleccionar la opción de "Apagar" podríamos elegir
opcionalmente la posibilidad de volver automáticamente al estado guardado en la última snapshot realizada
(sólo se puede elegir la última, ninguna más) en el siguiente inicio de la máquina virtual, evitando así en
cierta medida posibles errores de integridad, pero descartando los cambios en el sistema posteriores a la
creación de dicha snapshot.
Desde un terminal también podemos realizar las mismas tareas que las descritas anteriormente
(crear máquinas virtuales y establecer sus características, crear discos virtuales y asociarlos a máquinas,
arrancar las máquinas, etc) simplemente ejecutando el comando adecuado.
Antes de empezar, no obstante, conviene conocer una serie de aspectos de VirtualBox. De entrada
hay que saber que cada usuario tendrá dentro de su carpeta HOME una carpeta llamada "VirtualBox VMs",
creada automáticamente en la instalación de dicho programa. Dentro de ésta, habrá una subcarpeta por cada
máquina virtual que haya creado el usuario, llamada igual que la máquina correspondiente. Dentro de cada
una de estas subcarpetas aparecerán otras, como la llamada "Logs" (donde se guardarán los archivos de registro
de actividad y error), "Snapshots" (donde se guardaran los posibles "snapshots" que se creen) y también un
archivo llamado "nombreMaquina.vbox", el cual contiene, (en formato XML, con lo que si fuera necesario se
podría consultar/modificar su contenido con un simple editor de textos), toda la información sobre las
características de la máquina virtual especificadas por nosotros en el momento de su creación (o
posteriormente), ya sea mediante el uso de la interfaz gráfica o la de comandos. Finalmente, nos encontraremos
también con el archivo VDI vinculado a la máquina virtual en cuestión que fue generado en el momento de la
creación de esta.Todo este árbol de ubicaciones se puede cambiar si así se desea, desde el menú Preferencias-
>General de la interfaz gráfica de VirtualBox, o bien con los comandos adecuados que en seguida veremos.
Por otro lado, VirtualBox puede importar y exportar máquinas virtuales en el formato estándar
de la industria OVA. OVA es un estándar multiplataforma soportado por muchos productos de virtualización
que permite la creación de máquinas virtuales ya listas para ser importadas por virtualizadores como
VirtualBox. De esta manera, se puede disponer de máquinas con todo ya configurado (a nivel de hardware y
software) listas para ser utilizadas sin necesidad de configuración ó instalación excepto por la importación a
VirtualBox. Una aplicación virtual OVA consiste de hecho en un solo ficheros en cuyo interior hay una o más
imágenes de disco -en formato VDI, por ejemplo- más una descripción de todas las características de la
máquina, necesarias para conseguir su regeneración en cualquier momento. VirtualBox ofrece la posibilidad
de crear ficheros OVA tanto mediante su interfície gráfica como con comandos adecuados de consola. Para
ello, en modo gráfico simplemente habría que selecciónar la opción "Exporta aplicación virtual" del menú
"Archivo" de la ventana principal del VirtualBox y seleccionar en el cuadro de diálogo emergente la máquina
(se puede seleccionar más de una a la vez) de la cual queremos generar el fichero .ovf adecuado. En modo de
comandos se realizaría con la orden VBoxManage export, explicada más adelante. Para importar (en modo
gráfico) un fichero OVA simplemente habría que selecciónar la opción "Importar aplicación virtual" del
menú "Archivo" de la ventana principal del VirtualBox y seleccionar en el cuadro de diálogo que aparece, el
fichero .ova adecuado. En modo de comandos, lo mismo se realizaría con la orden VBoxManage import,
explicada más adelante.
1.-Generamos el disco virtual que será usado por la máquina virtual que crearemos en el paso
posterior: VBoxManage createmedium disk --filename "Midisco" --size tamaño_en_Mb --static
--format VDI
Lo que hacemos con este comando es crear un disco virtual; es decir, el archivo VDI -vacío-
dentro de la carpeta donde hayamos ejecutado el comando (o bien, allí donde digamos si se
especifica una ruta completa como valor del parámetro --filename en vez de solo el nombre). El
parámetro --size sirve para especificar el tamaño (en megabytes) del archivo VDI y el parámetro
--static indica que ese tamaño no variará: siempre será el fijado en su creación. La otra posibilidad
es no escribir este parámetro, en cuyo caso el tamaño del disco iría aumentando a medida que
éste se fuera llenando hasta el máximo indicado por el parámetro -size. El parámetro --
format sirve para especificar el formato del disco duro virtual. Hasta ahora hemos dicho que el
formato de los discos de VirtualBox es el VDI, pero debemos saber que no es el único soportado.
Si por alguna razón deseáramos crear un disco en otro formato diferente de VDI (que es el
formato por defecto si no se escribe este parámetro), deberíamos especificarlo con --format.
Valores posibles son (sin comillas): "VDI" -por defecto-, "VMMK" o "VHD".
NOTA: Si se tiene un disco virtual de tamaño estático y se desea aumentarlo de tamaño porque por
ejemplo se está llegando al límite de ocupación, existe la posibilidad de hacerlo de manera indirecta.
Evidentemente, al igual que ocurre con los discos duros reales, no se pueden aumentar de tamaño así como
así...sin embargo, la idea sería agregar a la máquina virtual un segundo disco virtual con el nuevo
-mayor- tamaño deseado y utilizar una herramienta de clonado de discos (montado en modo Live en la
máquina virtual) tal como Clonezilla (http://clonezilla.sourceforge.net ), de manera que se realice una
clonación de un disco a otro, especificando el parámetro adecuado para que la clonación se realice de forma
proporcional al tamaño del nuevo disco.
Existe la posibilidad de hacer el disco virtual de "sólo lectura" al siguiente reinicio. Es decir,
mantener una instalación del sistema invitado inmutable, de manera que cuando se apague la
máquina virtual y se vuelva a encender, su estado continúe siendo el inicialmente configurado.
Para hacer esto, primero hay que tener el contenido del disco ya colocado tal como lo deseamos
preservar, con su sistema operativo instalado, sus programas, etc. El segundo paso es
ejecutar el siguiente comando VBoxManage modifymedium disk "Midisco" --type
immutable. Este tipo de discos tiene además la característica de poder ser utilizado
simultáneamente en tiempo real por varias máquinas virtuales, cosa que los discos normales no
pueden. Un parámetro interesante a añadir al comando anterior es --autoreset off el cual sirve
para mantener los cambios producidos en el disco immutable en un disco separado (como si
fuera una "copia diferencial" a partir de un sistema base) de manera que esos cambios no se
pierdan al reiniciar la máquina (por defecto el borrado se produce siempre al valer esta opción
on). Si se quisieran eliminar esos cambios, bastaría con borrar ese disco separado y ya está: el
sistema volvería a utilizar únicamente el disco immutable. En el caso de utilizar este parámetro,
el acceso múltiple al disco se podría seguir produciendo, lo que cada máquina virtual generaría
un disco diferencial diferente. Para volver a hacer que se guarden los posibles cambios
realizados en ese disco, deberemos ejecutar VBoxManage modifymedium disk "Midisco"
--type normal .
Por último, indicar que la interfaz gráfica del VirtualBox ofrece, a través de su menú "Archivo",
la posibilidad de utilizar el llamado "Administrador de discos virtuales", que no es más que un
asistente para registrar, desregistrar, crear y eliminar de manera más cómoda los distintos discos
virtuales necesarios (y también las imágenes iso que se deseen utilizar).
2.-Observamos el tipo de sistema operativo que nos va a interesar instalar en la máquina virtual.
(este dato lo necesitaremos para el paso siguiente): VBoxManage list ostypes | less
Nosotros vamos a suponer que queremos usar un sistema Linux 64 bits genérico; por tanto, el
valor que nos interesaría en este caso es "Linux26_64"
Lo que hacemos con este comando en realidad no es más que crear la subcarpeta
correspondiente dentro de la carpeta "VirtualBox VMs" comentada más arriba, y crear dentro de
aquélla el archivo XML particular para dicha máquina virtual, con sus valores de configuración
inicialmente vacíos. El parámetro -name sirve para especificar el nombre de la máquina virtual a
crear. El parámetro -register sirve para registrar esta máquina virtual en el motor del VirtualBox,
de manera que éste la reconozca, la muestre en la lista de máquinas virtuales disponibles y se
pueda trabajar con ella. Notar que también existe el comando contrario, que "desregistra" la
máquina virtual: VBoxManage unregistervm Mimaquina; si deseamos, además de
desregistrar la máquina virtual (es decir, quitarla de la lista de máquinas disponibles), eliminarla
completamente del disco duro (es decir, borrar la carpeta homónima correspondiente existente
bajo la carpeta "VirtualBox VMs"...¡cuidado con esta opción!), deberemos añadir al final del
comando VBoxManage unregistervm el parámetro --delete.
A continuación presento una tabla con una breve explicación de los parámetros más habituales
que acompañan a este comando, para posteriormente ponerlos en práctica a la hora de
configurar una máquina virtual concreta. Si se desean conocer todos los parámetros posibles,
recomiendo consultar https://www.virtualbox.org/manual/ch08.html#vboxmanage-modifyvm
5.-Vincular el disco VDI creado en el paso 1 a la máquina virtual. Para ello hay que utilizar dos
comandos: el primero crea en la máquina una conexión de tipo SATA o de tipo IDE (según lo que digamos) y
el segundo adjunta el disco VDI a dicha conexión. Concretamente, ejecutando VBoxManage storagectl
"MiMaquina" --name "nombreConexion" --add {ide|sata} y VBoxManage storageattach "MiMaquina"
--storagectl "nombreConexion" –port 0 –device 0 --type hdd --medium "fichero.vdi" En el caso de
querer vincular un archivo .iso a nuestra máquina, tras la creación de la conexión deberíamos hacer algo
similar: VBoxManage storageattach "MiMaquina" --storagectl "nombreConexion" –port 0
–device 0 --type dvddrive --medium {none|fichero.iso | host:/dev/dispositivoreal}
Veamos un ejemplo: lo primero que nos va a interesar es instalar un sistema operativo en una
máquina virtual ya creada (la cual debería tener vinculado un disco duro). Vamos a suponer que
tenemos un archivo iso (en principio este archivo se encontrará allí donde ejecutaremos los
comandos; si estuviera guardado en otro sitio, habría entonces que especificar en los comandos
su ruta absoluta en vez de solo simplemente su nombre) y que ese archivo .iso es la imagen del
DVD de instalación de un sistema Linux cualquiera. ¿Qué tendríamos que escribir para configurar
que la máquina virtual arranque desde ese archivo iso? Pues esto:
Se podría crear un acceso directo en el escritorio -por ejemplo- que apuntara a este comando. De
esta manera, haciendo clic sobre él iniciaríamos la máquina virtual directamente, sin tener que
pasar por la interfície del propio programa)
Si se activa el audio en la máquina virtual (ya sea mediante el apartado correspondiente del cuadro
de "Configuración" en la interfaz gráfica o bien mediante el paràmetro -audio de VboxManage modifyvm),
VirtualBox será capaz como mínimo de simular un driver Intel AC' 97 ó SoundBlaster16 para la máquina
virtual, utilizando, no obstante, el driver de audio presente en la máquina anfitriona para poder escuchar el
sonido generado. En sistemas anfitriones Linux podemos elegir entre el subsistema OSS, ALSA ó PulseAudio.
En el documento "ISOs en UBSs" se detalla el procedimiento para conseguir que una máquina
virtual acceda a dispositivos USB enchufados en la máquina anfitriona como si estuvieran enchufados a la
propia máquina virtual.
Se pueden configurar hasta 4 tarjetas Ethernet en la máquina virtual, las cuales son simulaciones
de varios modelos a elegir (como el AMD PCNet ó bien del Intel Pro/1000), ampliamente soportados de
serie por todos los sistemas operativos.
Para habilitar una tarjeta de red, en la interfaz gráfica simplemente hay que ir al apartado
"Configuración"->"Red" y marcar el dispositivo -hasta un máximo de cuatro- que se deseen habilitar,
especificando además el modo ("No conectado", "NAT", "Adaptador puente", "Red interna" o "Red NAT"
son los más habituales), y pudiendo asignar además una MAC aleatoria y definir si en ese momento el cable
de red está desconectado o no.
Modo NAT
El modo "NAT" es el seleccionado por defecto cuando las tarjetas de red se habilitan en la interfaz
gráfica. Este modo no exige ningún tipo de configuración extra y es el más conveniente en el 90% de los casos,
ya que con él la máquina virtual podrá conectarse al mundo exterior y el mundo exterior se podrá conectar a
los servicios que ofrezca la máquina virtual que se hayan decidido (siempre y cuando se haya configurado
previamente una redirección de puertos (ahora lo veremos).
Para configurar el modo NAT con la interfaz de comandos (aunque ya sabemos que es el modo
por defecto), se puede escribir: VBoxManage modifyvm Mimaquina --nic1 nat --macaddress1 auto
--cableconnected1 on (todas las opciones aquí presentes están listadas en la tabla del apartado anterior).
El comando para crear una redirección de puertos entre la máquina anfitriona ("host") y la
virtual ("guest") es: VBoxManage modifyvm --natpf<1-4> nombre,{tcp|udp},[ipHost],puertoHost,
[ipGuest],puertoGuest . Para eliminar la redirección, deberíamos escribir VBoxManage modifyvm
--natpf<1-4> delete nombre Veamos un ejemplo práctico: si quisiéramos tener un servidor SSH (funcionando
en el puerto 22 TCP de la máquina virtual), antes de ejecutar cualquier instancia del VirtualBox,
deberíamos de escribir la siguiente orden: VBoxManage modifyvm --natpf1 hola,tcp,,2222,,22 El comando
anterior guardará una configuración de redirección de puertos llamada "hola" (se puede escribir el nombre que
se desee, pero ha de ser único para cada redirección diferente que se configure) donde el tráfico dirigido al
puerto 2222 del sistema anfitrión será redireccionado al servidor SSH de la máquina virtual.
Es interesante observar, una vez realizados los pasos anteriores, la salida del comando ss -tnp ,
para observar cómo el puerto del host redireccionado (en el ejemplo, el 2222) se conecta a otro puerto no
reservado aleatorio abierto por el propio VirtualBox, el cual es el que se pone en comunicación con el puerto
22 de la máquina virtual.
En el modo "Red interna" la red que es visible desde la máquina virtual sólo está formada por
las otras máquinas virtuales que se ejecuten en la misma máquina anfitrión y que pertenezcan a la misma red
interna pero no por las aplicaciones corriendo en la máquina anfitriona o en el mundo exterior. Con esto se
mejora la seguridad ya que se crea una red en la que sólo son visibles entre sí las máquinas virtuales, sin utilizar
las interfícies de red del anfitrión.
En este modo corre a cargo del administrador de la máquina virtual el establecimiento de las
direcciones IP, máscaras, etc adecuadas para darle conectividad. Para ello se puede recurrir al comando ip
address (un ejemplo concreto sería este: ip address add 192.168.1.3/24 dev enp0s3) o, para una configuración
más permanente, editar -en sistemas Debian-like- el fichero /etc/network/interfaces y reiniciar; un ejemplo de
contenido para este fichero podría ser este:
auto enp0s3
iface enp0s3 inet static
address 192.168.1.3
netmask 255.255.255.0
El mode "Adaptador pont" vincula la tarja de xarxa de la màquina virtual amb una tarja de xarxa
concreta de la màquina real. D'aquesta manera, la tarja virtual actuarà com si fos una tarja de xarxa real més de
la nostra màquina real. Això vol dir que si a la màquina real agafem la configuració de xarxa d'un servidor
DCHP (real), la tarja en mode "adaptador pont" també ho farà així. Això vol dir que aquesta tarja tindrà una
direcció IP, porta d'enllaç, etc completament equivalent a la d'una tarja de xarxa real. Per tant, es podrà
comunicar sense limitacions amb qualsevol altra màquina (real o virtual) de la nostra LAN i, si la configuració
rebuda per part del servidor DHCP és correcta, també podrà accedir a Internet
Modo "Red NAT"
El mode "Xarxa NAT" del VirtualBox és molt interessant perquè et permet accedir a Internet des
de cada màquina virtual però a més, et permet tenir una xarxa interna entre elles (amb direccions IPs per defecte
de la xarxa 10.0.2.0/24 i donades automàticament pel propi VirtualBox). D'aquesta manera, podries treballar
amb les dues màquines "de tu a tu" (com si fos el mode "xarxa interna" amb servidor DHCP) però a la vegada
tenint accés a Internet en cadascuna d'elles.
Per poder activar aquest mode primer has de crear la xarxa adequada anant, des de la finestra
principal del VirtualBox, al menú Fitxer->Preferències->Xarxa i clicar al botó de "Crear": allà donant
simplement un nom a la xarxa ja seria suficient (la resta de valors marcats per defecte no cal canviar-los). Un
cop fet això, ja podràs assignar a les tarjes de xarxa que vulguis la xarxa creada activant el mode "Xarxa NAT".
És important tenir en compte que si les direccions MAC de les tarjes de xarxa de diferents
màquines són la mateixa (això pot passar si són màquines-clon), el VirtualBox donarà la mateixa IP a totes
elles, cosa que no té sentit. Per tant, cal assegurar-se abans de posar cada tarja en mode "Xarxa NAT" que no
tingui una direcció MAC igual a la resta
Las "Guest Additions" son un paquete extra de drivers que ofrece la propia Oracle y que se
instalan dentro de la máquina virtual para optimizarla, mejorando su mejor usabilidad y funcionalidad.
Para instalarlas lo único que hay que hacer es, teniendo la máquina virtual en cuestión en
marcha, ir directamente en el menú "Devices -> Install Guest Additions" de la barra de menús de la ventana
de esa máquina virtual. Aparecerá un cuadro informando que se procederá a la descarga de un archivo ISO
especial llamado VboxGuestAdditions.iso y, normalmente, se colocará automáticamente en la lectora de
DVD de nuestra máquina para tenerlo ya disponible. Si accedemos a ella veremos el contenido de dicho fichero,
desde donde podremos poner en marcha (en Linux, ejecutando el script VBoxLinuxAdditions.run y en
Windows clicando en VBoxWindowsAdditions.exe) un asistente que procederá a la instalación de las
"Guest Additions".
Existen "Guest Additions" genéricas para todo tipo de sistemas invitados, y unas cuantas
específicas para sistemas invitados concretos. En general, nos van a permitir:
*Hacer que automáticamente el puntero del ratón sea reconocido como perteneciente a la
máquina virtual o anfitriona según si está dentro o fuera de la ventana de primera,
respectivamente, sin tener que pulsar ninguna tecla "host key" ni nada.
*Tener un soporte de video mejorado, con drivers que proveen modos de video extra no
estándar y un rendimiento de video acelerado. De esta manera, lu ventana de la máquina virtual
se podrá redimensionar y la resolución cambiará acordemente.
*Suprimir el fondo del escritorio del sistema invitado, permitiendo así ejecutar ventanas del
sistema invitado sin distinguirlas de las ventanas del sistema anfitrión. Para habilitar este efecto,
(llamado "modo fluido"), una vez iniciada la máquina virtual, simplemente hay que apretar
"Host key+L" .Para quitarlo, hay que apretar la misma combinación otra vez.
*Poder utilizar el portapapeles compartido entre el sistema anfitrión y el invitado. Para ello, una
vez instalada la "Guest Addition" correspondiente, se puede ir al apartado "Parámetros"-
>"General"->"Avanzado" y seleccionar "bidireccional" en la opción "Portapapeles compartido"
o bien, que sería equivalente, ejecutar. el comando VBoxManage modifyvm --clipboard
bidirectional
Pero sobre todo, nos va a permitir crear y usar carpetas compartidas entre el sistema anfitrión y el invitado
para que desde el sistema invitado se pueda acceder a alguna carpeta concreta alojada en algún disco de la
máquina anfitriona. Para ello, después de haber instalada la "Guest Addition" correspondiente, para
compartir la carpeta deseada del sistema "host" con el sistema "guest" se puede optar por una de las dos
opciones siguientes:
*Si deseamos utilizar la interfície gráfica del programa, en el apartado "Directorios compartidos"
del cuadro "Configuración" (si la máquina virtual está apagada), o bien desde el menú
"Dispositivos" de la barra de menús de la ventana de la máquina virtual (si ésta está encendida)
veremos un cuadro donde deberemos de introducir los dos valores comentados: el nombre que
deseemos dar a la carpeta compartida y su ruta real en la máquina anfitriona. Por comodidad, es
MUY recomendable seleccionar también en ese cuadro los valores "Montar automáticamente" y
"Persistente". Con esto ya tendremos una carpeta del sistema anfitrión accesible desde el
sistema invitado.
*Si deseamos utilizar el intérprete de comandos para crear la carpeta compartida, tendremos que
ejecutar el siguiente comando: VBoxManage sharedfolder add "Mimaquina" --name
nombrecarpetacompartida --hostpath /ruta/carpeta/en/anfitrion --automount, donde el
parámetro -name establece el nombre (el que nos dé la gana, nos lo podemos inventar) que
queremos que tenga esa carpeta compartida y que será el nombre que se verá desde la máquina
invitada, el parámetro --hostpath establece la ruta absoluta real en el sistema anfitrión de la
carpeta a compartir y el parámetro --automount indica que esa carpeta compartida estará
automáticamente disponible en la máquina virtual nada más arrancarla sin tener que hacer nada
en particular.
Una vez compartida la carpeta del sistema anfitrión tal como se acaba de explicar, para acceder
a ella desde el sistema invitado (de tipo Linux) antes de nada debemos conceder, a los usuarios de la máquina
virtual que decidamos, el permiso de acceder a un punto de montaje especial que VirtualBox genera
automáticamente en la máquina virtual con el nombre de "/media/sf_nombrecarpetacompartida" (y del que,
de entrada, nadie tiene permisos para acceder). Para conceder ese permiso basta con ejecutar una sola vez el
comando usermod -a -G vboxsf nombreUsuario ; al siguiente inicio de sesión ese usuario ya tendrá accesible
el contenido de la carpeta compartida.
Para ver las carpetas que tiene compartidas la máquina anfitriona se puede ejecutar el comando:
VBoxManage list vms
Con las instantáneas ("snapshots"), se puede guardar un estado particular de la máquina virtual en
un momento dado. Sería similar a la opción de "Grabar estado" que aparece cuando apagamos la máquina
virtual desde VirtualBox, con la diferencia que después de crear una snapshot podemos seguir utilizando la
máquina virtual como si no hubiera pasado nada, y que podemos crear el número de snapshots que
queramos. A estos estados grabados se podrá volver posteriormente, una vez arrancada la máquina virtual,
para reestablecerla a esa configuración anterior. Esto es especialmente interesante para asegurarse de que el
sistema invitado no se estropee por cambios accidentales o virus.
A veces puede interesar deshacerse de las diferentes snapshots que han sido creadas a lo largo
del tiempo (por ejemplo, para liberar espacio en disco, -ya que cada snapshot puede ocupar muchos
megabytes-). No tiene que haber excesivos problemas: eliminar snapshots no cambia para nada el estado actual
del sistema.
Para crear un snapshot desde la interfaz gráfica del VirtualBox, se ha de hacer lo siguiente:
1.-Si la máquina virtual está funcionando, seleccionar “Tomar instantánea” del menú “Máquina”
de la ventana de la máquina virtual. Si la máquina virtual está apagada, hacer clic en la pestaña
“Instantáneas” de arriba a la derecha y hacer clic en el pequeño icono de la cámara.
2.-Saldrá un popup preguntando el nombre del snapshot. Seguidamente, esta nueva instantánea
aparecerá en la lista bajo la pestaña “Instantáneas “, y bajo ésta, aparecerá un item llamado “Estado
actual”: esto significa que el estado actual de la máquina virtual es una variación basada en el
snapshot creado anteriormente.
A partir de entonces, ya hemos dicho que los cambios que se realicen en la máquina virtual no
afectarán a la snapshot previamente creada, sino al "Estado actual" (el cual ya sabemos que puede ser guardado
a su vez eligiendo la opción correspondiente en cerrar la ventana del sistema invitado, o bien pulsando el botón
correspondiente de la interfaz gráfica de VirtualBox).
Para volver a un snapshot previamente creado, desde la interfaz gráfica del VirtualBox, existen
dos posibilidades:
a) Clicar en el item “Estado actual” y seleccionar “Descartar estado actual”. Esto llevará la
máquina virtual al estado del snapshot anterior más reciente. Esto lo podremos hacer siempre y
cuando entre la última instantánea y el estado actual haya aparecido alguna diferencia en el
sistema. Cuidado porque todo lo que se haya hecho después del snapshot al que hemos vuelto se
habrá perdido para siempre.
b) Clicar en el ítem "Estado actual" y seleccionar "Descartar instantánea y estado actual". Esto
lo que hace es eliminar la última instantánea y llevará la máquina virtual al estado de la
instantánea inmediatamente anterior a la recién eliminada. Esto lo podremos hacer tantas veces
como instantáneas existan, llevando así la máquina virtual a distintos estados, cada uno anterior
al otro, pero cuidado porque los snapshots eliminados no se podrán recuperar. Es decir,
VirtualBox no permite volver al estado de una instantánea que no sea la última guardada, por lo
que si queremos ir allí, nos obliga a eliminar las instantáneas posteriores a ésta.
Para eliminar un snapshot previamente creado, desde la interfaz gráfica del VirtualBox
simplemente hay que seleccionar la snapshot que se desea eliminar y pulsar el botón correspondiente
("Descartar instantánea").
NOTA: Si se da el caso, por ejemplo, de que necesitamos mover un estado concreto (es decir, una instantánea
particular) de nuestra máquina virtual a otra máquina anfitriona, si sólo copiáramos el archivo vdi no llevaríamos
consigo dicho estado anterior, sino el estado actual en el que se encuentre. Una idea sería copiar también los archivos de
las diferentes instantáneas guardados en la carpeta "Snapshot" a la nueva máquina anfitriona y decirle a la máquina virtual
creada allí que busque dichos archivos en la carpeta que se especifique. No obstante, está demostrado que si hacemos esto
VirtualBox se quejará y nos devolverá múltiples errores irresolubles. Para conseguir este propósito, el truco podría ser
hacer retroceder el estado de nuestra máquina a la instantánea deseada (ya sea la última o alguna anterior); de esta manera,
ahora sí, moviendo tan sólo ese archivo del disco virtual a la nueva máquina anfitriona, cuando se pusiera en marcha
la máquina virtual existente allí asociada al disco vdi acabado de mover, se reestablecería el sistema al último estado que
se guardó.
NOTA: la creación de snapshots en el caso de discos inmutables no tienen ningún sentido; es más, se recomienda no
crearlas en este caso para evitar posibles inconsistencias en el arranque de las imágenes. Tampoco tiene sentido,
lógicamente, guardar el estado actual de la máquina: para apagarla se recomienda utilizar la opción pertienente que ofrezca
el sistema invitado.
Para gestionar las instantáneas desde la interfaz de línea de comandos, se puede escribir:
La clonación de una máquina virtual consiste en hacer una nueva máquina exactamente igual a
una primera de manera que ambas puedan ejecutarse en el mismo ordenador a la vez. Las clonaciones son
muy prácticas a la hora de hacer "copias de seguridad" de una máquina origina para disponer así de una
copia exacta de ese momento por si pudiera estropearse algo en el futuro.
Uno podría pensar que se podría crear una nueva máquina virtual simplemente duplicando el
fichero VDI asociado y volviendo a configurar los parámetros necesarios (modos de las tarjetas de red, etc).
No obstante, este método tiene un problema (a parte de ser algo farragoso) y es el hecho de que los discos duros
virtuales tienen todos un identificador único (un UUID) que, aunque se duplique el fichero VDI (con el
comando del sistema cp, por ejemplo) seguirá manteniéndose igual en la copia. Y VirtualBox sólo permite
poner en marcha discos duros con UUIDs diferentes: si detecta que queremos iniciar una máquina con un disco
que tenga un UUID igual al de otro de otra máquina que esté funcionando en ese momento, no nos dejará.
Habría una solución para este problema, que es el ejecutar el comando VBoxManage internalcommands
sethduuid /ruta/disco.vdi, el cual cambia el UUID del disco indicado por otro generado en ese momento al
azar. Otra solución más directa sería generar directamente un nuevo fichero VDI copia del original pero con
el UUID cambiado ya; esto se lograría con el comando VBoxManage clonemedium disk
/ruta/archivo/VDIactual /ruta/archivo/VDInuevo (este comando tiene un parámetro opcional -entre otros-
interesante: --format , el cual permite establecer el formato del archivo clonado; valores posibles pueden ser
VDI (por defecto), VMDK, VHD y RAW). Pero, en cualquier caso, ya vemos que, en definitiva, el proceso
no es inmediato.
La clonación debe hacerse con la máquina virtual apagada y podemos actuar de distintas
formas: desde el menú contextual de la máquina (opción "Clonar") o, con la máquina seleccionada, pulsando
en el menú Máquina->Clonar, pulsando CTRL+O o yendo al área de snapshots y pulsando sobre el icono de
clonar. En cualquier caso, se abre una ventana que pide dos cosas: el nombre de la máquina-clon y si queremos
reiniciar la dirección MAC de las tarjetas de red clonadas (es muy recomendable decir que sí ya que no debe
haber dos tarjetas de red con la mima MAC en una red local).
Hay dos tipos de clonación: la "completa" y la "enlazada". La primera consiste en una copia exacta
de la máquina original, incluyendo la copia de los ficheros VDI (con UUID cambiado automáticamente); esto
significa que cada máquina-clon ocupará bastante espacio de nuestro disco duro real. La segunda consiste en
una copia donde los ficheros VDI del clon están vinculados a sus respecitvos ficheros VDI de la máquina
original, de forma que en los ficheros VDI del clon solo se guardarán los cambios que se vayan detectando
respecto el contenido de los ficheros de la máquina original. Esto significa que si cambiamos algo de interior
de los ficheros VDI originales (por ejemplo, instalamos un programa), ese cambio se verá reflejado en el
fichero VDI de la máquina clon (pero no a la inversa). Por otro lado, la clonación "enlazada" hace que el
espacio de disco duro real utilizado por los clones sea mucho menor que en una clonación completa.
VirtualBox permite que las máquinas virtuales se organicen en grupos, y a estos se les pueden
aplicar las operaciones típicas que se encuentran en el menú "Máquina", afectando a todas las máquinas del
grupo: Iniciar, Pausar, Reiniciar, Cerrar, Guardar estado, Apagado ACPI, Apagar, Mostrar en explorador y
Crear un acceso directo en el escritorio.
Si queremos meter una máquina virtual en un grupo nuevo, simplemente tenemos que elegir la
opción "Agrupar" de su menú contextual: se creará un nuevo grupo y se meterá dentro de él la máquina
seleccionada. Para cambiar el nombre del grupo por algo que sea significativo, desde el menú contextual del
grupo podemos elegir la opción "Renombrar grupo".
Pulsando sobre la flecha derecha que aparece en el título de los grupos, al lado del número de
máquinas que posee, se consigue que se oculten el resto de los grupos y solo se vean las máquinas del grupo
sobre el que se pulsó. Para volver a ver todos los grupos, simplemente pulsaríamos la fecha izquierda,
opuesta a la anterior. Pulsando doble click sobre el título de los grupos, estos se recogen o se despliegan de
forma alternativa.
Es posible ejecutar una máquina virtual ubicada en un servidor remoto pero manejarla desde
nuestro ordenador como si fuera una máquina virtual local. Esta "otra" manera de utilizar el VirtualBox en un
modo cliente-servidor a través de la red se basa en el empleo de dos elementos:
El RDP (Remote Desktop Protocol) es un protocolo originalmente ideado por Microsoft cuya
finalidad es permitir el acceso (y el control) a escritorio remotos. Es decir, si un usuario utiliza
un cliente RDP para conectarse a un servidor RDP, podrá visualizar y controlar gráficamente el
escritorio de éste. RDP es pues, un protocolo de similares objetivos a otros como por ejemplo el
protocolo VNC.
VirtualBox no incorpora ningún cliente RDP porque en esta máquina local el VirtualBox no
tiene porqué ni siquiera estar instalado: tanto éste como las máquinas virtuales estarán alojadas
y configuradas en la máquina anfitriona remota. Para hacer uso de un cliente RDP en nuestro
ordenador podemos optar por el programa multiprotocolo Remmina (ya instalado por defecto en
Ubuntu) o también el comando rdesktop (el cual se puede ejecutar así: rdesktop -a 16
ip_servidor_vrdp, donde el parámetro -a indica la profundidad de color de 16 bits por pixel,
que es la recomendada.).
Éste es el programa que realmente pone en marcha y ejecuta las máquinas virtuales, pero lo
hace de forma que su visualización se realiza a través de los clientes RDP. Dicho de otra
manera, la máquina que ejecuta el servidor VRDP no hace falta que tenga instalado ningún
sistema gráfico (ni X, ni por supuesto librerías Qt o similares), ya que todo lo que procese (las
distintas máquinas virtuales en sus distintos estados) lo va a devolver a los clientes RDP, los
cuales serán los encargados de únicamente visualizar las ventanas de esos sistemas virtuales
ejecutados remotamente. Por tanto, en síntesis, el servidor VRDP es el encargado de detectar las
entradas de teclado y ratón que se producen en los clientes remotos, procesarlas en la máquina
virtual pertinente que está ejecutando en local, y devolver otra vez a los clientes la respuesta
adecuada (en forma de actualizaciones de gráficos y audio) pero él por sí mismo no produce
ninguna salida visible en la máquina donde se está ejecutando.
1.-Entrar en el ordenador que hará de servidor VRDP (esto se puede hacer desde nuestra
computadora cliente usando SSH, por ejemplo). Una vez allí dentro, si se han de crear/modificar
máquinas virtuales o archivos VDI, se hará como siempre, con el comando de terminal
VBoxManage , sin ninguna novedad.
2.-Una vez ya se tiene creada y configurada la máquina virtual, hay que ponerla en marcha y
visualizarla. Para ello, hay que hacer dos cosas:
Con VirtualBox es posible acceder directa y completamente al disco duro real de la máquina
anfitriona desde una máquina virtual (o a particiones concretas de éste). Para conseguir esto utiliza imágenes
de disco en formato VMDK, en vez de VDI. De forma resumida, el proceso se compone de los siguientes
pasos:
1.-Para crear una imagen que representa un disco duro físico entero (imagen que no contendrá
ningún dato efectivo, ya que todos se almacenarán el el disco físico) se haría : VBoxManage
internalcommands createrawvmdk --filename /ruta/al/fichero.vmdk --rawdisk /dev/sda
--register Este comando crea el fichero.vmdk (la ruta debe ser absoluta) pero todos los datos
serán leídos escritos en el disco real /dev/sda.
2.-Después de haber creado la imagen de disco, se puede asignar ésta a una máquina virtual de
la forma estándar (con el comando VBoxManage storageattach ...)