VirtualBox VM – Compartir directorios con Linux huésped

Veremos como tomar un directorio ubicado en el sistema operativo anfitrión y compartir su contenido con un sistema operativo Linux instalado virtualmente como huésped en VirtualBox.

Requisitos:

  • Tener instalado Oracle VM VirtualBox. Hasta la fecha actual (01/06/2011) la última versión disponible es la 4.0.8.
  • Tener instalado un sistema operativo huésped Linux.
  • Tener instalado VirtualBox Guest Additions en el huésped.

El sistema operativo anfitrión utilizado en este tutorial es Windows, a continuación se explica paso a paso como montar desde la maquina virtual un directorio de ruta “C:\Shared” ubicado en Windows 7 que será accesible en una distribución de Linux Ubuntu 11.04.

Notas:
* En el caso del sistema anfitrión los pasos son los mismos para otras versiones de Windows  u otros sistemas operativos, y también en el caso del sistema huésped los pasos son los mismos para otras distribuciones de Linux.
* Eventualmente algunas acciones requerirán privilegios de super usuario, en este tutorial al estar trabajando con Ubuntu se utilizará sudo para obtener estos privilegios. La metodología puede variar entre diferentes distribuciones.

Montaje de un directorio compartido


Antes que nada tenemos que crear el directorio “C:\Shared” en Windows, este será el directorio que compartiremos y servirá de ejemplo.

La idea es compartir un directorio que se encuentra físicamente alojado en el sistema anfitrión montándolo como un sistema de archivos en el Linux huésped. Veremos primero el montaje manual, y por ultimo el montaje automático.

Montaje manual

Para el montaje manual iniciaremos la maquina virtual que tiene el Linux huésped, ya que necesitaremos ejecutar algunos comandos en este.

1-  En VirtualBox vamos al menú “Devices” y seleccionamos “Shared Folders….

2-  Desde aquí podemos administrar los directorios que estamos interesados en compartir. Podemos notar que hay dos tipos de directorios:

  • “Machine Folders”: directorios que quedaran almacenados de forma permanente en la maquina virtual. Persistirán incluso luego de terminar la maquina virtual.
  • “Transient Folders”: directorios de uso temporal en la maquina virtual.

En este caso no hay ninguno de ellos, lo que hacemos es crear uno nuevo con el botón de agregar que tenemos a la derecha.


3- En esta nueva ventana podemos elegir que directorio será compartido.  Donde dice “Folder Path:” le introducimos el nombre del directorio que tenemos creado en Windows “C:\Shared, en “Folder Name:” le introducimos Shared“. También tenemos 3 casillas de opciones para seleccionar:

  • “Read-Only“: declara el directorio a montar como de solo lectura, por lo que desde el sistema operativo huésped no podremos modificar el contenido del directorio al no tener permisos de escritura.
  • Auto-Mount“: con esta opción la VirtualBox Guest Additions tratara de montar el directorio compartido en el momento que se inicia el sistema huésped. Mas detalles de esta opción se verán mas adelante.
  • Make Permanent“: con esta opción el directorio será de tipo permanente, de lo contrario seria temporal.

La única opción que seleccionamos es “Make Permanent” y aceptamos en “Ok“.

4- Deberíamos de estar viendo nuestro nuevo directorio en la lista. Aquí no necesitamos hacer nada mas, así que aceptamos en “Ok” para salir.

5- Necesitamos crear un directorio en el Linux huésped con el cual se montara el directorio compartido. A través de este directorio que crearemos podremos ver el contenido del directorio compartido. Abrimos la terminal, introducimos y ejecutamos:

mkdir Escritorio/Shared
user@PC:~$ mkdir Escritorio/Shared
user@PC:~$

Así tendremos un nuevo directorio llamado “Shared” en el escritorio del Linux huésped, eh elegido esa ubicación y ese nombre solo por conveniencia, pude ubicarse en otra parte y tener otro nombre.

