Carpetas compartidas entre el sistema anfitrión y el invitado en VirtualBox

La herramienta Carpetas compartidas de VirtualBox nos ofrece la posibilidad de compartir carpetas entre el sistema operativo anfitrión (el sistema operativo de la máquina real) y los sistemas virtualizados (o invitados).

Físicamente, la carpeta compartida reside en el anfitrión, y se comparte con los invitados mediante un controlador de dispositivo incorporado en el complemento Guest Additions.

Si el sistema operativo invitado es Windows, la carpeta compartida se implementará como un redirector de pseudo-red, mientras que en los invitados GNU/Linux y Solaris se dispone de un sistema de archivos virtual.

Para entender las posibilidades que ofrece esta característica, te voy a poner un ejemplo: Imagina que estás desarrollando una aplicación o un sitio web sobre Ubuntu y necesitas comprobar su funcionamiento en Windows (o a la inversa, claro). Sólo tendrías que compartir la carpeta del proyecto entre el sistema operativo de tu máquina real y el sistema operativo instalado en una máquina virtual. De esa forma, podrías probar todos los cambios de una forma inmediata.

El resultado es parecido a utilizar una carpeta compartida en una red Windows, pero la opción Carpetas compartidas no precisa que tengamos habilitada una conexión de red.

Para mostrar su funcionamiento, primero veremos cómo configurarlo en es sistema anfitrión (en este caso, usaremos Ubuntu, pero el proceso es idéntico en un anfitrión con Windows). A continuación, mostraremos cómo acceder a la carpeta compartida desde una máquina virtual con Windows y otra con Ubuntu, que en este caso sí muestran algunas diferencias.

Como seguro ya habrás imaginado, la opción Carpetas compartidas necesita que hayas instalado con anterioridad VirtualBox Guest Additions en el sistema operativo invitado. Si necesitas ayuda con esa tarea, puedes echar un vistazo a nuestros artículos Instalar VirtualBox Guest Additions sobre Ubuntu o Windows o Instalar VirtualBox Guest Additions sobre Ubuntu o Windows, que publicamos en SomeBooks.es hace algún tiempo.

Establecer una carpeta compartida en el sistema operativo anfitrión

El primer paso para compartir una carpeta entre el anfitrión y un sistema invitado se hace configurando la máquina virtual en el anfitrión.

Hoy utilizaremos, como sistema anfitrión, un ordenador con Ubuntu. Sin embargo, como hemos dicho antes, la tarea será idéntica, con independencia del sistema operativo anfitrión que estemos utilizando.

Para comenzar, con la máquina virtual en ejecución, haremos clic sobre el menú Dispositivos de la ventana que contiene a la máquina virtual. Después, entre las opciones que aparecen, elegimos Carpetas compartidas.

1

… Y, finalmente, sobre Preferencias de carpetas compartidas

Cuando lo hagamos, aparecerá una ventana cuyo título estará formado por el nombre de la máquina virtual, seguido de la palabra Configuración. En ella, se mostrarán las carpetas compartidas que hayamos definido con antelación. Como vemos, aún está vacía.

2

Para añadir una nueva carpeta, comenzamos haciendo clic sobre el botón Agregar nueva carpeta compartida.

Así, obtenemos una nueva ventana desde la que podremos indicar la ruta de la carpeta en el anfitrión, el nombre con el que la verá el invitado y las condiciones bajo las que se realizará la compartición:

  • Sólo lectura, para que el sistema invitado no pueda realizar modificaciones en el contenido de la carpeta.

  • Automontar, para hacer que la carpeta esté disponible de forma inmediata en el sistema operativo invitado.

  • Hacer permanente, para que la carpeta se encuentre disponible, de forma automática, la próxima vez que iniciemos el sistema operativo invitado.

3

Para comenzar, desplegamos la lista Ruta carpeta.

La lista nos mostrará una serie de rutas predefinidas (si las hay) y un botón titulado Otro…, para elegir cualquier ubicación del disco duro anfitrión.

4

Hacemos clic sobre el botón Otro

Al hacerlo, obtendremos una nueva ventana en la que podremos elegir la carpeta deseada.

5

En nuestro caso, elegimos la carpeta Documentos y hacemos clic sobre el botón Abrir.

De vuelta en la ventana Agregar carpeta compartida, comprobamos que ya aparece la ruta completa de la carpeta elegida y también que se ha utilizado su nombre para rellenar el cuadro Nombre carpeta. Éste último podemos cambiarlo según nuestras preferencias.

Debajo elegiremos las opciones que más nos convengan. En mi caso, permitiré que el invitado pueda modificar el contenido de la carpeta, que esté disponible de forma inmediata y, además, que también se comparta de forma automática después de cada inicio del sistema.

6

Cuando acabemos, haremos clic sobre el botón Aceptar.

Después de esto, sólo nos queda comprobar cómo acceder a los datos compartidos desde una máquina virtual con Windows o con GNU/Linux (en nuestro caso, con Ubuntu).

Acceder a la carpeta compartida desde una máquina virtual con Windows 10

A continuación, veremos lo sencillo que resulta acceder a los datos de la carpeta compartida desde una máquina virtual con Windows 10, aunque sería prácticamente idéntico si no hiciésemos con Windows 8 o Windows 7.

Comenzaremos por abrir una ventana del Explorador de archivos.

1

Después, en el panel izquierdo de la ventana, hacemos clic sobre el elemento Red.

