Manual Virtual Box

23
Tutorial de VirtualBox (para utilizar dentro de las aulas del IES PuigCastellar) 1.-Aspectos a tener en cuenta sobre la virtualización en las aulas del instituto: Existen varios programas gratuitos de virtualización/emulación que se podrían hacer servir, como por ejemplo VMWare o Qemu. No obstante, el primero de ellos no es GPL, y el segundo no tiene una interfaz gráfica amigable, (y lo que es más importante, no es capaz todavía se crear y hacer funcionar máquinas virtuales con el sistema operativo Vista instalado en ellas). Es por esto que se ha elegido como posible programa de virtualización a utilizar en las aulas el Innotek VirtualBox (http://www.virtualbox.org ), el cual tiene una versión GPL y consta (entre otras) de una interfaz gráfica cómoda y fácil de utilizar. Este documento no es más que un resumen muy escueto de las posibilidades de este programa. Para saber más sobre éste, sus posibles usos y sus posibilidades, es muy recomendable consultar la excelente y completísima Guía del Usuario, la cual se puede descargar por separado desde la propia página web de Innotek. Una primera idea para utilizar máquina virtuales en las aulas del instituto podría ser instalar el VirtualBox en las máquinas de dichas aulas, y arrancar individualmente en cada uno de éstas las máquinas virtuales que se quieran, las cuales podrían estar almacenadas también localmente en una partición-almacén. El problema está en que los ordenadores no lo pueden soportar: la mayoría no llegan ni a los 512Mb de RAM, y por lo pronto esto hace imposible que puedan iniciar por ejemplo una máquina virtual de Vista de forma local (ya que la memoria que asignemos a nuestra máquina virtual, se resta de la memoria real física de la máquina anfitriona, con lo que si el Vista necesita como mínimo para funcionar 512Mb, éstos se restarán de la memoria real que es usada también por el sistema operativo anfitrión instalado en los ordenadores del aula). Así que la alternativa es ejecutar el VirtualBox y la máquina virtual pertinente en el servidor Valinor (conectándonos a él previamente via SSH), el cual tiene memoria suficiente para poner en marcha dos y hasta tres máquinas virtuales a la vez. Evidentemente, haciéndolo de esta manera, sólo podrá haber dos o tres alumnos que puedan utilizar por ejemplo el Vista a la vez, pero algo es algo. 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.

Transcript of Manual Virtual Box

Page 1: Manual Virtual Box

Tutorial de VirtualBox(para utilizar dentro de las aulas del IES PuigCastellar)

1.-Aspectos a tener en cuenta sobre la virtualización en las aulas del instituto:

Existen varios programas gratuitos de virtualización/emulación que se podrían hacer servir, como por ejemplo VMWare o Qemu. No obstante, el primero de ellos no es GPL, y el segundo no tiene una interfaz gráfica amigable, (y lo que es más importante, no es capaz todavía se crear y hacer funcionar máquinas virtuales con el sistema operativo Vista instalado en ellas). Es por esto que se ha elegido como posible programa de virtualización a utilizar en las aulas el Innotek VirtualBox (http://www.virtualbox.org ), el cual tiene una versión GPL y consta (entre otras) de una interfaz gráfica cómoda y fácil de utilizar.

Este documento no es más que un resumen muy escueto de las posibilidades de este programa. Para saber más sobre éste, sus posibles usos y sus posibilidades, es muy recomendable consultar la excelente y completísima Guía del Usuario, la cual se puede descargar por separado desde la propia página web de Innotek.

Una primera idea para utilizar máquina virtuales en las aulas del instituto podría ser instalar el VirtualBox en las máquinas de dichas aulas, y arrancar individualmente en cada uno de éstas las máquinas virtuales que se quieran, las cuales podrían estar almacenadas también localmente en una partición-almacén. El problema está en que los ordenadores no lo pueden soportar: la mayoría no llegan ni a los 512Mb de RAM, y por lo pronto esto hace imposible que puedan iniciar por ejemplo una máquina virtual de Vista de forma local (ya que la memoria que asignemos a nuestra máquina virtual, se resta de la memoria real física de la máquina anfitriona, con lo que si el Vista necesita como mínimo para funcionar 512Mb, éstos se restarán de la memoria real que es usada también por el sistema operativo anfitrión instalado en los ordenadores del aula). Así que la alternativa es ejecutar el VirtualBox y la máquina virtual pertinente en el servidor Valinor (conectándonos a él previamente via SSH), el cual tiene memoria suficiente para poner en marcha dos y hasta tres máquinas virtuales a la vez. Evidentemente, haciéndolo de esta manera, sólo podrá haber dos o tres alumnos que puedan utilizar por ejemplo el Vista a la vez, pero algo es algo.

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.

Page 2: Manual Virtual Box

2.-Uso de la interfaz gráfica de VirtualBox:

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 lo siguiente:

1.- Conectarnos (desde un Linux) a Valinor via SSH : ssh -X usuario@valinor .

Es importante el parámetro -X porque sirve para enviar al servidor X LOCAL la salida gráfica de los comandos que estemos ejecutando -remotamente (en este caso,Valinor)-. Es decir, sirve para que podamos ver en nuestro ordenador cliente las ventanas de los programas ejecutados en el servidor. Por eso, también es necesario que nos conectemos al servidor desde un Linux -con un servidor X funcionando-: si lo hiciéramos desde un Windows, daría error porque en Windows no tenemos ningún sistema X local.

2.-Ejecutar: VirtualBox & . 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.

0.-Clicar en el botón “Nueva”. Aparecerá un asistente.

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

3.-Asociar a nuestra máquina un archivo VDI, que representará el disco duro (primario maestro, hda) 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 -preferiblemente fijo-. 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.

4.-Ya tenemos 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 “Configuración” 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, los Mb de RAM y -una cosa nueva- los Mb de la RAM de vídeo (aunque este dato no es demasiado relevante, ya que VirtualBox emula la tarjeta gráfica de la máquina invitada de forma muy pobre, -sin posibilidad de aceleración 3D- con lo que la cantidad de VRAM que se establezca no influirá demasiado en la calidad final de la imagen, y muchos efectos visuales no se podrán realizar )

*La pestaña “Avanzado” de este mismo apartado es importante porque desde allí estableceremos 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

Page 3: Manual Virtual Box

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... Podemos ver que otras opciones diferentes de esta pestaña es habilitar el ACPI, 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”-.

*Otro apartado interesante es el de “Discos duros”, desde donde se puede modificar la asignación máquina virtual<->disco duro primario maestro que hemos hecho en el asistente inicial, y podemos añadir hasta dos discos duros más -otros dos archivos VDI-, que serían el primario esclavo (hdb) y el secundario esclavo (hdd). El secundario maestro (hdc) se reserva para la lectora de DVD.

*Otro apartado fundamental es el de “DVD/CD-ROM”, desde el cual añadiremos a nuestra máquina virtual una unidad de DVD, la cual puede ser física real -mapeando una unidad existente en la máquina anfitrión, con lo que el soporte que introduzcamos en esa unidad será lo que vea nuestra máquina virtual-, o bien puede ser un archivo .iso, con lo que la unidad de DVD de nuestra máquina virtual contendrá siempre dicho archivo, simulando así tener siempre el mismo DVD en su interior.

*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 “Directorios compartidos” (entre máquina anfitrión e invitada) o para la configuración de “Pantalla remota” (para habilitar el servidor VRDP ).Ya hablaremos de ellos más adelante.

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 primero, montar el dispositivo DVD (dentro del apartado de la configuración “DVD/CD-ROM”) y 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. En el caso particular del instituto, si nos decidiéramos por la primera opción, deberíamos de tener acceso físico a la unidad DVD del servidor Valinor para introducir allí el soporte adecuado -el DVD de instalación del S.O-, pero ya que esto no es demasiado práctico, en nuestro caso optaremos por generar previamente una imagen .iso de nuestro DVD de instalación, y copiarla a alguna carpeta accesible en Valinor -en concreto, la carpeta /opt/vm/sistemas/isos - (con la ventaja de que así tendremos siempre disponible el archivo iso para poderlo quemar si nos hiciera falta y no ir arriba y abajo con el soporte). Dicho esto, lo que tendríamos que hacer, pues, es decir que la lectora DVD de la máquina virtual será el archivo .iso creado previamente a partir del DVD de instalación del S.O deseado.(y copiado en alguna carpeta accesible de Valinor)

Por cierto, si se quiere generar un archivo .iso de un DVD, 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, aunque no siempre se llama así (depende del Linux que tengamos): se puede llamar /dev/cdrom0 , /dev/cdrom , /dev/hdc , etc,etc . Para saberlo, se puede ejecutar el comando “mount” para ver la lista de dispositivos montados del 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..

Y, una vez hemos dicho que montaremos la unidad de DVD de la máquina virtual con el contenido del .iso de instalación del sistema operativo, una segunda acción que debemos realizar es asegurarnos que el orden de arranque de los dispositivos (apartado “General”, pestaña “Avanzado”) sea el correcto: primero el DVD y después el disco duro.

5.-Pulsamos el botón “Inicio”, y 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 proceso de instalación del sistema operativo dentro del archivo VDI a partir del .iso .

Page 4: Manual Virtual Box

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. Otras combinaciones típicas, como ALT+TAB, se pueden configurar dentro del menú “Archivo->Configuración global->Entrada->Autocaptura de teclado” de la interfaz gráfica de VirtualBox para decidir si afectan al sistema anfitrión o al invitado.

6.-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.

7.-Para arrancar el nuevo sistema operativo ya instalado, clicaremos 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 dos opciones: "Guardar estado" 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, "Apagar", 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.

Page 5: Manual Virtual Box

3.-Uso de la interfaz de comandos de VirtuaBox:

Si deseamos poner en marcha la interfaz de comandos del programa, desde la cual podremos hacer las mismas tareas que las descritas anteriormente (crear las máquinas virtuales y los discos virtuales y arrancar la máquina deseada,etc) lo único que tenemos que hacer es lo siguiente:

1.- Conectarnos (desde un Linux) a Valinor via SSH : ssh usuario@valinor .

En este caso no es importante escribir el parámetro -X ya que todo lo haremos a través de comandos de consola. No obstante, el último paso, que es poner en marcha la máquina virtual (con la correspondiente instalación del S.O en ella, y su posterior utilización) sí que debería ejecutarse con el redireccionamiento X habilitado -es decir, utilizando el parámetro -X del SSH-, ya que es el momento donde ha de aparecer visible en nuestra pantalla la ventana correspondiente a la máquina virtual .

A partir de aquí, deberemos de ejecutar una serie de comandos, uno detrás de otro, para realizar paso a paso todas las acciones necesarias ya conocidas: crear una máquina virtual, crear un archivo VDI -o sea, un disco duro virtual-, establecer las características principales de la máquina virtual (memoria RAM, montaje de unidades, etc), puesta en marcha de la máquina virtual, etc.

Antes de empezar, no obstante, conviene conocer una serie de aspectos de VirtualBox. Por ejemplo: hay que saber que cada usuario de Valinor tiene dentro de su carpeta HOME una carpeta (oculta) llamada ".VirtualBox", creada automáticamente en la instalación de dicho programa. Dentro de ésta, han de aparecer algunos archivos de log y un archivo llamado "VirtualBox.xml", el cual contiene, en formato XML, información sobre la configuración general del programa, como por ejemplo: qué máquinas y discos virtuales hay registrados (es decir, los que se reconocen y con los que se puede trabajar), etc.

Además, dentro de esta carpeta ".VirtualBox", existirá una subcarpeta llamada "Machines". Dentro de "Machines", a su vez, aparecerá una subcarpeta diferente por cada nueva máquina virtual que se haya creado. Cada una de estas subcarpetas dentro de "Machines" se llamará igual que la máquina virtual correspondiente, y en su interior, aparte de unos cuantos archivos de log específicos de esa máquina virtual concreta, lo que tendremos será un archivo XML (cuyo nombre será otra vez el de la máquina virtual dada), el cual contendrá todas las características para dicha 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.

Colgando directamente de la carpeta ".VirtualBox", además de la subcarpeta "Machines", existirá otra llamada "VDI", la cual contendrá los diferentes archivos VDI generados (es decir, los archivos que hacen de disco duro virtual para las diferentes máquinas virtuales, y donde se instalarán los diferentes sistemas operativos).

Resumiendo, la estructura de carpetas es similar a la siguiente:

$HOME/.VirtualBox/ ---> VirtualBox.xml |----------> Archivos log variados | |

|---------> Machines/------->Mimaquina1/ -------->Mimaquina1.xml | | |---------------> Logs/ | |

| |------------>Mimaquina2/--------->Mimaquina2.xml | |---------------->Logs/

| | |----------> VDI/ ------------->Midisco1.vdi |----------------->Midisco2.vdi

Page 6: Manual Virtual Box

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.

1.-Creamos la máquina virtual: VBoxManage createvm -name Mimaquina -register

Lo que hacemos con este comando en realidad no es más que crear la subcarpeta correspondiente dentro de la carpeta "Machines" 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 y pueda trabajar con ella (o dicho de otra manera, tal como dice el manual, sirve para importar la definición de una máquina virtual -en forma de archivo XML- dentro de VirtualBox). Este último parámetro se podría haber obviado, pero entonces, a continuación del comando anterior, habría sido necesario escribir éste otro: VBoxManage registervm rutaArchivo.xml , donde rutaArchivo.xml indica la ruta completa del archivo XML que representa la máquina virtual en cuestión (es decir: $HOME/.VirtualBox/Machines/Mimaquina/Mimaquina.xml ; aunque también se pueden usar si se desea rutas relativas a la carpeta ".VirtualBox" , escribiendo lo mismo así: ./Machines/Mimaquina/Mimaquina.xml ). Notar que también existe el comando contrario, que "desregistra" la máquina virtual: VBoxManage unregistervm Mimaquina, y si deseamos, además de desregistrar la máquina virtual, eliminarla completamente del disco duro, deberemos añadir al final del comando VBoxManage unregistervm el parámetro -delete.

*Puedes pensar que si creamos la máquina virtual dentro de la carpeta personal de un usuario, otros usuarios que quieran hacer uso de ésa no podrán hacerlo, porque no tendrán acceso a dicha carpeta. Efectivamente. Por eso tenemos la posibilidad de crear la máquina virtual (de hecho, su archivo XML de definición) dentro de otra carpeta -la cual se supone que será accesible por los usuarios que lo necesiten-. La ruta de esta carpeta vendrá dado por el parámetro -basefolder del comando VBoxManage createvm , así: VBoxManage createvm -name Mimaquina -register -basefolder /ruta/absoluta/maquina.*Otro parámetro del comando VBoxManage createvm es -settingsfile nombreArchivo, mediante el cual podremos especificar el nombre que queramos que tenga el archivo XML de definición (el cual ya sabemos que por defecto es el mismo que el de su máquina virtual correspondiente).

2.-Creamos el disco virtual que será usado por la máquina virtual anterior: VBoxManage createvdi -filename Midisco -size tamaño_en_Mb -static -register

Lo que hacemos con este comando es crear un disco virtual; es decir, el archivo VDI -vacío- que alojará el sistema operativo invitado que vayamos a instalar, dentro de la carpeta "VDI" comentada más arriba.

*El parámetro -filename sirve para especificar el nombre de ese archivo VDI (especificando además la extensión: .vdi). También se puede poner, en vez del nombre+extensión del archivo tal cual, una ruta absoluta completa, en cuyo caso el archivo se creará en la ruta especificada. Esto es interesante hacerlo para guardar los discos en una ubicación a la que puedan acceder varios usuarios, ya que si no, sólo podría utilizar el disco el usuario que lo creó (porque ya hemos dicho que por defecto el disco se crea dentro de la carpeta "VDI", que está en la carpeta HOME de ese usuario – a no ser que esto mismo lo hayamos cambiado a través del menú Archivos->Preferencias de la interfaz gráfica, tal como se ha comentado ya- ).

*El parámetro -size sirve para especificar el tamaño (en megabytes) del archivo VDI.

*El parámetro -static indica que el tamaño del archivo VDI (el disco virtual) 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 y quedarse sin espacio libre; no obstante, no es una opción recomendada, ya que la lectura-escritura en un disco de tamaño variable es mucho más lenta, al tener que estar reubicando constantemente los sectores que lo forman.

Page 7: Manual Virtual Box

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. La idea es crear el nuevo disco virtual con el nuevo -mayor- tamaño deseado y utilizar en modo Live-CD montado en la máquina virtual una herramienta de clonado de discos, 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 -en el caso de Clonezilla, en el asistente a seguir- para que la clonación se realice de forma proporcional al tamaño del nuevo disco. (Si esto último no fuera posible, y la máquina virtual fuera un Windows, siempre se podría ejecutar, ya en el sistema clonado, el comando de la consola de Windows diskpart extend para realizar la expansión proporcional de los datos a lo largo de toda la partición/disco.)

*En este comando también se puede escribir el parámetro opcional -comment "comentario" , cuyo significado es evidente.

*El parámetro -register sirve para "registrar" el disco virtual en la configuración global de VirtualBox, de manera que pueda ser usado por las máquinas virtuales ya existentes. Este último parámetro se podría haber obviado, pero entonces, a continuación del comando anterior, habría sido necesario escribir éste otro: VBoxManage registerimage disk Midisco .Notar que también existe el comando contrario, que "desregistra" el disco: VBoxManage unregisterimage disk Midisco; hay que tener en cuenta, no obstante, que desregistrar un disco no implica el borrado del archivo VDI : si se desea eliminar dicho archivo se ha de hacer "a mano" desde fuera del VirtualBox.

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, similar a tener el DeepFreeze instalado. 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 "desregistrar" el disco -con VBoxManage unregisterimage disk- para poder ejecutar seguidamente el siguiente comando VBoxManage registerimage disk Midisco -type immutable . Lo único que hemos hecho ha sido volver a registrar el discon con el parématro -type indicando que será un disco de sólo lectura. Este tipo de discos tiene además la característica de poder ser utilizado simultáneamente por varias máquinas virtuales, cosa que los discos normales no pueden. Para volver a hacer que se guarden los posibles cambios realizados en ese disco, hay que desregistrar el disco y volverlo a registrar de forma normal (sin el parámetro -type), o bien explícitamente, escribir: VBoxManage registerimage 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, ya que éstas también han de ser registradas, como veremos pronto).

3.-Configuramos la máquina virtual, especificando las características que nos interesan:VBoxManage modifyvm Mimaquina ........ (los puntos suspensivos indican que se han de escribir una serie de parámetros más o menos variados según las características que queremos que tenga la máquina virtual en cuestión).

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..

-ostype {win2k |winxp |win2k3 | winvista | linux24 |linux26 |freebsd | netbsd | openbsd | solaris }

Parámetro necesario que indica el tipo de sistema operativo que se instalará en la máquina virtual. Algunas de las posibilidades son, respectivamente: Windows2000, WindowsXP, Windows2003Server,

Page 8: Manual Virtual Box

WindowsVista,Linux 2.4, Linux 2.6, FreeBSD, NetBSD, OpenBSD, Solaris, etc. Se puede consultar la lista entera de sistemas operativos invitados soportados (y su palabra clave) ejecutando VBoxManage list ostypes

-memory nºMB Parámetro necesario que establece el número de megabytes que tendrá la memoria RAM de la máquina virtual. Recordar que la cantidad que establezcamos se restará directamente de la memoria RAM real disponible para la máquina anfitrión.

-boot1 {none|floppy|dvd|disk|net}-boot2 {none|floppy|dvd|disk|net}-boot3 {none|floppy|dvd|disk|net}-boot4 {none|floppy|dvd|disk|net}

Parámetro necesario que establece el orden de arranque de los diferentes dispositivos de la máquina virtual. El dispositivo establecido por -boot1 será el primero en arrancar, -boot2 será el segundo y así. Se puede ver que dispositivos arrancables son diskettes,dvds, discos y la red.

-hda {none|rutaArchivoVDI}-hdb {none|rutaArchivoVDI}-hdd {none|rutaArchivoVDI}

Parámetro necesario que establece qué discos tendrá la máquina virtual. Aquí se ha de especifica cuál (o cuales) de los archivos VDI previamente creados van a asociarse a esta máquina virtual concreta. Fijarse que podemos asociar hasta tres discos diferentes -primario maestro, primario esclavo, secundario esclavo-. Notar también que el disco secundario maestro (hdc) está reservado para el uso de la unidad de DVD virtual, por lo que no se puede asociar a ningún archivo VDI.

El valor de "none" normalmente se utiliza justo antes de desregistrar de VirtualBox el archivo VDI (con el comando VboxManage unregisterimage) , para así desligar previamente dicho disco duro de la máquina virtual a la que está asociado, y poder efectuar el posterior desregistro sin problemas.

-dvd {none| host:/dev/dispositivo|rutaArchivoISO} Parámetro necesario que establece cuál es el contenido de la unidad (virtual) de DVD de la máquina virtual. Se puede especificar el contenido que tenga en ese momento la propia unidad física real de la máquina anfitriona, o bien un archivo iso, cuya ruta se ha de especificar, relativa a la carpeta $HOME/.VirtualBox.. En este último caso (el utilizar archivos iso como contenido de la unidad virtual de DVD), será necesario ejecutar ANTES del "VBoxManage modifyvm" en cuestión, el siguiente comando: VBoxManage registerimage dvd rutaArchivoISO, para tener previamente registrado el archivo iso, y así poder utilizarlo posteriormente como contenido de la unidad de DVD con la presente opción. Es decir, al igual que los discos VDI, los archivos iso han de estar registrados previamente para que VirtualBox los pueda utilizar (aunque si por el contrario si utilizamos una unidad física real de la máquina anfitriona como unidad virtual de DVD, este paso

Page 9: Manual Virtual Box

no es necesario). También existe el comando VBoxManage unregisterimage dvd rutaArchivoISO

Una limitación actual de VirtualBox -a solventar en futuras versiones- es que sólo se puede tener una sola unidad virtual de DVD: no es posible que la máquina virtual posea dos o más lectoras ópticas.

-vram nºMB Establece el número de megabytes que tendrá la memoria RAM de vídeo de la tarjeta gráfica emulada de la máquina virtual. Hay que decir, no obstante, que la emulación de esta tarjeta es muy básica, sin soporte para aceleración 3D, por lo que la cantidad de memoria de video que se le pueda asignar no es demasiado relevante. Al igual que con la memoria RAM, los megabytes que se asignen a la memoria de video se restarán de la memoria de video real de la máquina anfitriona.

-acpi {on|off} Activa (o no) el soporte ACPI para la máquina virtual. Es importante no cambiar posteriormente el valor que se le dé en un inicio, ya que el sistema operativo instalado en esa máquina virtual puede dejar de funcionar -sobre todo si es un Windows-.

-bioslogofadein {on|off}-bioslogofadeout {on|off}

Determina si el logo de Innotek se verá al iniciar o apagar la máquina virtual, respectivamente

-bioslogodisplaytime nºmilisegundos Si alguna de las dos opciones anteriores está a on, especifica el número de milisegundos que el logo de Innotek estará visible.

-bioslogoimagepath rutaAbsolutaImagen Sustituye el logo de Innotek por otro personalizado. La imagen ha de estar en formato BMP sin compresión, y ha de ser de 256 colores.

-biosbootmenu {disabled| menuonly| messageandmenu}

Especifica si la BIOS permite al usuario seleccionar un dispositivo de arranque temporal. "Menuonly" suprime el mensaje, pero el usuario puede todavía pulsar F12 para seleccionar un dispositivo de arranque.

-name nuevoNombre Cambia el nombre de la máquina virtual, renombrando también los archivos internos de ésta (los XML, etc)

-usb {on|off} Habilita (o no) el controlador de USB de la máquina virtual

-audio {none|null|oss} Habilita -mediante el servidor de sonido OSS- ( o no) el audio en la máquina virtual

-nic1 {none|null|nat|hostif|intnet -intnet1 namered}-nic2 {none|null|nat|hostif|intnet -intnet1 namered}-nic3 {none|null|nat|hostif|intnet -intnet1 namered}-nic4 {none|null|nat|hostif|intnet -intnet1 namered}

Establece, para cada una de las cuatro posibles interfaces de red de la máquina virtual, qué modo de red utilizará: ninguno, desconectado, NAT, interfaz de host o red interna.(ver apartado posterior donde se trata el tema de la configuración de redes).

-cableconnected1 {on|off}-cableconnected2 {on|off}-cableconnected3 {on|off}

Simula la conexión o desconexión del cable de red a la tarjeta de red especificada, como si se hubiera desenchufado físicamente. Útil para resetear

Page 10: Manual Virtual Box

-cableconnected4 {on|off} determinado software de red.

-macaddress1 {auto|<mac>}-macaddress2 {auto|<mac>}-macaddress3 {auto|<mac>}-macaddress4 {auto|<mac>}

Setea la dirección MAC de la tarjeta de red especificada. Por defecto, cada una de estas tarjetas tiene asignada por VirtualBox una dirección MAC aleatoria, en el momento de la creación de la máquina virtual.

-uart1 {off|puertoI/O IRQ}-uart2 {off|puertoI/O IRQ}

Configura los puertos serie de la máquina virtual (ver más adelante)

-uartmode1 {disconnected|<device>}-uartmode1 {disconnected|<device>}

Configura cómo se conecta el puerto serie configurado anteriormente de la máquina virtual a la anfitriona. En <device> se especifica el nombre del dispositivo físico de la máquina anfitriona que se quiere mapear al puerto serie virtual. Se puede poner COM1 o COM2 si la máquina anfitriona es un Windows, o algo como /dev/ttyS0 si es un Linux.

-clipboard {disabled|hosttoguest|guesttohost|bidirectional}

Determina si el portapapeles del sistema operativo invitado será accesible por el sistema operativo anfitrión, viceversa, en ambas direcciones, o no. Se necesita tener instaladas las "Guest Additions" para que funcione.

-snapshotfolder {default| rutaCarpetaSnapshots} Especifica la carpeta donde los snapshots serán guardados

Lo primero que nos va a interesar es instalar un sistema operativo en nuestra máquina virtual. Vamos a suponer que tenemos un archivo iso guardado en nuestra carpeta $HOME/.VirtualBox (si está guardado en otro sitio, simplemente habría que especificar su ruta absoluta), el cual 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 para iniciar la instalación de ese sistema? Pues esto:

VBoxManage registerimage dvd Fedora8.isoVBoxManage modifyvm -ostype linux26 -memory 512 -boot1 dvd -dvd Fedora8.iso -hda Midisco.vdi

4.-Iniciamos la máquina virtual: VBoxManage startvm Mimaquina

Tal como lo hemos venido haciendo, lo que tendría que ocurrir es que aparezca una ventana que representa la pantalla de la máquina virtual, donde se puede visualizar el proceso de instalación de ese sistema Linux en nuestro disco Midisco.vdi. Una vez acabado todo el proceso de instalación, ya tendremos nuestro Linux listo en nuestra máquina virtual; no obstante, puede que en ese momento nos interese cambiar el orden de arranque de los dispositivos para que ya no arranque desde el DVD -es decir, para que no esté cada vez intentando instalar ese Linux- sino que arranque directamente desde el disco duro virtual, el cual ya tiene el sistema instalado. Para hacer esto, simplemente hay que hacer:

VBoxManage unregisterimage dvd Fedora8.iso (opcional, si ya no vamos a usar la imagen iso para nada)VBoxManage modifyvm -boot1 disk -dvd none

Y ya está. Cuando volvamos a encender la máquina virtual, nuestro nuevo y flamante sistema operativo virtual arrancará

Page 11: Manual Virtual Box

4.-Profundizando en las posibilidades de VirtualBox:

AUDIO EN LA MÁQUINA VIRTUAL:

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 para la máquina virtual. No obstante, lo normal será seleccionar el driver de audio presente en la máquina anfitriona que queramos que sea el utilizado por la máquina virtual. En sistemas anfitriones Linux podemos elegir entre el subsistema OSS o ALSA.

DISPOSITIVOS USB EN LA MÁQUINA VIRTUAL:

VirtualBox permite que las máquina virtuales accedan a dispositivos USB enchufados a la máquina anfitriona como si estuvieran enchufados a la propia máquina virtual.. Para ello, VirtualBox preconfigura en la máquina virtual un driver de USB virtual genérico, el cual de entrada no sirve si no se le aplica algún "filtro". Un "filtro" especifica las características concretas del dispositivo USB en cuestión, (como el fabricante, modelo, etc,) que será el que la máquina virtual sea capaz de reconocer.

En el apartado correspondiente del cuadro de "Configuración" en la interfaz gráfica se pueden añadir los filtros necesarios.En concreto, los valores que se han de introducir obligatoriamente son el "ID del Vendedor" y el "ID del producto", los cuales suelen estar escritos en forma de cuatro dígitos hexadecimales, separando por : el primer valor del segundo. Alternativamente, se puede especificar en vez de la pareja de valores anterior, el "Nombre del Fabricante" y el "Nombre del producto".

Para obtener todos estos valores de los dispositivos conectados actualmente a la máquina anfitriona, lo más fácil es escribir: VBoxManage list usbhost . Estos valores también se pueden obtener en Linux escribiendo lsusb y en Windows consultando el "Administrador de dispositivos" (seleccionando por ejemplo "Dispositivo de almacenamiento masivo USB", y dándole a Propiedades->Detalles: lo que aparece detrás de VID_ es el id del vendedor, y lo que aparece detrás de PID_ es el id del producto; el último número largo es el número de serie).

En casos extraños es necesario especificar además de los valores arriba mencionados,el número de serie.

Los filtros también se pueden generar a través de la interfaz de línea de comandos VboxManage, pero resulta un proceso laborioso y lento que no se detallará.

Es importante remarcar que tan pronto el sistema invitado comience a utilizar el dispositivo USB, éste dejará de estar disponible para la máquina anfitriona.

También es posible hacer que un VirtualBox ejecutado remotamente -via VRDP, por ejemplo (ya hablaremos de esto)- detecte los dispositivos USB conectados localmente. Esto es lo que nos podría interesar en las aulas, ya que al estar ejecutando VirtualBox en Valinor, a priori para poder utilizar un dispositivo USB deberíamos de tenerlo enchufado directamente a Valinor, cuando lo que sería realmente útil es tenerlo enchufado a la máquina local. Para lograr esto simplemente deberíamos de seleccionar en el cuadro combinado "Remoto", del apartado de configuración de los dispositivos USB de la interfaz gráfica de VirtualBox., el valor de "Cualquiera" (para que se puedan usar dispositivos USB tanto remotos como locales) ó "Sí" (para que sólo se puedan usar dispositivos USB remotos)

Page 12: Manual Virtual Box

PUERTOS SERIE EN LA MÁQUINA VIRTUAL:

Cuando se habilita (la manera más fácil de hacerlo es en el apartado correspondiente de la interfaz gráfica), el sistema invitado verá un puerto serie estandar de tipo 16450, pero es necesario configurar los siguientes datos extra para que éste pueda comenzar a ser utilizado: el puerto de I/O base y la IRQ. Los valores tradicionales son:

Puerto Puerto de I/O base IRQCOM1 0x3F8 4

COM2 0x2F8 3

COM3 0x3E8 4

COM4 0x2E8 3

Además, hay que especificar si el puerto serie virtual estará "desconectado" o bien si estará conectado a un puerto serie físico de la máquina anfitriona (en Windows, el puerto COM1 y en Linux un dispositivo como /dev/ttyS0), entre otras alternativas..

En el modo de interfaz de línea de comandos se puede habilitar el puerto serie con los parámetros -uart y -uartmode de la orden "VBoxmanage modifyvm", (ver en párrafos anteriores la sintaxis concreta).

LAS "GUEST ADDITIONS". PORTAPAPELES Y DIRECTORIOS COMPARTIDOS ENTRE ANFITRIÓN E INVITADO:

Las "Guest Additions" son drivers de dispositivos y aplicaciones de sistema 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 registrar un archivo ISO especial llamado VboxGuestAdditions.iso que en Windows está en la carpeta de instalación de VirtualBox (C:\Archivos de programa\Innotek VirtualBox) y que en Linux está en la carpeta "additions" dentro de donde se instaló VirtualBox (normalmente, /opt/VirtualBox). Utilizando pues dicho ISO como un CD virtual de la propia máquina invitada, se accederá su contenido, desde donde podremos poner en marcha (en Linux, ejecutando el script /media/cdrom/VBoxLinuxAdditions.run; en Windows clicando en Setup.exe) un asistente que procederá a la instalación de las "guest additions".

Una manera alternativa (más fácil) de instalarlas, es ir directamente en el menú "Devices" de la barra de menús de la ventana de la máquina virtual en cuestión, la cual ya lanza el asistente directamente.

Existen "guest additions" genéricas para todo tipo de sistemas invitados, y unas cuantas específicas para sistemas invitados Windows. Las primeras 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. Para máquinas virtuales Windows, su ventana se podrá redimensionar y la resolución cambiará acordemente.

Resincronizar permanentemente el tiempo de la máquina virtual con el de la máquina anfitriona, sin saltos.

Crear y usar carpetas compartidas entre el sistema anfitrión y el invitado. Es decir, para que desde el sistema invitado se pueda acceder a alguna carpeta concreta alojada en algún disco de la máquina

Page 13: Manual Virtual Box

anfitriona.

Para ello, después de haber instalada la "guest addition" correspondiente, habrá que ejecutar el siguiente comando: VBoxManage sharedfolder add Mimaquina -name nombrecarpetacompartida -hostpath rutacarpetaenanfitrion , 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, y el parámetro -hostpath establece la ruta absoluta real en el sistema anfitrión de la carpeta a compartir. Con esto ya tendremos una carpeta del sistema anfitrión accesible desde el sistema invitado. Esto mismo lo podríamos haber hecho también desde la interfaz gráfica del VirtualBox, 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 en ese momento. En ambos casos, nos aparecerá 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.

Una vez compartida la carpeta del sistema anfitrión tal como se acaba de explicar, para acceder a ella desde el sistema invitado se hace de la siguiente manera: *Si el sistema invitado es Windows, se puede escribir el comando net use z: \\vboxsvr\nombrecarpetacompartida , donde z: puede ser la letra de unidad que se desee y nombrecarpetacompartida es el nombre que se le dio en el parámetro -name del comando "VBoxManage sharedfolder add" visto antes. Haciendo esto, en "MiPC" aparecerá una nueva unidad -en este caso, la Z:- que será la puerta de entrada a la carpeta compartida. Alternativamente, en sistemas invitados Windows también se podría acceder a dicha carpeta compartida yendo a "Mis sitios de red"->Grupo "VirtualBox"->Ordenador "VboxSvr". *Si el sistema invitado es un Linux, se tendrá que escribir el siguiente comando: mount -t vboxsf nombrecarpetacompartida ruta/en/invitado/donde/se/desea/montar

Para ver las carpetas que tiene compartidas la máquina anfitriona se puede ejecutar el comando: VBoxManage list vms

Con VirtualBox -de forma similar a VMWare- 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 ello utiliza imágenes de disco en formato VMDK, en vez de VDI. No obstante, se corre el riesgo de perder datos, y el procedimiento para conseguirlo es bastante complejo, por lo que no se explicará aquí. (Si se desea más información, el procedimiento está detallado en el apartado 9.9 de la Guía del Usuario y siguientes). No obstante, a diferencia de VMWare -en concreto, la utilidad VMWare Converter- lo que no es capaz de hacer VirtualBox es generar un archivo VDI a partir de un sistema previamente instalado en una partición de la máquina anfitriona.

Poder utilizar el portapapeles compartido entre el sistema anfitrión y el invitado.

Para ello, una vez instalada la "guest addition" correspondiente, habrá que ejecutar el siguiente comando:VBoxManage modifyvm -clipboard bidirectional

Y las segundas nos van a permitir:

Logearnos automáticamente (es decir, sin que Windows nos pida contraseña).

Para ello, será necesario, además de instalar la "guest addition" correspondiente, copiar el archivo VboxGINA.dll de la carpeta "Additions" del iso a System32 y crear en el registro de Windows la entrada: HKLM\Software\Microsoft\Windows NT\CurrentVersion\WinLogon\GinaDLL con el valor "VboxGINA.dll".

Finalmente, para establecer el usuari/contraseña/dominio por defecto, habrá que ejecutar el siguiente

Page 14: Manual Virtual Box

comando: VBoxManage controlvm Mimaquina setcredentials "Pepito" "contraseña" "dominio" .Esto último se tendrá que hacer cada vez que se ponga en marcha la máquina virtual, ya que estas credenciales no se guardan en ningún sitio.

Suprimir el fondo del escritorio del sistema Windows invitado, permitiendo así ejecutar ventanas del sistema invitado sin distinguirlas de las ventanas del sistema anfitrión.

Para habilitar este efecto, 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.

Las Guest Additions se pueden actualizar con otro iso más nuevo, volviendo a ejecutar el asistente. Para más información, remito a la Guía de Usuario del VirtualBox.

INSTANTÁNEAS ("SNAPSHOTS") DE LA MÁQUINA VIRTUAL:

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.

Cada snapshot se guarda en forma de un archivo de nombre {IdSnapshot}.vdi, en una carpeta llamada "Snapshots", dentro de la carpeta particular para cada máquina virtual existente, a no ser que se haya especificado otra cosa mediante el parámetro -snapshotfolder de "VBoxManage modifyvm", así: VBoxManage modifyvm -snapshotfolder {default|rutaCarpetaSnapshots}; ( o bien, dentro de la interfaz gráfica, en la pestaña "Avanzado" del apartado "General" del cuadro de configuración)..

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).