6- Para realizar el montaje del sistema de archivos propiamente dicho, tenemos la sintaxis del siguiente comando:

mount [-t <tipo>] [-o <opciones>] <dispositivo> <punto de montaje>

Donde:

  • [-t <tipo>]: el tipo de sistema de archivos, debe ser vboxsf.
  • [-o <opciones>]: opciones de montaje, no utilizaremos ninguna.
  • <dispositivo>: es el nombre del directorio que se montara. Anteriormente en el paso Nro. 3 cuando agregamos nuestro directorio compartido para montar le  llamamos “Shared” (por conveniencia igual que el nombre del directorio al que corresponde: “C:\Shared”).
  • <punto de montaje>: es el directorio donde se realizara el montaje. Corresponde al directorio creado en el paso Nro. 5 de ruta “/home/User/Escritorio/Shared” (donde “User” es el user actual).

Introducimos y ejecutamos con privilegios de super usuario:

sudo mount -t vboxsf Shared /home/User/Escritorio/Shared
user@PC:~$ sudo mount -t vboxsf Shared /home/user/Escritorio/Shared
[sudo] password for user:
user@PC:~$

7- Si no recibimos ningún mensaje de error, el montaje ah sido realizado con éxito. Para verificar podemos introducir archivos en “C:\Shared” y comprobar que estén dentro de “/home/User/Escritorio/Shared“, o viceversa ya que tenemos permisos de escritura en el huésped.

– – – – – – – – – – – – – – – – – –

Un inconveniente es que los directorios compartidos aunque sean de tipo “permamente” quedan guardados en la maquina virtual pero el proceso de montaje se tiene que realizar cada ves que se inicia el Linux huésped. La solución es definir este montaje en el archivo “/etc/fstab” (tabla de sistemas de ficheros) para que sea realizado siempre en el inicio del sistema. Podemos llamar también a esto un montaje automático (aunque no sea el realizado por la VirtualBox), a continuación se explican dos opciones que tenemos para lograr esto:

Opción 1 – La mas larga y explicativa, ideal para novatos.

a. Utilizamos algún editor de texto como nano para abrir el archivo “/etc/fstab”, teniendo privilegios de super usuario de lo contrario luego no podríamos guardar los cambios.

sudo nano /etc/fstab

b. Al final del contenido de este archivo tenemos que agregar  una línea con la siguiente sintaxis para definir el montaje de nuestro directorio compartido:

<dispositivo> <punto de montaje> <tipo> <opciones> <dump> <fschk>

Donde:

  • <dispositivo>, <punto de montaje> y <tipo> ya se explicaron anteriormente.
  • <opciones>: opciones que se tienen en cuenta al montar el sistema de archivos, utilizaremos defaults.
  • <dump>: es un valor que indica si el sistema de archivos debe ser respaldado, utilizaremos 0 que significa que no.
  • <fschk>: es un valor que indica en que orden deben comprobarse los sistemas de archivos, utilizaremos 0 que significa no comprobarlo.

Añadimos la línea:

Shared /home/User/Escritorio/Shared vboxsf defaults 0 0
# /etc/fstab: static file system information.
#
# Use ‘blkid -o value -s UUID’ to print the universally unique identifier
# for a device; this may be used with UUID= as a more robust way to name
# devices that works even if disks are added and removed. See fstab(5).
#
# <file system> <mount point>   <type>  <options>       <dump>  <pass>
# proc /proc proc nodev,noexec,nosuid 0 0
# / was on /dev/sda1 during installation
UUID=c2e7d965-a40a-4f61-b636-d0eba1e3373b / ext4 errors=remount-ro 0 1
# swap was on /dev/sda5 during installation
UUID=70c31514-217c-478b-b29f-1e31950ad4a4 none swap sw 0 1
Shared /home/user/Escritorio/Shared vboxsf defaults 0 0

