sábado, 16 de marzo de 2019

El archivo fstab de Linux

El archivo /etc/fstab contiene información sobre el sistema de archivos. En el mismo viene definido cómo la partición y los dispositivos de almacenamiento serán montados e integrados en el sistema. Este archivo es leído por la orden mount para determinar qué opciones utilizar al montar un dispositivo específico o una partición.

Definiciones de los campos

El archivo /etc/fstab contiene los siguientes campos separados por un espacio o una
tabulación:

<file system> - Define la partición o dispositivo de almacenamiento para ser montado.

<dir> - Indica a la orden mount el punto de montaje donde la partición (<file system>) será montada.

<type> - Indica el tipo de sistema de archivos de la partición o dispositivo de almacenamiento para ser montado. Hay muchos sistemas de archivos diferentes que son compatibles como, por ejemplo: ext2 , ext3 , ext4 , reiserfs , xfs , jfs , smbfs , iso9660 , vfat , ntfs , swap y auto . El type auto permite a la orden mount determinar qué tipo de sistema de archivos se utiliza. Esta opción es útil para proporcionar soporte a unidades ópticas (CD/DVD).

El archivo fstab de Linux


<options> - Indica las opciones de montaje que la orden mount utilizará para montar el sistema de archivos. Hay que tener en cuenta que algunas opciones de montaje son para sistema de archivos específicos. Algunas de las opciones más comunes son: 

auto - El sistema de archivos será montado automáticamente durante el arranque, o cuando la orden mount -a se invoque.

noauto - El sistema de archivos no será montado automáticamente, solo cuando se le ordene manualmente.

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.

ro - Monta el sistema de archivos en modo sólo lectura.

rw - Monta el sistema de archivos en modo lectura-escritura.

user - Permite a cualquier usuario montar el sistema de archivos. Esta opción incluye noexec , nosuid , nodev  a menos que se indique lo contrario.

users - Permite que cualquier usuario perteneciente al grupo users montar el sistema de archivos.

nouser - Solo el usuario root puede montar el sistema de archivos.

owner - Permite al propietario del dispositivo montarlo.

sync - Todo el I/O se debe hacer de forma sincrónica.

async - Todo el I/O se debe hacer de forma asíncrona.

dev - Intérprete de 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.

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.

noatime - No actualiza el inode con el tiempo de acceso al filesystem. Puede aumentar las prestaciones (véase opciones atime).

nodiratime - No actualiza el inode de los directorios con el tiempo de acceso al filesystem. Puede aumentar las prestaciones (ver opciones atime más abajo).

relatime - Actualiza en el inode solo los tiempos relativos a modificaciones o cambios de los archivos. Los tiempos de acceso vienen actualizados solo si el último acceso es anterior respecto al de la última modificación. (Similar a noatime, pero no interfiere con programas como mutt u otras aplicaciones que deben conocer si un archivo ha sido leído después de la última modificación). Puede aumentar las prestaciones (ver opciones atime más abajo).

flush - La opción vfat permite eliminar datos con más frecuencia, dado que el sistema de archivos fat necesita escribir más a menudo los datos en el disco con el fin de evitar que las ventanas de transferencia se cierren mientras los datos no se han escrito todavía.

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 .

 <dump> - Utilizado por el programa dump («volcado») para decidir cuándo hacer una copia de seguridad. Dump comprueba la entrada en el archivo fstab y el número de la misma le indica si un sistema de archivos debe ser respaldado o no. La entradas posibles son 0 y 1. Si es 0, dump ignorará el sistema de archivos, mientras que si el valor es 1, dump hará una copia de seguridad. La mayoría de los usuarios no tendrán dump instalado, por lo que deben poner el valor 0 para la entrada <dump>.

 <pass> -Utilizado por fsck para decidir el orden en el que los sistemas de archivos serán comprobados. Las entradas posibles son 0, 1 y 2. El sistema de archivos raíz («root») debe tener la más alta prioridad: 1. Todos los demás sistemas de archivos que desea comprobar deben tener un 2. La utilidad fsck no comprobará los sistemas de archivos que vengan ajustados con un valor 0 en <pass>.

El archivo fstab de Linux


Identificación de los sistemas de archivos en el archivo fstab de Linux

Hay diferentes formas de identificar una partición o un dispositivo de almacenamiento en /etc/fstab: por el nombre descriptivo del kernel, por la etiqueta o por la UUID. La ventaja de usar etiquetas o UUID, es que no dependen del orden en el que las unidades son (físicamente) conectadas a la máquina. Esto es útil si se cambia el orden de los dispositivos de almacenamiento en la BIOS, o si se cambia el cableado de conexión de los dispositivos de almacenamiento.

Todas las particiones y dispositivos tienen un UUID único. Los UUID son generados por las utilidades de creación del sistema de archivos al crear o formatear una partición.

Ejecutamos lsblk -f para mostrar la lista de las particiones:
comando lsblk de linux


Identificación de file system mediante etiquetas.

Identificación de file system mediante etiquetas


Identificación de file system mediante UUID.


Identificación de file system mediante UUID


Opciones atime

El uso de las opciones noatime , nodiratime o relatime puede mejorar las prestaciones del  disco. De forma predeterminada, Linux mantiene un registro (lo escribe en el disco) de cada lectura efectuada atime. Esto es útil cuando se usa Linux para servidores, pero no tiene mucho valor cuando se usa para escritorio. El inconveniente de la opción predefinida atime es que incluso la lectura de un archivo desde la memoria caché (lectura desde la memoria, en lugar desde el disco directamente), aún en este caso, resultará registrado. Usando la opción noatime deshabilita completamente la actualización del tiempo de acceso a los archivos cada vez que se lee un archivo. Esto funciona bien para casi todas las aplicaciones, excepto para algunas raras como Mutt que necesitan dicha información. El uso de la opción relatime permite la actualización de los tiempos de acceso al archivo solo si el archivo viene modificado (a diferencia de noatime donde el tiempo de acceso a los archivos leídos no vendrá actualizado y será anterior respecto al tiempo de modificación del archivo). La opción nodiratime deshabilita la escritura de los tiempos de acceso a los archivos, solo para los directorios, mientras que para el resto de los archivos los tiempos de acceso todavía pueden ser actualizados. El mejor compromiso poder ser el uso de relatime que no influye en el funcionamiento de los programas como Mutt, pero se obtendrá un aumento del rendimiento ya que los tiempos de acceso a los archivos vendrán actualizados sólo si los archivos son modificados. 

TMPFS

tmpfs es un sistema de archivos temporal que reside en la memoria y/o en la partición de intercambio, dependiendo de lo mucho que se llene. El montaje de carpetas en tmpfs puede ser una manera eficaz de acelerar los accesos en la lectura de los archivos, o para asegurar que sus contenidos se borren automáticamente después del reinicio. Algunas carpetas donde tmpfs es comúnmente utilizadas son /tmp, /var/lock y /var/run. No se debe utilizar para /var/tmp, porque esa carpeta es para los archivos temporales que deben ser conservados después del reinicio. Arch usa el directorio /run como tmpfs, con /var/run y /var/lock simplemente existentes como enlaces simbólicos para permitir la compatibilidad. tmpfs también se utiliza por /tmp en la configuración predeterminada del archivo /etc/fstab .

De forma predeterminada, una partición tmpfs tiene establecido el tamaño máximo a la mitad de la memoria RAM total, pero esto se puede personalizar. Tenga en cuenta que el actual consumo de memoria/swap depende de lo mucho que se llenen, y la partición tmpfs no consume memoria hasta que no viene usada.

No hay comentarios:

Publicar un comentario