Si en el ítem "Estado actual" de la pestaña "Instantáneas" del apartado "General" de la interfaz gráfica de VirtualBox aparece con la coletilla de "(modificado)" significa que ha habido cambios desde el último snapshot. Si en dicho ítem apareciera la coletilla de "(guardado)", significa que el estado actual

Page 15: Manual Virtual Box

se ha guardado.

*Para volver a un snapshot previamente creado, desde la interfaz gráfica del VirtualBox, existen dos posibilidades:

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.

Clicar en el item “Estado actual” y seleccionar “Descartar instantánea y estado actual”. Esto eliminará la última instantánea y llevará la máquina virtual al estado de la instantánea inmediatemante 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").

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ó.

Para gestionar las instantáneas desde la interfaz de línea de comandos, se pueden utilizar las siguientes órdenes:

VBoxManage snapshot Mimaquinatake Nombresnapshot -desc descripcion

Crea una snapshot de la máquina virtual especificada

VBoxManage snapshot Mimaquinadiscardcurrent {-state| -all}

Revierte el estado de la máquina virtual al snapshot más reciente (si se especifica -state), o descarta dicha última snapshot y revierte dicho estado al snapshot justo anterior (si se especifica -all). Es decir, el primer caso sería equivalente al botón "Descartar estado actual" de la interfaz gráfica, y el segundo caso sería equivalente al botón "Descartar instantánea y estado actual".