Presionamos CTRL + C para salir, se nos preguntara por los cambios realizados y presionamos S para confirmar que guardamos. Por ultimo para verificar que esto funciona, reiniciamos y deberíamos de poder ver que “C:\Shared” se ah montado en “/home/user/Escritorio/Shared“.

Opción 2 – La más corta.
Lo que se explico en la opción 1 se puede introducir y ejecutar en una sola línea:

echo “Shared /home/User/Escritorio/Shared vboxsf defaults 0 0” | sudo tee -a /etc/fstab

Montaje automático (“Auto-Mount“)

La VirtualBox ofrece desde la versión 4.0 un sistema automático de montaje para los directorios compartidos. Lo único que tenemos que hacer es seleccionar la opción “Auto-Mount” en el momento de agregar un directorio compartido como ya se vio anteriormente en el paso Nro. 3, de esta forma  la VirtualBox Guest Additions tratara de montar el directorio compartido en el momento que se inicia el sistema huésped. Si agregamos un directorio con esta opción y tenemos la maquina virtual encendida, debemos reiniciar.

El montaje automático no necesita que la maquina virtual este encendida porque el montaje se realiza cuando el sistema huésped se inicia. A continuación se explica como crear con la maquina virtual apagada un directorio compartido que se montara automáticamente en el inicio del sistema huésped.

Nota:  Si un directorio compartido tuviera la opción de “Auto-Mount” seleccionada y además hubiera una línea de montaje en /etc/fstab para ese mismo directorio, el montaje definido en /etc/fstab fallaría mostrando un error en el inicio pero el “Auto-Mount” realizado por la VirtualBox funcionaria igualmente. Por lo tanto como seguiremos utilizaremos “C:\Shared” como ejemplo, si anteriormente habías agregado la línea de montaje en el archivo /etc/fstab, debes de quitar esa línea o comentarla con un “#” para que sea ignorada.

1- En VirtualBox hacemos click izquierdo sobre la maquina virtual que tiene el huésped (debe de estar apagada) y seleccionamos “Settings…“.

2- En la ventana de configuración seleccionamos “Shared Folders“.

3- Lo que veremos ahora es prácticamente lo mismo que vimos en el paso Nro 3. cuando se explico el montaje manual, aunque aquí tenemos la maquina virtual apagada podemos administrar los directorios compartidos (evidentemente solo los de tipo “permanente”). El directorio “C:\Shared” esta en la lista porque ya fue agregado antes como un directorio compartido permanente, si no estuviera en la lista lo agregamos con el botón superior que se ve a la derecha. En mi caso solo lo modificare con el botón del medio, lo importante en cualquier caso es seleccionarle la opción “Auto-Mount“. Luego aceptamos todos los cambios con los “Ok“.

4- Ahora podemos ejecutar la maquina virtual del Linux huésped como lo hacemos siempre, la VirtualBox Guest Additions se encargara de montar el directorio “C:\Shared“. Una gran diferencia con el montado manual, es que en forma predeterminada todos los directorios auto-montados serán montados en el directorio  /media/ con el prefijo sf_, por ejemplo en nuestro caso “C:\Shared” quedara montado en “/media/sf_Shared“. Tanto el directorio como el prefijo son propiedades, y pueden ser modificadas.

Se necesitan dos privilegios para navegar estos directorios auto-montados. Cuando la Guest Additions es instalada se crea un nuevo grupo de usuario en el sistema llamado vboxsf, uno de los privilegios es pertenecer a este grupo. Con el siguiente comando podemos agregar nuestro usuario a ese grupo:

sudo adduser user vboxsf
user@PC:~$ sudo adduser user vboxsf
[sudo] password for user:
Añadiendo al usuario ‘user’ al grupo vboxsf …
Añadiendo al usuario user al grupo vboxsf
Hecho.
user@PC:~$

El otro privilegio necesario antes de acceder al directorio “/media/sf_Shared“, es el de super usuario. Para acceder con la consola debemos ejecutar:

sudo -i
user@PC:~$ sudo -i
[sudo] password for user:
root@PC:~#

