miércoles, 1 de julio de 2009

Montar una partición FAT32 con permisos de escritura

Hace tiempo que venía experimentando la siguiente situación: tengo una partición FAT32 que solía usar para los archivos comunes entre Ubuntu y Windows (la cree cuando recién migré a GNU/Linux). Había logrado que Ubuntu la montara al iniciar pero no le otorgaba permisos de escritura automáticamente. Era sólo lectura. Para que obtuviera los permisos de escritura debía desmontar la partición y volverla a montar. Un paso ciertamente molesto. Había intentado otras alternativas (como cambiar el propietario de la partición) sin resultados.

Hoy, por ciertas casualidades de la vida, encontré la solución a mi problema. Me faltaba agregar la opción umask=000 en el archivo de configuración /etc/fstab.

Pero veamos, paso a paso, como realizar todo el proceso para montar automáticamente una partición FAT con permisos de escritura.

Paso 1: Averiguar el UUID de la partición

  1. Abre una ventana de Terminal. Menú Aplicaciones > Accesorios > Terminal
  2. Escribe la orden blkid. Te saldrá una lista con las particiones y sus respectivos UUID. No cierres la ventana de Terminal.

Ejemplo de blkid

Paso 2: Editar el archivo de configuración

  1. Abre el archivo /etc/fstab con permisos de superusuario. Desde la Terminal escribe sudo gedit /etc/fstab e ingresa la contraseña de root. (O bien abre «Ejecutar una aplicación» (Alt-F2) y escribe gksu gedit /etc/fstab)
  2. Edita la línea de la partición FAT o creala si no existe. La sintaxis de la línea es la siguiente:
    <sistema de archivos (UUID)> <punto de montaje>   <formato de partición>   <opciones>   <dump>  <pass>
    

    Los distintos valores para cada categoría van separadas por espacios. También puede ser útil separarlas con el tabulador (Tab) para mayor orden. Por defecto el valor de las dos últimas suele ser cero, por lo que nos centraremos en las cuatro primeras.

    En primer lugar colocaremos UUID=XXX-XXX, donde XXX-XXX es el número del UUID que corresponde a la partición de acuerdo a la información recavada por blkid (el número va sin comillas). Para reconocer cuál de todas las particiones listadas es la que buscas, fíjate en la propiedad TYPE cuyo valor debe ser vfat (ej. TYPE="vfat"). En segundo lugar especificamos el lugar donde queremos que se monte nuestra partición. Por lo general se utiliza alguna carpeta dentro de /media, por ejemplo, /media/DiscoFat. Esto es para asegurarse de que nuestra partición aparezca en el menú Lugares del navegador de archivos (Nautilus). Pero eventualmente se puede especificar cualquier carpeta (vacía), incluso algo como /home/usuario/disco. (El directorio tiene que estar previamente creado; si no lo está lo crearemos. Ver paso 3. Evita que el nombre la carpeta contenga espacios).

    En tercer lugar va el tipo de partición que estamos montando. En este caso es vfat por ser una partición FAT32.

    En cuarto lugar van las opciones. Aquí va la información crítica. Cada parámetro va separado del siguiente por una coma. Las distintas opciones están detalladas en el manual de Linux. Puedes acceder a él tecleando en la consola man mount 8. Pero para efectos de este tutorial utilizaremos las siguientes opciones rw,users,utf8,umask=000. El parámetro rw es para dar permiso de escritura (por defecto es ro, sólo lectura); users es para que cualquier usuario pueda montar y desmontar la partición (por defecto es nouser, sólo root puede montar la partición); utf8 sirve, en este caso, para que Linux respete la codificación que utiliza Windows para nombrar los archivos; finalmente umask=000 para que los permisos de escritura se apliquen a todos los usuarios automáticamente aun cuando la partición sea montada como root. (Sin este último parámetro sólo podrás escribir en la partición con permisos de superusuario o bien desmontando y volviendo a montar la partición en tu sesión de usuario)

    Finalmente agregamos 0 al final de la línea para cada una de las dos últimas categorías, es decir, 0   0.

    Ejemplo de línea:

    Sistema de archivos (UUID) Punto de montaje Formato de partición Opciones Dump Pass
    UUID=5673-8190 /media/DiscoFat vfat rw,users,utf8,umask=000 0 0
  3. Ejemplo
    Ejemplo de /etc/fstab. La última línea corresponde a la partición FAT32
  4. Guarda y cierra el archivo.
  5. Sal de la ventana de terminal. Escribe exit.

Paso 3: Crear el punto de montaje

En primer lugar debemos confirmar que la carpeta donde montaremos la partición exista. Si hemos elegido un directorio en /media sólo podremos crearlo con permisos de superusuario.

  1. Abrimos «Ejecutar una aplicación» (Alt-F2) y ejecutamos gksu nautilus.
  2. Navegamos hasta /media y creamos la carpeta (Ctrl-Shift-N). La carpeta debe tener el mismo nombre que especificamos en /etc/fstab, respetando mayúsculas y minúsculas.

Dentro de lo posible debemos evitar que el nombre de la carpeta contenga espacios. (Si lo haces debes cerciorarte que en el punto de montaje especificado en /etc/fstab haya una barra invertida (backslash) antes de cada espacio. Por ejemplo: /media/Disco\ Fat)

Desde ahora, cada vez que reiniciemos podremos acceder a nuestra partición FAT32 con permisos de escritura.

2 comentarios:

Anónimo dijo...

Un articulo excelente y mu util! mis dies!! :D

Ramiro dijo...

Gracias capo!!!!