VBoxManage snapshot Mimaquinadiscard Nombresnapshot

Descarta (elimina) una snapshot concreta.

Page 16: Manual Virtual Box

VBoxManage snapshot Mimaquina showvminfo Nombresnapshot

Muestra información sobre una snapshot concreta

Existe la posibilidad de crear un disco virtual en modo “writethrough” añadiendo el parámetro adecuado (-type) al comando "VBoxManage createvdi", así: VBoxManage createvdi -filename Midisco -size tamaño_en_Mb -static -register -type writethrough , o bien, si el disco se creó en su momento de forma normal, registrándolo ahora como "writethrough" con el comando VBoxManage registerimage disk Midisco -type writethrough . Este modo hace que ese disco no se vea afectado por snapshots y por lo tanto se puedan guardar en él los datos que queramos mantener siempre, ya que no tendremos posibilidad de volver a un estado anterior donde éstos se pudieran haberse perdido.

Una utilidad práctica de esto es por ejemplo tener registrado un disco duro de forma normal, donde tendremos instalado el sistema invitado que permitirá el uso de snapshots, y tener registrado además un segundo disco virtual de tipo write-through donde se guardarían los documentos y archivos a buen recaudo de posibles descartes de instantáneas.

RED EN LA MÁQUINA VIRTUAL:

Se pueden configurar hasta 4 tarjetas Ethernet en la máquina virtual, las cuales son simulaciones del modelo AMD PCNet, ampliamente soportado de serie por todos los sistemas operativos, excepto el Vista.

El driver de la tarjeta de red para máquinas invitadas Vista se ha de instalar "manualmente". Para ello, lo que hay que hacer es simplemente instalar las "Guest Additions", ya que el driver viene incluido allí.

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", "Interfaz anfitrión", "Red interna"), y pudiendo asignar además una MAC aleatoria y definir si en ese momento el cable de red está desconectado o no.

Cuando se habilitan las tarjetas de red en la interfaz gráfica, el modo NAT es el seleccionado por defecto para éstas. 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:

*El invitado podrá conectarse al mundo exterior utilizando la red de la máquina anfitriona *El mundo exterior se podrá conectar a los servicios que ofrezca la máquina virtual que se hayan decidido (siempre y cuando se haya hecho previamente una redirección de puertos, ahora lo veremos).

Para hacer lo propio con la interfaz de comandos, se puede escribir: VBoxManage modifyvm Mimaquina -nic1 nat -macaddress1 auto -cableconnected1 on

El modo "Interfaz anfitrión" crea una tarjeta de red por software en la máquina anfitrión -es decir, que la máquina anfitrión, además de tener el dispositivo "eth0" (si es un Linux) , tendrá el dispositivo "vbox0"-, de tal manera que la máquina anfitriona utilizará dicha nueva tarjeta para comunicarse con la tarjeta correspondiente habilitada en la máquina virtual, como si tuvieran un cable entre ellas. Este modo se utiliza sobre todo para temas de bridging y routing avanzado que no estudiaremos, ni necesitaremos. No obstante, si se desea investigar, en http://www.esdebian.org/article.php/virtual_box/print se explica cómo configurar el dispositivo vbox0 para máquinas anfitrionas Linux de la familia Debian.

El modo "Red interna" es similar al anterior, pero en este modo la red que es visible desde la máquina virtual sólo está formada por las otras máquinas virtuales que pertenecen 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

Page 17: Manual Virtual Box

seguridad y la velocidad ya que se crea una red en la que sólo son visibles entre sí las máquinas virtuales. Ya que este tipo de modo de red no deja de ser una manera de configurar una red privada, cada máquina virtual deberá tener una IP fija y la puerta de enlace deberá ser la IP de la máquina anfitriona respectiva; evidentemente, el cómo se den estos valores dependerá del sistema invitado..

En NAT, la máquina virtual se conecta a "un router", que es el subsistema de red de VirtualBox, que mapea transparentemente el tráfico de salida y de entrada de dicha máquina virtual. La desventaja del NAT es, al igual que en una red privada detrás de un router, la máquina virtual es invisible e inalcanzable desde la red exterior, por lo que no se puede poner en marcha un servidor a no ser que se haga redireccionamientos de puertos.Esto significa que VirtualBox escuche en puertos determinados en el host y reenvíe todos los paquetes que lleguen a él al sistema invitado en los puertos usados por los servicios que se desea tener a la escucha en la máquina virtual . Para una aplicación del host o otras máquinas de la red, parecerá que el servicios está realmente funcionando en el host (lo que significa que no se podrá hacer funcionando el mismo servicio en el mismo puerto en el host). Por ejemplo, si quisiéramos tener un servidor SSH (funcionando en el puerto 22 de la máquina virtual), deberíamos de escribir

VBoxManage setextradata "Linux Guest" "VboxInternal/Devices/pcnet/0/LUN#0/Config/guestssh/Protocol" TCP VBoxManage setextradata "Linux Guest" "VboxInternal/Devices/pcnet/0/LUN#0/Config/guestssh/GuestPort" 22VBoxManage setextradata "Linux Guest" "VboxInternal/Devices/pcnet/0/LUN#0/Config/guestssh/HostPort" 2222

con lo que el tráfico dirigido al puerto 2222 del sistema anfitrión será redireccionado al servidor SSH de la máquina virtual. El nombre guestssh es un nombre arbitrario para una configuración de redireccionamiento determinada. Para borrar dicha configuración, basta escribir las mismas líneas pero sin escribir los valores finales.

Simplemente por curiosidad: la máquina virtual recibe su dirección IP y su configuración de red a partir de un servidor DHCP interno que incorpora VirtualBox. La primera tarjeta tendrá una IP del tipo 10.0.2.0, la segunda 10.0.3.0, etc. Los paquetes de red salen del sistema operativo invitado, pasan por el motor NAT de VirtualBox y se reenvían al sistema operativo anfitrión: para una aplicación de éste, o de otra computadora de la misma red que la del anfitrión, parecerá que los datos son enviados por la aplicación VirtualBox de la máquina anfitriona., utilizando la IP de la máquina anfitriona. VirtualBox estará escuchando las respuestas de los paquetes enviados y los reenviará a la red privada de la máquina invitada.

UTILIZAR UN SERVIDOR VRDP PARA EJECUTAR MÁQUINAS VIRTUALES REMOTAMENTE:

Hasta ahora nos hemos conectado siempre via SSH al servidor (Valinor) y hemos ejecutado desde allí la máquina virtual elegida, pero visualizándola y controlándola desde la máquina local. Existe, no obstante, otra manera bastante más optimizada, rápida y versátil para esto mismo, para ejecutar una máquina virtual en un servidor remoto, desde una máquina cliente 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:

En la máquina local (cliente) Un cliente RDP.

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

Page 18: Manual Virtual Box

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 esta máquina, podemos recurrir, si su sistema operativo es Windows, a la utilidad mstsc.exe(accesible dentro del menú Inicio->Programas->Accesorios->Comunicaciones-> "Conexión a Escritorio Remoto" ). Si el sistema operativo es Linux, un cliente RDP que podemos usar es 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.).

En la máquina anfitriona remota (servidor)

El servidor RDP de VirtualBox (el servidor VBoxVRDP).

É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).

Tal como se acaba de explicar, VboxVRDP no produce salida visible en la máquina donde se está ejecutando: sólo actúa de servidor que permite que la ventana de la máquina virtual se vea remotamente en cualquier computadora cliente, posibilitando que se pueda controlar la máquina virtual desde allí, como si dicha máquina virtual estuviera funcionando en la propia computadora cliente.

Pasos para poder utilizar esta estructura cliente-servidor:

1.-Lo primero de todo es entrar via SSH, desde nuestra computadora cliente, en el ordenador que hará de servidor VRDP.

2.-Una vez allí dentro, si se han de crear/modificar máquinas virtuales o archivos VDI, se hará como siempre, con el comando VBoxManage , sin ninguna novedad.

3.-El único paso diferente es, una vez ya se tiene creada y configurada la máquina virtual, ponerla en marcha y visualizarla. Para ello, hay que hacer dos cosas: 3.1.-Habilitar explícitamente para la máquina virtual deseada la posibilidad de utilizarla junto con un servidor VRDP. Esto se puede hacer en el apartado "Pantalla remota" de la interfaz gráfica, (donde también se puede especificar entre otras cosas el número de puerto en el que escuchará el servidor VRDP) o bien ejecutando el comando: VBoxManage modifyvm MimaquinaVista -vrdp on -vrdpport {default|nºpuerto}

3.2.-Poner en marcha la máquina virtual, que en este caso se ha de hacer así: VBoxVRDP -startvm Vista

Page 19: Manual Virtual Box

Recordemos que en la configuración de los dispositivos USB se podía especificar (en el cuadro de definición de las reglas de los filtros, cuadro combinado "Remoto") si se quería que dicho dispositivo se pudiera conectar en la computadora cliente y que la máquina virtual funcionando en el servidor lo pudiera detectar de forma transparente.

No obstante, en el servidor Valinor no existe el ejecutable VBoxVRDP, con lo que es imposible probar esta posibilidad. Esto es debido a que VirtualBox tiene dos versiones: una licenciada bajo GPL y otra -cuyo nombre es OSE- licenciada bajo una licencia propia (la PUEL), que permite el uso gratuito del programa con fines no lucrativos, pero que no es libre. En Valinor está instalada la primera, la versión no privativa, la cual carece de unas cuantas características. Entre ellas, la existencia del servidor RDP y el soporte a dispositivos USB (locales y remotos).

EL PROBLEMA DE ACCEDER A LA VEZ CON VARIOS USUARIOS A UNA MAQUINA VIRTUAL:

Ya que no nos es posible utilizar VBoxVRDP, para poder utilizar el VirtualBox instalado en Valinor desde las aulas, deberemos conectarnos a él via SSH y ejecutarlo de esta manera. La idea es que desde los diferentes ordenadores del aula (tampoco todos, sólo tres o cuatro como mucho, ya que la memoria RAM de Valinor no da para más de cuatro máquinas virtuales corriendo a la vez) los alumnos accedan simultáneamente a Valinor y ejecuten a la vez una máquina virtual previamente creada (guardada en una carpeta donde ellos tengan permisos de lectura y ejecución).

Si probamos de hacer esto, nos encontraremos con una cosa curiosa. El primer ordenador del aula que conecte via SSH a Valinor podrá poner en marcha y ver sin problemas la máquina virtual. Pero el segundo ordenador que se haya conectado via SSH a Valinor, al arrancar la interfaz gráfica de VirtualBox, verá como el botón de "Iniciar" está deshabilitado...¡así que sólo se puede arrancar y visualizar la máquina virtual desde un sólo ordenador a la vez!

Pensando un poco, esto es muy lógico: pensemos que las máquinas virtuales son precisamente eso: máquinas, pero virtuales. Si uno apreta el botón de encendido para poner en marcha una máquina, es imposible que otra persona pulse "otro" botón de encendido de la misma máquina...máquina sólo hay una (con lo que esto conlleva: un único disco duro, etc) , y si está funcionando en ese momento, habrá que esperarse a que se apague para que sea utilizada independientemente por otra persona.

Entonces, ¿cómo podemos conseguir que varios ordenadores a la vez ejecuten el mismo sistema? Una idea sería crear varias máquinas virtuales (cada una con su disco virtual propio independiente) y que cada una de ellas fuera ejecutada independientemente por un alumno diferente. Para ello, pues, tendremos que crear tantos discos virtuales como máquinas virtuales queramos, y asignar cada uno de éstos a cada una de éstas.Debido a la limitación ya comentada de la memoria RAM de Valinor, con cuatro máquinas virtuales diferentes ya habría suficiente.

La creación de las máquinas virtuales es inmediata; el problema es la creación de los discos virtuales: ¿hay que realizar una instalación completa desde cero del sistema operativo invitado cada vez que se quiera generar un nuevo disco virtual? NO. Mediante un comando de VirtualBox podemos realizar tantas copias exactas de un disco virtual como queramos rápida y cómodamente, de tal manera que a la hora de crear una nueva máquina virtual, asignemos como su disco duro virtual el nuevo disco "clonado". El comando que permite clonar un disco duro es:

VBoxManage clonevdi RutaarchivoVDIactual RutaarchivoVDInuevo

(si en vez de la ruta completa, sólo se escribe los nombres de los archivos VDI actual y nuevo, se tomará como la ruta por defecto /home/usuario/.VirtualBox/VDI). Técnicamente, lo que hace este comando es duplicar un archivo de un disco virtual registrado en otro archivo distinto, pero eso sí, sin incluir los posibles snapshots que puedan haberse configurado en la máquina original (ya que por defecto éstos no se guardan dentro del archivo vdi, a no ser que lo hayamos hecho manualmente nosotros previamente). Este nuevo disco puede tener muchos usos: puede ser transferido a otro sistema anfitrión o bien registrado de

Page 20: Manual Virtual Box

nuevo por VirtualBox como otro disco diferente del anterior, por ejemplo.

Así pues, la solución sería la siguiente: a partir de un disco duro previamente configurado, crear tres o cuatro clones del disco y almacenarlos todos en una localización centralizada a la que tuvieran acceso los alumnos. Tres o cuatro de éstos, por su parte, podrían crear su propia máquina virtual independiente en su propia carpeta personal, cada uno de ellas asociada con cada uno de dichos discos. Y problema solucionado.

No obstante, este método tiene un gran inconveniente. Se necesita mucho disco duro en Valinor para almacenar tantos discos virtuales. Una instalación básica de Windows Vista, por ejemplo, requiere del orden de 9GB, por lo que con sólo cuatro discos iguales o prácticamente iguales ya se ocuparían cerca de 40GB. Si a esto sumamos que Valinor tiene definidas una serie de cuotas de disco para los usuarios y grupos ("alumnos", "esi", "asi") no administradores , nos encontramos con que nos es imposible llenar, si no somos administradores, ese "almacén" de discos virtuales para uso de los diferentes alumnos en clase sin excedernos del límite de cuota..¿Qué podemos hacer entonces?

El software Qemu permite crear un disco duro virtual basándose en otro. Este segundo disco tiene un tamaño inicial de 0 bytes y crece a medida que se hacen cambios respecto al disco original inicial. Esto es ideal para que en Valinor pueda haber un disco maestro (de sólo lectura) y que los alumnos tengan su propio disco virtual, que estará basado en el disco maestro. Así pues, las máquinas virtuales de los alumnos simplemente tendrán que estar asociada a uno de éstos discos "basados" en el maestro, y a medida que los alumnos vayan haciendo modificaciones independientes en ese (su) disco particular, el tamaño de éste irá creciendo, pero sólo se guardarán en éste los cambios respecto el disco original, con lo que el gasto de espacio almacenado se reduce drásticamente. En Qemu a este sistema se llama "base images", y en VirtualPC -el software de emulación de Microsoft- se llama "differencing disks".

Desgraciadamente, VirtualBox no es capaz (todavía) de implementar esta técnica...pero se puede realizar un apaño que para lo que nos interesa nos puede venir bien. El truco es hacer que el disco duro "base" (o "maestro", o como se quiera llamar), sea de tipo "inmutable". Ya se comentó la posibilidad en las primeras páginas de este manual; cito textualmente: "Existe la posibilidad de hacer el disco virtual de "sólo lectura" al siguiente reinicio.(...). 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 "desregistrar" el disco -con VBoxManage unregisterimage disk- para poder ejecutar seguidamente el siguiente comando VBoxManage registerimage disk Midisco -type immutable . Lo único que hemos hecho ha sido volver a registrar el discon con el parématro -type indicando que será un disco de sólo lectura. Este tipo de discos tiene además la característica de poder ser utilizado simultáneamente por varias máquinas virtuales, cosa que los discos normales no pueden. (...)". Es decir, si nuestro disco base es de tipo "inmutable" matamos dos pájaros de un tiro: es de sólo lectura y además – y sobretodo- es capaz de ser accedido simultáneamente por varias máquinas virtuales. ¿Cuál es el problema? Que si en las diferentes máquinas virtuales que lo utilizan se intenta modificar/añadir/eliminar un dato y grabar esa modificación en dicho disco, al apagar esa máquina virtual será como si no hubiera ocurrido nada, porque al volver a arrancar la máquina los cambios no se habrán guardado en ningún sitio: siempre tendremos otra vez el disco base intacto. Es decir, no se graba ningún archivo con las diferencias entre el disco base y los posibles cambios que el usuario haya podido hacer. Se supone que esta funcionalidad en próximas versiones del programa se subsanará. No obstante, para nuestros propósitos docentes de mostrar la apariencia y el funcionamiento por encima de diferentes sistemas operativos, este hecho no nos importa demasiado, con lo que ya hemos dado con la solución a nuestro problema del acceso simultáneo a un mismo disco.

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.

En conclusión: daremos permisos de lectura y ejecución al árbol entero de carpetas de Valinor dentro del cual esté almacenado el disco virtual maestro inmutable (permiso de lectura para poder leer un directorio y

Page 21: Manual Virtual Box

ver qué ficheros contiene y permiso de ejecución para poder entrar en él), daremos permisos de lectura y escritura al propio fichero VDI que representa el disco virtual maestro inmutable (permiso de lectura para poder acceder a los contenidos del fichero y permiso de escritura porque si no en el arranque de la imagen ésta se queda colgada) , y los alumnos lo que deberán de hacer será ejecutar VirtualBox y crear en su carpeta personal de Valinor una máquina virtual que utilice ese disco, único para todas. Y ya está: a partir de entonces cada alumno tendrá en su carpeta personal la máquina virtual que podrá poner en marcha cada vez que ejecute VirtualBox.

Es importante hacer notar que cada alumno ha de iniciar una sesión SSH a Valinor con un usuario diferente, porque si no, cuando desde un segundo ordenador se quiera visualizar una máquina virtual, ésta aparecerá en la pantalla del primer ordenador cliente desde donde se conectó a Valinor.

OTROS COMANDOS ÚTILES:

VBoxManage controlvm Mimaquina {pause|resume|reset|poweroff|savestate}

