En este artículo conoceremos la función de El archivo fstab, su configuración y algunos ejemplos para montar distintos sistemas de archivos.
- Introducción
- El archivo /etc/fstab
- Ejemplos
- Desmontar un sistema de archivos con el comando umount
- El comando mount -a
- Introducción (Volver al índice General)
- El archivo /etc/fstab (Volver al índice General)
Como hemos dicho antes, el archivo fstab se ubica en el directorio/etc, es decir su ruta completa sería/etc/fstab. Cada sistema de archivos se describe en una sola línea y cada campo (columna) se separa por tabulaciones o espacios. Las líneas que empiezan por#son comentarios y las líneas en blanco se ignoran.Visualicemos con el comando less el contenido de un archivo fstab sencillo:
1 2 3 4 5 6 7 8 9 10 11 12 13 14
$ less /etc/fstab # /etc/fstab: static file system information. # # Use 'blkid' to print the universally unique identifier for a # device; this may be used with UUID= as a more robust way to name devices # that works even if disks are added and removed. See fstab(5). # # <device> <mount point> <type> <options> <dump> <fsck># / was on /dev/sda1 during installation UUID=74f44374-0326-42ca-8eb0-0c2398940c25 / ext4 errors=remount-ro 0 1# swap was on /dev/sda2 during installation UUID=d61d4720-8cc9-434b-85eb-386cbb1bd007 none swap sw 0 0# CD/DVD was on /dev/sr0 during installation /dev/sr0 /media/cdrom0 udf,iso9660 user,noauto 0 0
- Las líneas 2, 3, 4, 5, 6, 7, 8, 9, 11 y 13 son comentarios ya que empiezan con el carácter
#. - La línea 8 es un comentario que nos sirve para reconocer todos los campos (columnas) que describen los sistemas de archivos. Según este comentario, la sintaxis para describir en una línea un sistemas de archivos sería la siguiente:
<dispositivo> <punto de montaje> <tipo de sistema de archivos> <opciones> <valor dump> <valor fsck>
- Las líneas 10, 12 y 14 corresponden a la descripción de los tres sistemas de archivos configurados en este archivo fstab de ejemplo.
A continuación, explicaremos para que sirve cada campo (columna):- Dispositivo (<device>) (Volver al índice General)
Este podrá ser un dispositivo especial de bloque (partición de un disco duro, CD, DVD, etc), un sistema de archivos remoto como pueden ser CIFS o NFS, una imagen ISO, etc. Es el dispositivo que almacena la información y que pretendemos montar para luego poder leer.- Unidades conectadas a nuestro sistema:
Si es una unidad física de almacenamiento conectada a nuestro sistema, en </ZeppelinuX> hemos publicado el artículo Cómo se nombran las unidades de almacenamiento en Linux, como por ejemplo:/dev/sda1,/dev/sr0, etc.
Observe que en nuestro ejemplo, los dispositivos de bloque se identifican de dos formas. En las líneas 10 y 12 se utiliza el UUID (p.e.UUID=74f44374-0326-42ca-8eb0-0c2398940c25) de la partición mientras que en la línea 14, se utiliza la ruta al dispositivo de bloque (p.e./dev/sr0). También se puede utilizar la etiqueta de volumen escribiendoLABEL=etiqueta(p.e.LABEL=Root). Según la documentación de fstab, utilizar el UUID es la forma más robusta de nombrar dispositivos.
Si vas a utilizar el UUID, en </ZeppelinuX> hemos publicado el artículo Cómo conocer el UUID de nuestros discos y cómo modificarlo. Este artículo nos servirá para nombrar dispositivos por su UUID.
Por otro lado, si lo que vas a utilizar la ruta al dispositivo de bloque, para conocer el nombre de las unidades y particiones conectadas en nuestro sistema, podemos ejecutar el siguiente comando:1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
$ sudo fdisk -l Disco /dev/sdb: 931,5 GiB, 1000204886016 bytes, 1953525168 sectoresUnidades: sectores de 1 * 512 = 512 bytes Tamaño de sector (lógico/físico): 512 bytes / 512 bytes Tamaño de E/S (mínimo/óptimo): 512 bytes / 512 bytes Tipo de etiqueta de disco: dos Identificador del disco: 0xa4304345 Disposit. Inicio Comienzo Final Sectores Tamaño Id Tipo /dev/sdb1 2048 19531775 19529728 9,3G 83 Linux/dev/sdb2 19531776 996093951 976562176 465,7G 83 Linux/dev/sdb3 996093952 1953523711 957429760 456,6G 83 Linux Disco /dev/sda: 223,6 GiB, 240057409536 bytes, 468862128 sectoresUnidades: sectores de 1 * 512 = 512 bytes Tamaño de sector (lógico/físico): 512 bytes / 512 bytes Tamaño de E/S (mínimo/óptimo): 512 bytes / 512 bytes Tipo de etiqueta de disco: dos Identificador del disco: 0x2ff4e54b Disposit. Inicio Comienzo Final Sectores Tamaño Id Tipo /dev/sda1 2048 7813119 7811072 3,7G 82 Linux swap / Solaris/dev/sda2 * 7813120 273438719 265625600 126,7G 83 Linux/dev/sda3 273438720 468860927 195422208 93,2G 83 Linux
- Las líneas 2 y 14 nos indican el nombre de las unidades.
- Las líneas 10, 11, 12, 22, 23 y 24 nos indican el nombre de las parciones de cada unidad.
Existen otros comandos para mostrar información de nuestros discos y particiones como son: lsscsi, lsblk o df.
- Unidades de red:
Si se trata de montar recursos de red como directorios remotos compartidos por los protocolos Samba o NFS, los dispositivos se nombrarán de forma muy distinta:- Para montar un sistema NFS, tendríamos que indicar el hostname o IP y el directorio compartido (
host:dir).host:/ruta/a/exportar /punto_de_montaje_local nfs <options> 0 0
- Para montar recursos samba, tendríamos que indicar el hostname o IP y el nombre del recurso compartido (
//host/recurso), además de las credenciales de acceso al recurso si fuesen necesarias.//host/recurso /punto_de_montaje_local cifs <options> 0 0
- Para montar un sistema NFS, tendríamos que indicar el hostname o IP y el directorio compartido (
- Sistemas de archivos especiales:
Existen sistemas de archivos especiales para los cuales el valor de <device> esnone. Algunos de estos sistemas de archivos son:- El sistema de archivos de procesos procfs (process filesystem).
none /proc proc defaults 0 0
- El sistema de archivos devpts.
none /dev/pts devpts gid=5,mode=620 0 0
Otro sistema de archivos especial es tmpfs para el cual el valor de <device> es
tmpfs.tmpfs /tmp tmpfs size=2G,noexec,rw,auto,nouser,sync,noatime,nodev,nosuid,mode=1777 0 0
- El sistema de archivos de procesos procfs (process filesystem).
- Unidades conectadas a nuestro sistema:
- Punto de montaje (<mount point>) (Volver al índice General)
En Linux, todos dispositivos se montan sobre directorios que pertenecen a un sistema de jerarquía de directorios, donde el directorio raíz (/) es el primer directorio o carpeta de dicha jerarquía. El estándar de jerarquía del sistema de archivos (Filesystem Hierarchy Standard, FHS) es la norma que define los directorios principales y su contenido en sistemas Linux y derivados de Unix.El punto de montaje (<mount point>) describe el directorio donde se montará el sistema de archivos, es decir, nuestro dispositivo, imagen, partición, etc (Véase las líneas 10 y 14 de nuestro ejemplo), es decir, ahí es dónde acudiremos para ver los datos que contienen los dispositivos que montemos. Si el directorio utilizado como punto de montaje no existe, tendremos que crearlo antes de realizar el montaje. En ZeppelinuX hemos publicado el artículo Crear directorios en Linux con mkdir el cual os puede interesar.
Nota: Si el nombre del punto de montaje contiene espacios en blanco, estos pueden sustituirse por ‘
\040‘.Es muy común que los dispositivos extraíbles se monten sobre los directorios
/mediao/mnt, pero no es obligatorio, podremos montarlos en un directorio creado por nosotros según nuestros intereses. Por ejemplo, normalmente, un CD/DVD suele montarse en el directorio/media/cdrom0,/media/cdrom,/mnt/cdrom0o/mnt/cdrom.
Una memoria USB (Pendrive) podría montarse, por ejemplo, en/media/pendrivedondependrivees el directorio que hemos creado comopunto de montajepara el sistema de archivos de nuestra memoria USB (Pendrive).
Para el espacio de intercambio (swap) el punto de montaje debe de tomar el valornoneen vez de la ruta a un directorio. (Véase la línea 12 de nuestro ejemplo) - Tipo de sistema de archivos (<type>) (Volver al índice General)
Describe el tipo de sistema de archivos que utiliza el dispositivo que vamos a montar. Los tipos de sistemas de archivos más comunes son; ext2, ext3, ext4, Reiserfs, ufs, hfs, hfs+, vfat, exfat, ntfs, cifs, nfs, tmpfs, auto y posiblemente otros más. Los tipos de de sistemas de archivos más utilizados para discos CD/DVD son: udf e iso9660.Los tipos de sistema de archivos soportados por nuestro sistema dependerán del kernel que se encuentre en ejecución. Para obtener una lista completa de los tipos de sistema de archivos soportados por nuestro kernel, podemos visualizar el archivo
/proc/filesystemscon el siguiente comando:$ cat /proc/filesystems
También podemos listar los tipos de sistema de archivos soportados por nuestro kernel viendo el contenido del directorio
/lib/modules/$(uname -r)/kernel/fs, dónde$(uname -r)es una variable que obtiene la versión de nuestro kernel con el comandouname -r:$ ls -l /lib/modules/$(uname -r)/kernel/fs
De este modo tendremos una visión precisa de los sistemas de archivos soportados por nuestro sistema.
Para montar algunos tipos de sistemas de archivos habrá que instalar paquetes adicionales, como puede ocurrir con los tipos exFAT, ntfs, hfs, hfs+, recursos Samba y otros.
Nota: El tipo
autointentará descubrir automáticamente el sistema de archivos apropiado, aunque podría reconocer un tipo de sistema de archivos equivocado. - Opciones de montaje (<options>) (Volver al índice General)
Describe las opciones de montaje asociadas con el sistema de archivos. Su formato es el de una lista de opciones apropiadas para el tipo de sistema de archivos, separadas por comas.A continuación explicamos algunas de las opciones (<options>) de montaje más usadas. Además de las opciones mostradas en este artículo, existen más que podéis encontrar en las páginas man del comando mount y del archivo fstab.
Nota: no confundir el tipo
autocon la opciónauto. Cuandoautose utiliza en el campo tipo (<type>), este hace que el sistema intente detectar que sistema de archivos se va a montar. Cuandoautose utiliza en el campo opciones (<options>), este hace que el sistema de archivos se monte automáticamente durante el arranque o, cuando se invoque la ordenmount -a.Nota: Téngase en cuenta que algunas de estas opciones solo son útiles cuando aparecen en el archivo
/etc/fstaby no son válidas para utilizar con el comando mount.- Opciones comunes para todos los sistemas de archivos (Volver al índice General)
- auto: El sistema de archivos será montado automáticamente durante el arranque, o cuando la orden
mount -ase invoque. - noauto: El sistema de archivos no será montado automáticamente, solo cuando se le ordene manualmente.
- dev: Permite interpretar los dispositivos especiales o de bloque del sistema de archivos.
- nodev: Impide la interpretación de los dispositivos especiales o de bloques del sistema de archivos.
- exec: Permite la ejecución de binarios residentes en el sistema de archivos.
- noexec: No permite la ejecución de binarios que se encuentren en el sistema de archivos.
- rw: Monta el sistema de archivos en modo lectura-escritura.
- ro: Monta el sistema de archivos en modo sólo lectura.
- sync: Todo el I/O se debe hacer de forma sincrónica.
- async: Todo el I/O se debe hacer de forma asíncrona.
- suid: Permite las operaciones de suid, y sgid bits. Se utiliza principalmente para permitir a los usuarios comunes ejecutar binarios con privilegios concedidos temporalmente con el fin de realizar una tarea específica.
- nosuid: Bloquea el funcionamiento de suid, y sgid bits.
- user: Permite a cualquier usuario montar el sistema de archivos. Esta opción incluye noexec, nosuid, nodev, a menos que se indique lo contrario.
- nouser: Solo el usuario root puede montar el sistema de archivos.
- users: Permite que cualquier usuario perteneciente al grupo users montar el sistema de archivos.
- defaults: Asigna las opciones de montaje predeterminadas que serán utilizadas para el sistema de archivos. Las opciones predeterminadas para ext4 son: rw, suid, dev, exec, auto, nouser, async.
- nofail: Monta el dispositivo cuando está presente, pero ignora su ausencia. Esto evita que aparezcan errores durante el arranque para los medios extraíbles.
- noatime: Deshabilita por completo el registro de tiempo de acceso para cualquier archivo. Implica la aplicación de nodiratime. Teniendo en cuenta que además se anota el acceso a los ficheros cacheados y el acceso constante a todos los ficheros de procesos del sistema, es un número muy importante de escrituras de fechas de acceso. Al reducir la cantidad de escrituras que el sistema operativo realiza sobre el disco, incrementamos la vida de las unidades SSD.
- nodiratime: Deshabilita el registro de tiempos de acceso para los directorios, pero mantiene activo el registro para los archivos.
- relatime: Limita el registro de timestamps únicamente a aquellos casos en que el archivo se modifica.
- owner: Permite al propietario del dispositivo montarlo.
De las tres opciones anteriores, la opción menos invasiva es claramente relatime, que ya de por sí ofrecerá alguna ganancia en el rendimiento de nuestros discos duros, sobre todo mecánicos. La opción que más rendimiento ofrece es noatime.
- auto: El sistema de archivos será montado automáticamente durante el arranque, o cuando la orden
- Opciones de montaje para tmpfs (Volver al índice General)
- size: Opción válida solo para sistemas tmpfs. Limita el tamaño que se utilizará de RAM. Por defecto se utiliza como máximo la mitad de la memoria RAM. También se puede expresar el tamaño en porcentajes de memoria RAM. Por ejemplo
size=50%.
- size: Opción válida solo para sistemas tmpfs. Limita el tamaño que se utilizará de RAM. Por defecto se utiliza como máximo la mitad de la memoria RAM. También se puede expresar el tamaño en porcentajes de memoria RAM. Por ejemplo
- Opciones de montaje para ext3 (Volver al índice General)
- commit=30: Retrasa la escritura de los metadatos de ficheros, con lo que se reduce mucho el uso de disco. No recomendable si estuviésemos en un ordenador con batería.
- data=writeback: Evita que los metadatos de los archivos sean escritos de forma lenta tras escribir los archivos. Esta opción no provoca corrupción en el sistema de archivos, pero puede provocar que los cambios mas recientes se pierdan si cae el sistema. No lo incluiremos en nuestros ejemplos ya que no funciona en algunos sistemas.
- Opciones de montaje para ext4 (Volver al índice General)
Las opciones anteriores para ext3 son válidas para ext4.- discard/nodiscard: Emite las órdenes TRIM para dispositivos de bloques subyacentes cuando se liberan los bloques. Recomendado para usar si el sistema de archivos se encuentra en un sistemas de ficheros ubicados en unidades SSD.
- nodelalloc: Desactiva la función de ext4 de delayed allocation, que reserva el espacio pero no lo escribe. Aplaza la escritura de bloques hasta que se esté en el tiempo de escritura. Es más que nada por seguridad.
- barrier=0/barrier=1/barrier/nobarrier: Desactiva las barreras automáticamente. Se refiere a los límites de escritura. Si es igual a cero los elimina, si es igual a 1, los activa. Podemos prescindir de estas barreras si los discos están protegidos contra cortes de corriente. Sólo en este caso, incluimos la opción barrier=0
- i_version: Habilita el uso de la versión extendida de 64 bits en sistemas de ficheros ext4.
- inode_readahead_blks=64: Aumenta de 32 a 64 el tamaño de los bloques de lectura.
- Opciones de montaje para vfat (Volver al índice General)
- flush: Si se establece, el sistema de archivos intentará descargarse en el disco más rápido de lo normal. No se establece de forma predeterminada.
NOTA: Para añadir más de una opción de montaje, deberán añadirse separadas por comas (
,) y sin espacios. - Opciones comunes para todos los sistemas de archivos (Volver al índice General)
- El campo (<dump>) (Volver al índice General)
El campo <dump> es usado por el comandodump, que examina archivos en sistemas de archivos ext2, ext3 y ext4 y determina qué archivos deben respaldarse. Estos archivos se copiarán en el disco, cinta o el medio de almacenamiento elegido para el respaldo.Por tanto, el valor de este campo determinará si el sistema de archivos debe de ser respaldado. La ausencia de valor en este campo devuelve un valor
ceroy el comandodumpasume que no es necesario respaldar el sistema de archivos (Véanse las líneas 10, 12 y 14 de nuestro ejemplo). - El campo (<fsck>) (Volver al índice General)
Este campo es usado por el comando fsck para determinar el orden en el que se realizan las comprobaciones del sistema de archivos en el momento del reinicio. El sistema de archivos raíz (/) deberá tener en este campo el valor de1, los otros sistemas de archivos deberán tener un valor de2. Los sistemas de archivos dentro de una misma unidad se verificarán secuencialmente, pero los sistemas de archivos en diferentes unidades se verificarán al mismo tiempo para utilizar el paralelismo disponible en el hardware. Si este campo no está presente o escero, se devuelve un valor de0y el comando fsck asumirá que no es necesario verificar el sistemas de archivos (Véanse las líneas 10, 12 y 14 de nuestro ejemplo). - Ejemplos (Volver al índice General)
En </ZeppelinuX> hemos publicado el artículo Montar y desmontar particiones en Linux. En el punto Montar una unidad o partición al inicio del sistema podréis ver algunos ejemplos bastante ilustrativos de como editar y configurar el archivo/etc/fstabpara montar distintos tipos de sistemas de archivos. - Desmontar un sistema de archivos con el comando umount (Volver al índice General)
Si necesitamos desmontar una partición o dispositivo, solo tendremos que ejecutar el siguiente comando:$ sudo umount directorio
Donde
directorioes el punto de montaje del dispositivo.Por ejemplo:
$ sudo umount /media/cdrom
o también:
$ sudo umount /mnt/iso
- El comando mount -a (Volver al índice General)
El comandomount -a(o tambiénmount --all) hace que todos los sistemas de archivos definidos en el archivo fstab se monten con los parámetros indicados en fstab, excepto aquellos sistemas de archivos definidos con la opción noauto. Este comando es muy útil para recargar la configuración del archivo/etc/fstabtras su modificación y no tener que reiniciar el sistema, es decir, recargar fstab en caliente.$ sudo mount -a
o lo que es lo mismo:
$ sudo mount --all
La opción
-F(o también--fork) se usa junto con la opción-a. Conjuntamente, permiten el montaje en dispositivos diferentes o servidores NFS diferentes en paralelo.$ sudo mount -a -F
o lo que es lo mismo:
$ sudo mount --all --fork
Esta orden tiene la ventaja de que los montajes son más rápidos y la desventaja de que se realizan en un orden indefinido. Por ejemplo, si hemos definido en fstab el montaje de los directorios
/vary/var/www, en este caso, no es conveniente utilizar esta orden ya que puede ocurrir que intente montar/var/wwwantes que/var.
- Las líneas 2, 3, 4, 5, 6, 7, 8, 9, 11 y 13 son comentarios ya que empiezan con el carácter
El fichero fstab (file systems table) contiene información que describe los diversos sistemas de archivos (discos, particiones, directorios remotos, etc) disponibles, ya sea en nuestro equipo o en equipos remotos. Cada línea describe un sistema de archivos y los campos en cada línea están separados por tabulaciones o espacios. El orden de los registros en fstab es muy importante porque los comandos mount, umount, dump y fsck recorren fstab secuencialmente a medida que trabajan.
fstab, en sistemas Unix/Linux, normalmente se encuentra en el directorio /etc. fstab es parte de la configuración del sistema. En este fichero se definen la lista de discos y particiones disponibles. En fstab se establece como montar cada dispositivo o partición y qué configuración utilizar en cada uno de ellos.
Los comandos mount, umount, dump y fsck leen este fichero para determinar qué opciones utilizar, como por ejemplo, a la hora de montar con el comando mount el dispositivo o partición especificado en la orden de montaje, que sistema de archivos desmontar con el comando umount cuando se pasa como parámetro un punto de montaje, si el sistema de archivos debe de ser respaldado con el comando dump o para determinar si se realizan comprobaciones en el sistema de archivos con el comando fsck.
Un ejemplo simple de montaje sería el siguiente:
$ sudo mount /media/cdrom/ |
Montaría en el directorio /media/cdrom el dispositivo indicado en /etc/fstab (p.e. /dev/sr0) con las opciones establecidas en el archivo /etc/fsab.
Un ejemplo para desmontar el dispositivo anterior sería el siguiente:
$ sudo umount /media/cdrom/ |
Es trabajo del administrador del sistema (root) mantener este fichero. Normalmente, deberá utilizar un editor de texto plano para su modificación. Los editores de texto plano más utilizados para la Interfaz de línea de comandos (CLI) en Unix/Linux son: vim, vi, nano, etc.
Espero que este artículo os haya sido de utilidad. Si pensáis que podéis colaborar para mejorar este artículo, que hay algo erróneo en él o simplemente deseáis comentarlo, por favor, dejad vuestra opinión más abajo.






Deja una respuesta