miércoles, 15 de diciembre de 2010

¿Que es el "fstab" en Linux y como funciona?

Nota previa:
Viene del HTG como el anterior, es que son relativos uno y otro. El original lo pueden encontrar aquí

¿Que es el "fstab" en Linux y como funciona?

Si eres usuario de Linux, entonces lo más probable es que en algún momento hayas necesitado cambiar algunas opciones del sistemas de archivos.  Familiarizarse con fstab puede hacer todo el proceso mucho más fácil, y es mucho más fácil de lo que piensas.
¿Qué es el fstab?

"fstab" es una tabla del sistema operativo que define ciertas opciones relacionadas con los sistemas de archivos.  Si desea darle una revisada a los sistemas de archivo mas importantes soportados por Linux, puedes ver el articulo anterior, HTG Explica: ¿Qué sistema de archivos de Linux debes elegir? En los viejos tiempos, fstab era la manera principal en que el sistema montaba los archivos automáticamente.  Hoy en día, usted puede conectar una unidad USB de cualquier tipo y sólo va a aparecer en Nautilus como lo hace en Windows y Mac OS, pero hubo una época en la que había que montar manualmente los discos a una carpeta específica usando el comando "mount".  Esto era así igualmente para los DVD, CD, e incluso para los discos de 31/2"(¿lo recuerdan?).

En aquel entonces, su única alternativa era el decirle a la computadora que cada vez que un dispositivo específico fuera conectado, debería montarse automáticamente en un lugar específico.  Y he aquí que llego fstab, y fue increíble.  Supongamos que se intercambian los discos duros en su controlador IDE o SCSI.  El equipo podría cargar los sistemas de archivos en órdenes diferentes, lo que podría estropear las cosas.  Fstab está configurado para buscar sistemas de archivos específicos y montarlos de forma automática en la forma deseada a cada momento, evitando que se produzcan desastres de todo tipo.


Su fstab


El archivo "fstab" se encuentra en: /etc/fstab

Echémosle un vistazo a mi fstab ¿de acuerdo?
Definitivamente ud notará algunas diferencias, pero si quiere seguir adelante con su propio fstab bastará con escribir este comando en su terminal:


También puede usar gedit si no se siente cómodo con nano.
Las opciones evidentes.








Se dará cuenta de todas las entradas comienzan con UUID.  Es posible que recuerde haber visto esto en uno de nuestros artículos anteriores, ¿Cómo elegir un esquema de partición para su PC con Linux (1) , pero vamos a explicarlo de nuevo de todos modos.  A cada sistema de archivos, durante el formateo, se le asigna un identificador único universal, que lleva con el hasta la tumba.  Dado que no se puede cambiar este identificador, es la forma ideal para seleccionar los sistemas de archivos para el montaje, sobre todo para los más importantes.  Digamos que su partición /home está en un segundo disco duro y acabas de moverlo a un disco duro externo; fstab va a encontrar la partición y la va a montar correctamente, evitando un inicio fallido.  Si cambia a (persistes en usar) el viejo método de uso de identificadores de dispositivo para seleccionar las particiones (por ejemplo /dev/sda1), esta ventaja desaparece porque los discos duros y particiones son contados por sus controladores, y esto puede variar.
Edición: El uso de UUID en el archivo fstab, aun cuando es conveniente para la mayoría de los usuarios, tiene algunos inconvenientes.  No funciona cuando trabajas con dispositivos ensamblados o unidades de red.  Si usted es más que un usuario avanzado, o planea usar cosas como softwares para RAIDs en el futuro, es preferible que no use UUID.








La siguiente sección de fstab, como todas las demás, está separada por un espacio o tabulación (tab), o una combinación de ellos.  Esta sección define el punto de montaje (2).  Como puedes ver, tengo un punto de montaje en "/", la swap, y dos más que agregué manualmente que son unidades de red .  Si va a añadir una entrada en fstab, entonces tendrá que crear manualmente el punto de montaje antes de reiniciar el equipo (y los cambios surtan efecto).








