viernes, 25 de enero de 2008

FSTAB

Hola, una de las grandes ventajas de Linux es la posibilidad de utilizar distintos tipos de sistemas de ficheros, desde los variados sistemas de Linux ( desde Ext2 a Ext3 paasndo por ReiserFS y XFS ), los sistemas de ficheros de red ( NFS o SMB ), los de Windows ( Vfat o NTFS ) e incluso los de otros tipos de Unix como por ejemplo el sistema UFS de los BSD.

Para poder trabajar con estos sistemas de ficheros es necesario tener el núcleo del sistemas preparado para ello, ya sea integrando estos sistemas de ficheros en el kernel o agregándolos como módulos.

Montar estos sistemas de ficheros puede ser algo tedioso, no es muy agradable tener que teclear mount y sus opciones cada vez que necesitamos montar un sistema, especialmente si es un sistema que utilizaremos con frecuencia. Es por ello que nos viene muy bien conocer fstab.

Fstab es un fichero que está alojado en el directorio /etc y que posee las configuraciones de los distintos sistemas de ficheros de nuestro sistema operativo, así como el lugar donde se montan y las opciones que se aplican a ellos. Configurar /etc/fstab es necesario para tener un acceso rapido a nuestros datos de Windows, así como para que dicha partición se monte automáticamente al iniciar nuestro Linux. Este artículo se dedicará a explicarnos cual es la estructura de dicho fichero y como configurarlo a nuestro gusto.

Antes que nada veremos mi /etc/fstab y explicaré una por una las columnas, su significado y su uso, para visualizarlo simplemente ejecutamos cat /etc/fstab en consola:

debian:/home/slack# cat /etc/fstab
# /etc/fstab: static file system information.
#
#
proc /proc proc defaults 0 0
/dev/sda1 / ext3 defaults,errors=remount-ro 0 1
/dev/sda2 /mnt ext3 defaults,errors=remount-ro 0 1
/dev/sda3 none swap sw 0 0
/dev/hda /media/cdrom0 udf,iso9660 user,noauto 0 0


La siguiente es la salida de ejecución del mismo comando anterior, pero con mas opciones para la esta explicación:

/dev/hda7 swap swap defaults 0 0
/dev/hda5 / ext3 defaults 1 1
/dev/hda2 /mnt/windows ntfs umask=0 0 0
/dev/hda6 /mnt/datos vfat user,umask=0 0 0
/dev/hdd /mnt/cdrom iso9660 noauto,user 0 0
/dev/fd0 /mnt/floppy auto noauto,owner,umask=0,user 0 0
devpts /dev/pts devpts gid=5 0 0
proc /proc proc defaults 0 0
/dev/sda1 /mnt/usb vfat noauto,rw,umask=0,user,sync 0 0
none /sys sysfs defaults 0 0
/dev/hda3 /mnt/freebsd ufs umask=0,user,noauto 0 0
/dev/hda8 /boot ext3 defaults 1 1

Como puede apreciarse cada linea consiste en un sistema de ficheros configurado mediante 6 columnas, procedo ahora a realizar una descripción de cada una de las columnas:

Primer campo

Es el dispositivo o sistema de ficheros que se montará, normalmente sera un fichero ( en Linux todo es un fichero ) del directorio /dev. Con hda se denota el disco duro maestro IDE seguido de un número que indica el número de partición de dicho disco duro.
Para lso dispositivos USB suele usarse sda, tal como puede apreciarse en la linea 9 de mi fstab.
Hay que destacar que devpts y none se utilizan para los sistemas de ficheros que usa internamente Linux.

Segundo campo

Es el directorio en el cual se montará el sistema del primer campo. Hay que destacar que si no hemos creado ese directorio fallará el montaje de dicho sistema.

Tercer campo

Indica el tipo de sistema de ficheros. Como indicaba al principio del documento el núcleo de Linux admite multitud de sistemas de ficheros, tanto para el propio uso e instalación de nuestro sistema operativo como para sistemas auxiliares ( particiones vfat ) o sistemas de ficheros de red.
Muestro aquí una pequeña tabla con ejemplos de algunos de ellos:

EXT2 Sistema de ficheros sin registro para Linux
EXT3 Sistema de ficheros con registro para Linux
VFAT Sistema de Windows ( versión 95, 98 )
NTFS Sistema de Windows ( versión NT, 2000, XP )
NFS Sistema distribuido de Sun
ISO9660 Sistema estándar para CD-ROM
JFS Sistema de ficheros con registro de IBM
REISERFS Sistema de ficheros con registro para Linux
SWAP Espacio de intercambio para Linux
XFS Sistema de ficheros con registro de Silicon Graphics
UFS Sistema de ficheros de los Unix BSD

Los sistemas de ficheros que tiene compilado el núcleo pueden verse en el fichero /proc/filesystems.

Cuarto campo

Son opciones que se aplican a los sistemas de ficheros, haremos un recorrido por ellas por orden alfabético.

Async.
Las escrituras se hacen asíncronamente
Auto. Se monta automáticamente, o con el comando mount -a.
Defaults. Esta opción reune las siguientes: async, auto, dev, exec, nouser, rw y suid.
Dev. Significa que el dispositivo es local al sistema.
Exec. Permite la ejecución de programas.
Gid. Establece el identificador de grupo del sistema de ficheros al identificador numérico del grupo.
Noauto. No se monta automáticamente. Ideal para medios extraibles.
Nouser. El sistema de ficheros solo puede ser montado por el administrador del sistema.
Owner. El dueño del sistema de ficheros se fija al usuario que lo monta.
Ro. Modo solo lectura ( read-only ).
Rw. Modo lectura escritura ( read-write ).
Suid. Permite que se ejecuten los bits setuid, no se debe aplicar a sistemas que no administremos nosotros mismos, ya que es un riesgo potencial de intrusiones al sistema.
Sync. Las escrituras se hacen síncronamente.
Uid. Establece el identificador de usuario del sistema de ficheros montado.
Umask. Establece una máscara. Esto es util para que a este sistema pueda acceder un usuario que no tenga privilegios, por ejemplo para montar un sistema y que puedan acceder a él todos los usuarios ponemos umask=0.

Quinto campo

Puede tener valor 0 o 1. Si vale 1 el programa de copias de seguridad del sistema Dump guarda el sistema de ficheros.

Sexto campo


Lo utiliza el inspector de consistencia. Si vale 1 se comprueba la consistencia del sistema de ficheros al reiniciar el sistema operativo. Si vale 0 fsck no comprueba el sistema de ficheros.

Saludos y suerte !!