Al hacerlo, se mostrarán los distintos dispositivos que tengas disponibles en tu red local. Como mínimo, aparecerá la propia máquina virtual y un dispositivo con el nombre VBOXSRV. Éste último es el redirector de pseudo-red que mencionábamos al principio y que utiliza VirtualBox para dar acceso a las carpetas compartidas en sistemas Windows.

2

Hacemos clic sobre VBOXSRV.

Cuando se muestre su contenido, veremos una carpeta compartida (como si fuese una carpeta compartida en red), donde el nombre del dispositivo que comparte es \\VBOXSRV y la carpeta tiene el nombre que pusimos en el anfitrión.

3

Hacemos doble clic sobre la carpeta.

En su interior, veremos el contenido de la carpeta en el ordenador anfitrión.

4

En este caso, sólo tenemos un archivo llamado Documento de prueba.txt.

Como hemos otorgado permisos para modificarla, podríamos editar el archivo o crear otros nuevos. Incluso podríamos eliminarlo.

Acceder a la carpeta compartida desde una máquina virtual con Ubuntu 16.04 LTS

El método para acceder a una carpeta compartida por el anfitrión desde un invitado con GNU/Linux es diferente al que utiliza Windows. En nuestro caso, utilizaremos Ubuntu 16.04 LTS, pero puedes aplicarlo a otras versiones de Ubuntu.

Como hemos dicho al principio, en el caso de GNU/Linux, VirtualBox utiliza un sistema de archivos virtual para montar la carpeta compartida en el sistema operativo invitado.

Recuerda que en el anfitrión hemos indicado que la carpeta esté disponible de forma inmediata en el momento de compartirla y, además, que también se comparta de forma automática después de cada inicio del sistema.

Por otro lado, los sistemas GNU/Linux montan todos los dispositivos en un único árbol de directorios.

Así pues, sólo nos faltaría saber en qué carpeta del árbol de directorios de la máquina virtual se ha montado la carpeta compartida. Pues bien, en el caso de Ubuntu, podrás encontrarla en la siguiente ruta:

/media/sf_Documentos

Teniendo en cuenta, claro está, que la palabra Documentos será sustituida por el nombre de la carpeta que compartamos en cada caso.

Aún así, no es tan sencillo como abrir el explorador de archivos y desplazarnos hasta esa ubicación, ya que antes debemos resolver un pequeño problema de permisos. El motivo es que sólo los usuarios administradores y los que formen parte del grupo vboxsf tendrá permisos para acceder al contenido de la carpeta.

Por lo tanto, lo primero será conseguir que la cuenta de usuario con la que estés trabajando, forme parte del grupo vboxsf. Para lograrlo, sólo tienes que abrir una ventana de terminal y utilizar el comando usermod con la siguiente sintaxis:

sudo usermod -a -G vboxsf "$(whoami)"
La forma más rápida de abrir la ventana de terminal consiste en pulsar la combinación de teclas Ctrl + Alt + T.

El argumento -G indica el grupo del que va a formar parte la cuenta de usuario y el argumento -a consigue que este grupo se añada a la lista de grupos de la que ya forme parte.

Por último, whoami es una variable de entorno que contiene el nombre del usuario actual. Así, la sintaxis anterior te servirá independientemente del nombre de tu cuenta de usuario.

1

Al ejecutar el comando, deberemos autenticarnos con la contraseña de administración.

A continuación, para que el cambio sea tenido en cuenta, deberemos reiniciar el equipo, algo tan sencillo como usar el comando reboot:

sudo reboot

2

Escribimos el comando y pulsamos la tecla Intro.

Ahora sí, cuando se haya completado el reinicio, ya podemos abrir el explorador de archivos.

3

Por ejemplo, haciendo clic sobre su icono en el lanzador.

En el panel izquierdo del explorador de archivos, elegimos el elemento Equipo.

4

… Y cuando se muestre su contenido, hacemos doble clic sobre la carpeta media.

En su interior, encontraremos la carpeta sf_Documentos (recuerda que su nombre depende de lo que estableciéramos en el anfitrión)

5

Hacemos doble clic sobre ella para acceder a su contenido.

En este caso, el archivo Documento de prueba.txt, que ya conocemos del apartado anterior.

6

Contenido de la carpeta compartida.

Como ocurría con Windows, dado que otorgamos permisos para modificar la carpeta, podríamos editar el archivo o crear otros nuevos. Incluso podríamos eliminarlo.

Facilitar el acceso

Con lo que hemos hecho hasta ahora, podríamos dar por terminado el artículo. Sin embargo, si vamos a utilizar la carpeta compartida con frecuencia, deberíamos disponer de un método sencillo para acceder a ella. Por ejemplo, podemos crear un enlace simbólico en nuestro escritorio, algo tan sencillo como escribir la siguiente orden en la consola:

ln -s /media/sf_Documentos /home/"$(whoami)"/Escritorio

Como habrás deducido, utilizamos el comando ln para crear el enlace simbólico. El argumento -s indica que será un enlace simbólico. A continuación, escribimos la ruta que enlazaremos y el lugar donde crearemos el enlace (en este caso, el escritorio de usuario actual).

7

De nuevo, escribimos el comando y pulsamos la tecla Intro.

Al hacerlo, verás aparecer el enlace simbólico en tu escritorio. Por supuesto, puedes crearlo en cualquier otro lugar. O moverlo más tarde.

8

Enlace a la carpeta compartida

Al hacer doble clic sobre el enlace simbólico, volveremos a obtener el contenido de la carpeta.

9

Comprobamos que el enlace simbólico funciona.

Y hasta aquí el artículo de hoy. Espero que te resulte útil.