Lo siguiente es la sección que identifica el tipo de sistema de archivos en la partición.  Muchos, como ext2/3/4, ReiserFS, JFS, etc esta soportados (y son leídos) de forma nativa en Linux.  Su sistema en particular puede necesitar tener paquetes instalados especialmente para poder leer y escribir esta clase de sistemas de archivos.  El ejemplo perfecto son mis particiones NTFS, y como ven necesito tener instalado el driver ntfs-3g para accederlo.
La parte temida
Las siguientes secciones son las que generalmente ahuyentar a los recién llegados, pero realmente no son tan complicadas.  Hay una gran cantidad de opciones disponibles, pero solo unas cuantas son las más comunes.  Veamos. (La opción predeterminada va primero, seguida por otras alternativas, pero como las distribuciones de Linux pueden ser muy diferentes, pueden haber variaciones.)
  • auto/noauto: Indica si deseas que la partición sea montada automáticamente en el arranque.  Puedes evitar que determinadas particiones sean montadas automáticamente en el arranque utilizando "noauto".
  • exec/noexec: Especifica si se puede o no ejecutar binarios desde esa partición.  Si tienes una partición hecha desde cero en la que compilas, entonces te será útil, o tal vez si tienes el SA /home en un sistema de archivos separado.  Si usted está preocupado por la seguridad, puede configurar esta opción a "noexec".
  • ro/rw: "ro" es sólo lectura, y "rw" es lectura y escritura.  Si usted quiere tener la posibilidad de escribir a un sistema de archivos como un usuario y no como root, deberá especificar que será "rw".
  • sync/async: Esta es interesante. "sync" obliga a que la escritura se ejecute inmediatamente después del comando, lo cual es ideal para disquetes (¿que tan geek eres tú?) y unidades USB, pero no es del todo necesario para discos duros internos.  ¿Lo que posibilita "async" es permitir que el comando se ejecute pasado cierto período de tiempo, tal vez cuando la actividad del usuario disminuya o algo así.  Alguna vez viste un mensaje pidiéndote que "espere mientras los cambios se escriben en el disco?" usualmente es debido a esto. 
  • nouser/usuario: Permite que el usuario tenga privilegios de montaje y desmontaje.  Una nota importante es que "user" implica automáticamente "noexec" por lo que si usted necesita ejecutar binarios como un usuario, asegúrese de utilizar explícitamente "exec" como una opción.
Todas estas opciones están separadas por una coma y sin espacios, y se pueden poner en cualquier orden.  Si no está seguro acerca de los valores por defecto, es válido que especifique explícitamente sus opciones.  Los sistemas que se montan de maneras temporales (como USB) no siguen este patrón básico a menos que cree las entradas para ellos (por UUID) en fstab.  Esto es útil si se desea que un disco duro externo se monte siempre de una manera particular, porque las unidades USB y similares no se verán afectadas








Pueden ver que mis dos unidades de almacenamiento tienen los privilegios de montaje para usuarios habilitado, acceso de lectura y escritura habilitado, y auto-montaje también habilitado.  Normalmente no compilo mucho software, pero cuando lo hago, puedo añadir la opción "exec" al final de la lista.
Volcados y chequeos de SA
La siguiente opción es un valor binario para habilitar el "volcado" ("0" para falso y "1" para verdadero) .  Este es un método bastante obsoleto para hacer respaldos en el caso de que el sistema se vaya abajo.  Usted debe dejar esto como "0".


La última opción es un valor numérico para "pasar".  Esto le indica al sistema el orden en el que se ejecutará el "fsck" (puede pronunciarlo como quiera), es decir, una comprobación del sistema de archivos.  Si el disco tiene la opción a "0" será omitido, al igual que mis unidades de almacenamiento con formato NTFS.  El sistema de archivos raíz debe ser siempre "1" el resto de los sistemas de archivos pueden ir después.  Esto funciona mejor para sistemas de archivos con Journaling como ext3/4 y ReiserFS.  En sistemas de archivo antiguos como FAT16/32 y Ext2 puede tomar un tiempo, así que es mejor inhabilitar sus "fsck" y hacerlo periódicamente tu mismo.
Ahora que sabes lo que estás haciendo, puedes hacer tus pruebas con el montaje automático y similares.  Es muy conveniente cuando tienes una tonelada de particiones que necesitas gestionar.  Recuerde siempre hacer una copia de seguridad para los caso de que algo va mal, pero diviértete, y asegúrate de dejar tus experiencias en los comentarios!

Notas finales:
(1).- Pendiente de traducción, hay cosas en el articulo que no me gustaron, pero las aclararé
(2).- En este post a partir del minuto 2.02 del vídeo, hago esto que se explica manualmente, es decir, crear el punto de montaje, que en este último caso se define permanentemente en fstab. Finalmente un punto de montaje no es mas que el directorio en tu sistema a través del cual accederás a la partición