Ya podemos acceder al directorio y listar los archivos:

root@PC:~# cd /media/sf_Shared
root@PC:/media/sf_Shared# ls
Documento1.txt Documento2.txt
root@PC:/media/sf_Shared#

Para acceder con la interface grafica, introducimos en el caso de que el escritorio es GNOME o XFCE:

gksudo nautilus /media/sf_Shared

En caso de que el escritorio sea KDE:

kdesudo nautilos /media/sf_Shared

– – – – – – – – – – – – – – – – – –

Si no estamos a gusto con las propiedades predeterminados que utiliza VirtualBox para crear los directorios auto-montados, podemos modificarlas a nuestro gusto utilizando la herramienta de linea de comando VBoxManage. Esta herramienta se debe ejecutar en el sistema anfitrión, las propiedades que nos interesan para este caso son:

  • /VirtualBox/GuestAdd/SharedFolders/MountDir – Esta define el directorio donde se montara el directorio compartido.
  • /VirtualBox/GuestAdd/SharedFolders/MountPrefix – Esta define el prefijo en el nombre del directorio compartido.

Para modificar una propiedad tenemos la siguiente sintaxis:

VBoxManage guestproperty set <vm> <property> [<value> [--flags <flags>]]

Donde:

  • <vm>: es el nombre de la maquina virtual. En mi caso el nombre es  “Ubuntu 11.04 Natty Narwhal”.
  • <property>: es la propiedad que queremos modificar.
  • <value>: el valor que le queremos dar.
  • <flags>: son algunas condiciones que se pueden especificar sobre la propiedad. No utilizaremos ninguna.

Demostrare como cambiar estas dos propiedades para que el montaje automático realizado por la VirtualBox sea en /home/User/Escritorio/Shared, la misma ubicación que se utilizo anteriormente en el montaje manual.

Si el sistema anfitrión fuera Linux podría comenzar ejecutando directamente el comando VBoxManage desde la terminal, pero en este caso en Windows la ubicación de las herramientas de VirtualBox no es agregada durante la instalación en la variable de entorno PATH del sistema. Por lo tanto en Windows tenemos dos opciones:

  1. Agregar el directorio VirtualBox al PATH del sistema. Podríamos ejecutar VBoxManage desde cualquier parte con el CMD.
  2. Con el CMD nos posicionamos primero en el directorio de VirtualBox y luego ejecutamos VBoxManage.

A continuación se explica la segunda opción porque será suficiente para esta demostración del uso de VBoxManage.

1- Ejecutamos CMD.exe

2- Nos desplazamos hacia el directorio de VirtualBox utilizando el comando cd:

cd [Directorio de VirtualBox]
C:\Users\User>cd C:\Program Files\Oracle\VirtualBox
C:\Program Files\Oracle\VirtualBox>

3- Desde a partir de aquí los pasos son iguales en cualquier sistema, ejecutaré VBoxManage para especificar cada propiedad.

a.  Especifica el montaje en “/home/User/Escritorio/Shared“:

VBoxManage guestproperty set "Ubuntu 11.04 Natty Narwhal" /VirtualBox/GuestAdd/SharedFolders/MountDir "/home/user/Escritorio/Shared"

b. Como no estoy interesado en que el nombre del directorio lleve un prefijo, ejecuto el comando sobre la propiedad sin especificar ningún valor.

VBoxManage guestproperty set "Ubuntu 11.04 Natty Narwhal" /VirtualBox/GuestAdd/SharedFolders/MountPrefix

Lógicamente si modificamos estas propiedades con la maquina virtual encendida, los cambios tendrán efecto al reiniciar.


Más información:
* VirtualBox – Documentation

Descargas:
* VirtualBox – Downloads


, , , , , , , , ,

  1. Deja un comentario

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión /  Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión /  Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión /  Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión /  Cambiar )

w

Conectando a %s

A %d blogueros les gusta esto: