Si buscamos para qué se usan los sistemas de archivos encontraremos en Wikipedia que básicamente “…estructuran la información guardada en una unidad de almacenamiento (normalmente un disco duro) de una computadora, que luego será representada ya sea textual o gráficamente utilizando un gestor de archivos”. Dicho de otro modo, los sistemas de archivos organizan de forma lógica los datos que se almacenan en diferentes sectores o áreas de un dispositivo para que estos sean vistos por el usuario como archivos o carpetas. En general existen muchos sistemas de archivos debido a que algunos , por ejemplo, extienden las características antes mencionadas incorporando funciones de recuperación en caso de fallos, otros están diseñados para medios específicos como un CD-ROM, y otros pueden publicar vía red archivos y carpetas.
Veamos ahora los sistemas de archivos en Linux…
Sistemas de archivos en Linux.
El sistema de archivos por defecto actualmente en Linux es ext3, cuya principal característica respecto a exrt2 es que incluye journaling (registro por diario) lo cual mejora la confiabilidad y elimina la necesidad de hacer chequeos al sistema de archivos después de un apagado forzado (por ejemplo, cuando se corta la energía eléctrica). Esto no quiere decir que ext3 sea el único sistema de archivos en Linux, ya que existen otras implementaciones como xfs, jfs o ReiserFS; cada una con sus propias ventajas y desventajas.
Por otro lado en Linux nos vemos en la necesidad de usar otros sistemas de archivos para poder acceder a dispositivos como cdrom (ISO9660), pendrives (vfat,ext2), particiones de Windows (vfat, ntfs) o unidades de red (nfs, smb, cifs), etc.
Comando mount
El comando mount nos permite “montar” dispositivos o recursos con sus respectivo sistema de archivos en un punto de montaje o carpeta del sistema. La sintaxis básica del comando mount es:
mount -t sistema_de_archivos dispositivo punto_de_montaje
Por ejemplo, si estamos interesados en montar un cdrom en la carpeta /media/cdrom podemos ejecutar mount de la siguiente manera:
mount -t iso9660 /dev/hdd /media/cdrom
Otro ejemplo que no involucra un dispositivo físico conectado a la máquina puede ser el utilizar una cuenta de correos de Gmail como soporte de los datos:
mount -t gmailfs none /mnt/discoGmail/ -o username=pedro.perez, password=lacontraseña, fsname=nOmbReX
Lo anterior es un ejemplo de la versatilidad que se puede obtener con el comando mount, y cabe mencionar que para que funcione hay que tener instalado el sistema de archivos que convierte las operaciones (como copiar, listar, borrar) en acciones o correos de Gmail.
Si estamos interesados en saber los diferentes sistemas de archivos que están montados en el sistema, podemos ejecutar el comando mount sin argumentos como vemos a continuación:
moody:~# mount
/dev/sda2 on / type ext3 (rw,errors=remount-ro)
proc on /proc type proc (rw,noexec,nosuid,nodev)
sysfs on /sys type sysfs (rw,noexec,nosuid,nodev)
udev on /dev type tmpfs (rw,mode=0755)
/dev/sda3 on /home type ext3 (rw)
mount, el que todo lo sabe y sino lo inventa
El comando mount al momento de montar un sistema de archivos también puede ejecutarse sin la opción -t, en cuyo caso intentará “adivinar” el sistema de archivos que utiliza el dispositivo o recurso a montar. La forma que tiene Linux de “adivinar” el sistema de archivos es consultando la salida del comando blkid, pero en caso de no encontrar nada familiar consultará el archivo /etc/filesystems, y si este no existe consultará el archivo /proc/filesystems para intentar con aquellos sistemas de archivos que no contengan la palabra ‘nodev’.
Por ejemplo, el comando ‘bklid -L’ devuelve la siguiente información en mi computadora:
device fs_type label mount point ------------------------------------------------------------------ /dev/sda1 vfat <swap> /dev/sda2 ext3 / /dev/sda3 ext3 /home /dev/sda5 ext3 /data /dev/hdb iso9660 Ubuntu 8.04 i386 /media/cdrom0
Mientras que al ejecutar el comando ‘grep -v nodev /proc/filesystems‘ obtengo la siguiente salida:
ext3
vfat
iso9660
udf
Esto quiere decir que mi Linux tratará de usar el sistema de archivo detectado en el dispositivo y sino se intentarán con los sistemas de archivos ext3, vfat, iso9660 y udf.
Archivo /etc/fstab
Puede resultar molesto tener que especificar en todo momento el tipo de sistema de archivos a montar, el dispositivo, el punto de montaje, y otras opciones. Para evitar esto podemos utilizar el archivo /etc/fstab para facilitarnos el trabajo. El formato del archvio /ect/fstab es como sigue:
# <file system> <mount point> <type> <options> <dump> <pass> proc /proc proc defaults 0 0 /dev/sda1 none swap sw 0 0 /dev/sda2 / ext3 defaults,errors=remount-ro 0 1 /dev/sda5 /data ext3 defaults 0 2 /dev/sda3 /home ext3 defaults 0 2 /dev/hdb /media/cdrom0 udf,iso9660 user,noauto 0 0
El primer campo corresponde al dispositivo a montar, el segundo es el punto de montaje, el tercero es el tipo de sistema de archivos a usar, en el cuarto campo encontramos opciones a utilizar al momento de montar el dispositivo (por ejemplo, con la opción users indicamos que el dispositivo puede ser montado por cualquier usuario del sistema), el quinto campo se usa para indicarle al comando dump que realice o no respaldos del punto de montaje, y el sexto y último campo le indica el orden al comando fschk de los dispositivos a ser comprobados al momento de reinicio de la máquina (el valor cero indica no realizar comprobación).
Con la definición que vemos arriba del archivo /etc/fstab, podemos montar la unidad de cdrom de la siguiente manera:
mount /media/cdrom0
Como se creó una entrada que asocia dispositivo /dev/hdd con el punto de montaje /medica/cdrom0, al ejecutar mount se buscará esta línea y montará el dispositivo /dev/hdd en el punto de montaje /media/cdrom0. Por otro lado, también es válido especificar la ruta del dispositivo en vez del punto de montaje:
mount /dev/hdd
Desmontado sistemas de archivos
El comando para desmontar un dispositivo dado es umount. Por ejemplo, para desmontar la unidad de cdrom que vimos anteriormente podemos ejecutar:
umount /media/cdrom0
Nuevamente, también funciona especificar la ruta del dispositivo directamente:
umount /dev/hdd
Referencias
- http://es.wikipedia.org/wiki/Sistema_de_archivos
- http://en.wikipedia.org/wiki/List_of_file_systems
- http://linux.die.net/man/8/blkid
- http://linux.die.net/man/8/mount
- http://linux.die.net/man/5/fstab
- http://unixhelp.ed.ac.uk/CGI/man-cgi?umount+8

Planeta Linux