"Pause" suspende temporalmente la máquina virtual, pintando su pantalla de gris. "Resume" deshace un "pause" previo. "Reset" apaga bruscamente la máquina, con lo que el estado de la máquina virtual no se graba y se pueden perder datos."Poweroff" hace lo mismo que si desconectáramos el cable de corriente de la máquina: igual que en "reset", el estado de la máquina virtual no se graba y se pueden perder datos. "Savestate" graba el estado actual de la máquina virtual y la para (procedimiento recomendado)

VBoxManage controlvm Mimaquina dvdattach {none|rutaArchivo.iso|host:dispositivo}

Inserta una imagen iso de DVD, o bien conecta con una unidad de DVD de la máquina anfitriona, al vuelo (mientras la máquina virtual está funcionando). A diferencia de "VBoxManage modifyvm", no es necesario registrar el archivo iso previamente.

Se pueden ver las unidades encontradas en la máquina anfitriona y los nombres que usa VirtualBox para acceder a ellas con el comando VBoxManage list hostdvds .

VBoxManage controlvm Mimaquina { usbattach dirección| usbdettach dirección }

Hace visible los dispositivos USB de la máquina anfitriona en la máquina virtual al vuelo, sin necesidad de haber creado previamente los filtros correspondientes.

La "dirección" del dispositivo se puede obtener a partir de VBoxManage list usbhost.

VBoxManage usbfilter {add|modify|remove}

Comando utilizado para gestionar los filtros de dispositivos USB. Referirse a la referencia del manual de VirtualBox (ver la Guia del Usuario, p.84 y p.97) ya que contiene multitud de parámetros adicionales. Es más cómodo utilizar la interfaz gráfica.

VBoxManage controlvm Mimaquina setlinkstate1 {on|off} -ó setlinkstate2

Conecta o desconecta los cables de las redes virtuales de sus respectivas tarjetas de red.

Page 22: Manual Virtual Box

ó setlinkstate3, etc-

VBoxManage list {vms|ostypes|hostdvds|hostifs|hdds|dvds| usbhost|usbfilters| systemproperties}

vms: muestra información sobre las máquina virtuales registradas, incluyendo su configuración y los archivos asociados con éstas.ostypes:lista los sistemes operativos invitados conocidos por VirtualBox, junto con su identificador, necesario para usarlo con el comando "VBoxManage modifyvm".hostdvds:lista las unidades de DVD de la máquina anfitriona y el nombre usado para acceder a ellas desde VirtualBox.hostifs:lista las interfaces de red de la máquina anfitriona y el nombre usado para acceder a ellas desde VirtualBox (NO se utiliza con NAT)hdds:muestra información sobre los discos virtuales registrados, incluyendo su configuración y los archivos asociados con éstos.dvds:muestra información sobre las imágenes iso registradas, incluyendo su configuración.usbhost: muestra información sobre los dispositivos USB conectados a la máquina anfitriona, útil para la construcción posterior de filtros.usbfilters: muestra los filtros registrados actualmente por VirtualBox (es decir, los filtros para los dispositivos que pueden ser accesibles por las máquinas virtuales) systemproperties: muestra valores globales de configuración de VirtualBox, tal como la memoria RAM y tamaño de disco duro mínimo y máximo de la máquina anfitriona disponible, configuraciones de carpeta,etc.

VBoxManage showvminfo Mimaquina [-details]

Muestra información sobre una máquina virtual concreta. Es la misma información que muestra VBoxManage list vms para todas las máquinas virtuales.

VBoxManage showvdiinfo Midisco Muestra información sobre la imagen de disco virtual VDI especificada; mayormente su tamaño, su tamaño en disco, su tipo y las máquinas virtuales que lo usan.

VBoxManage setpropertyvdifolder {default|rutaArchivosVDI}machinefolder {default|rutaMaquinas}

Especifica la ruta de la carpeta donde se alojarán los archivos VDI, y la ruta de la carpeta donde se alojarán los archivos que representan las distintas máquinas virtuales

MISCELANEA:

VirtualBox instalado en un sistema anfitrión Linux accede a los dispositivos USB a través del sistema de ficheros usbfs. Está documentado en diversos foros que a veces tiene problemas a la hora de utilizar los puertos USB de la máquina virtual (que ya sabemos que es un mapeo de los puertos USB de la máquina anfitriona). En esos casos, se recomienda editar el archivo de texto /etc/udev/rules.d/40-permissions.rules y cambiar la línea SUBSYSTEM=="usb_device", MODE="0664" por ésta otra: SUBSYSTEM=="usb_device", MODE="0666" (dicho de otra manera, se ha de tener acceso de lectura y escritura al sistema de ficheros usbfs). Otra manera de conseguir acceso de lectura y escritura a este sistema

Page 23: Manual Virtual Box

de ficheros -y por tanto, solucionar el problema- , es añadir el usuario que esté utilizando VirtualBox al grupo de usuario "usbusers".

VirtualBox instalado en un sistema anfitrión Linux crea el archivo de texto /etc/vbox/vbox.cfg, el cual contiene una única línea: INSTALL_DIR="usr/lib/virtualbox" , cuyo significado es bastante evidente: establece la carpeta de instalación del programa. También existirán enlaces simbólicos a los ejecutables VirtualBox y VBoxManage en /usr/bin.

VirtualBox instalado en un sistema anfitrión Linux depende de los siguientes paquetes: Qt >3.3.5 y SDL >1.2.7 para funcionar, aunque de hecho, estos paquetes sólo son usados por su interfaz gráfica.

Virtualbox instalado en un sistema anfitrión Linux incorpora un módulo propio para el kernel (/dev/ vboxdrv), imprescindible para el correcto funcionamiento del programa. El paquete de instalación del programa ya trae unos cuantos módulos precompilados adecuados a la mayoría de los kernels, pero si detecta que no hay ninguno que pueda venir bien, entonces compilará el módulo en ese momento (se puede observar el proceso en /var/log/vbox-install.log). Cuando ya se tenga el módulo correcto (ya sea compilándose in situ o con unos de los precompilados), a partir de entonces éste se cargará. siempre al arranque del sistema anfitrión mediante el script /etc/init.d/vboxdrv.

VirtualBox instalado en un sistema anfitrión Linux puede dar un error en arrancar. Comprobar que esté el módulo vboxdrv cargado (con el comando lsmod), y si no lo está, cargarlo con el comando modprobe vboxdrv.Además, hay que hacer que el usuario que ejecutará el VirtualBox tenga permisos a /dev/vboxdrv.

Todos los usuarios en un sistema anfitrión Linux que necesiten ejecutar VirtualBox, deberán pertenecer al grupo de usuarios “vboxusers”, creado durante la instalación de éste (para agregar un usuario a un grupo determinado, recordar que simplemente hay que añadir su nombre a la línea correspondiente del fichero /etc/group).Este hecho es así por el archivo /etc/udev/60-vboxdrv.rules, donde se especifica entre otras cosas que el grupo vboxusers es el que tiene permisos de lectura-escritura sobre el nodo de dispositivo del módulo /dev/vboxdrv (aspecto necesario para el correcto funcionamiento del programa). Si pertenecer al grupo "vboxusers" no es suficiente para que VirtualBox funcione correctamente con un usuario concreto, se puede solucionar marcando a ese usuario como propietario de /dev/vboxdrv (con el comando chown), y ejecutar seguidamente la orden /etc/init.d/vboxdrv restart..

Si alguna vez el VirtualBox se queda colgado, o no hay manera de que alguna máquina virtual inicie correctamente debido a un apagado brusco anterior o algún inicio corrupto de máquinas virtuales ejecutadas anteriormente,etc, seguramente es porque todavía queda en el sistema anfitrión alguna instancia zombie del proceso motor de VirtualBox que gestiona y controla la creación y ejecución de las máquinas virtuales, el cual se llama VBoxSVC. Hay que matar dicho proceso. Si el sistema anfitrión es un Windows, para ello simplemente hay que ir al "Administrador de tareas" e intentar finalizar la tarea. En Linux, basta con utilizar el comando kill -9 PID, donde el PID del proceso lo podemos obtener previamente con el comando ps -x (el parámetro -x indica que se muestren los procesos que no están asociados a ningún terminal, ya que VBoxSVC NO es visible por pantalla.