Automontar carpetas compartidas de VirtualBox en Linux
VirtualBox tiene una opción para automontar carpetas compartidas en un huésped Linux, pero no siempre funciona bien. Hace tiempo propusimos un script para hacerlo manualmente. En esta ocasión vamos a hacer que se monten automáticamente.
Supongamos que tenemos una carpeta compartida llamada Datos. La forma más sencilla de montarla en nuestro huésped es escribir en el terminal:
sudo mkdir /media/Datos
sudo mount -t vboxsf Datos /media/Datos
El problema es que al hacerlo como superusuario, el dueño de la carpeta es root, y no se monta con el conjunto de permisos más adecuado. Para cambiar esto, vemos la ayuda del programa /sbin/mount.vboxsf y aplicamos las opciones pertinentes.
Tutorial: Permisos en Linux
Bien es sabido que la seguridad de Linux descansa en su sistema de archivos. Si escribimos ls -l en cualquier carpeta, podemos ver los conjuntos de permisos RWX que tiene cada elemento. R=Read, W=Write, X=Execute. La primera tríada es para el usuario propietario del fichero, la segunda es para el grupo al que pertenece, y la tercera para el resto de usuarios. Notemos que las carpetas siempre tienen permisos de ejecución, porque si no, no se podrían abrir.
La notación que usa el montador de VirtualBox es octal, de modo que interpretaremos cada letra como un 1 binario, y cada guión (permiso no asignado) como un 0. Por ejemplo, rwxrwxr-x (asignación por defecto de Ubuntu para carpetas) concede permisos totales al propietario y al grupo, pero no permite escribir a otros usuarios. Entonces tenemos 111111101 en binario, que se traduce a 775 en octal. Para los archivos se utiliza normalmente rw-rw-r--, que se nota como 664 en octal. Fedora es algo más restrictivo: asigna 755 a las carpetas y 644 a los archivos.
Usuarios manazas como yo: absténganse
Por tanto, supongamos que queremos montar el recurso Datos en /mnt/Datos, y que nuestro usuario se llama jesus y pertenece al grupo manager. Si queremos utilizar los permisos por defecto de Ubuntu, tenemos que especificar al montador de VirtualBox las siguientes opciones:
- uid=jesus
- gid=manager
- dmode=775
- fmode=664
$ sudo nano /etc/fstab
Y por último, agregamos la siguiente línea al final, recalcamos que las opciones se separan con comas:
Datos /mnt/Datos vboxsf uid=jesus,gid=manager,dmode=775,fmode=664 0 0
Guardamos y listo. Después de reiniciar, debería de aparecer montada nuestra carpeta Datos automáticamente.
En versiones más modernas este método no funciona, porque Linux intenta montar la carpeta antes de que se cargue el controlador apropiado. Para solucionarlo, debemos hacer que el módulo vboxsf se cargue al inicio del sistema, y lo hacemos de la siguiente forma:
Si nuestro sistema operativo funciona con Systemd (los más modernos), vamos a la siguiente carpeta:
$ cd /etc/modules-load.d
Dentro de ella creamos un archivo con cualquier nombre, acabado en ".conf":
$ sudo nano virtualbox.conf
Si, en cambio, nuestro sistema aún utiliza Init, debemos editar el siguiente archivo:
$ sudo nano /etc/modules
En cualquier caso, añadimos una línea con el contenido:
vboxsf
Por último reiniciamos, y con este cambio la carpeta deberá aparecer montada correctamente.
Actualización
En versiones más modernas este método no funciona, porque Linux intenta montar la carpeta antes de que se cargue el controlador apropiado. Para solucionarlo, debemos hacer que el módulo vboxsf se cargue al inicio del sistema, y lo hacemos de la siguiente forma:
Si nuestro sistema operativo funciona con Systemd (los más modernos), vamos a la siguiente carpeta:
$ cd /etc/modules-load.d
Dentro de ella creamos un archivo con cualquier nombre, acabado en ".conf":
$ sudo nano virtualbox.conf
Si, en cambio, nuestro sistema aún utiliza Init, debemos editar el siguiente archivo:
$ sudo nano /etc/modules
En cualquier caso, añadimos una línea con el contenido:
vboxsf
Por último reiniciamos, y con este cambio la carpeta deberá aparecer montada correctamente.
hola, lo de automontar no me funciona en fedora 20, al modificar /etc/fstab y reiniciar me tira el mensaje de modo de emergencia y no me deja entrar hasta que lo vuelvo a modificar, trate de hacer lo de la actualización pero no hay ningún archivo llamado modules solo carpetas llamadas asi y son varias si sabes alguna solución te agradecería de antemano gracias
ResponderEliminarHola. Efectivamente, en sistemas más modernos, con Systemd, no existe /etc/modules, sino la carpeta /etc/modules-load.d.
ResponderEliminarLa idea es la misma: hacer que se cargue el módulo de VirtualBox antes de intentar montar la carpeta. He actualizado el post explicando cómo se hace, es muy parecido.
He probado el método nuevo en Fedora 23 y en Ubuntu 15.10. Espero que te funcione. Un saludo.