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.
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.
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.
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.
Al hacerlo, obtendremos una nueva ventana en la que podremos elegir la carpeta deseada.
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.
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 lo hiciésemos con Windows 8 o Windows 7.
Comenzaremos por abrir una ventana del Explorador de archivos.
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.
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.
En su interior, veremos el contenido de la carpeta en el ordenador anfitrión.
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)"
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.
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
Ahora sí, cuando se haya completado el reinicio, ya podemos abrir el explorador de archivos.
En el panel izquierdo del explorador de archivos, elegimos el elemento Equipo.
En su interior, encontraremos la carpeta sf_Documentos (recuerda que su nombre depende de lo que estableciéramos en el anfitrión)
En este caso, el archivo Documento de prueba.txt, que ya conocemos del apartado anterior.
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).
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.
Al hacer doble clic sobre el enlace simbólico, volveremos a obtener el contenido de la carpeta.
Y hasta aquí el artículo de hoy. Espero que te resulte útil.