domingo, 16 de julio de 2023

/etc/fstab - montar particiones automáticamente

Voy a actualizar este manual, porque añadir entradas en el fichero: /etc/fstab no ha cambiado, pero si que ha mejorado la tecnología de uso con el paso de los años.

Actualmente, en el momento de escribir la actualización de este manual (julio de 2023), es normal encontrarse en los ordenadores un disco SSD ó M.2 de poca o mediana capacidad, para el sistema operativo y un disco duro HDD de mucha capacidad para almacenar los datos (fotografías, música, proyectos, etc...), aunque pueden ser discos: SSD, M.2, etc... el método es el mismo para cualquier tipo de disco de almacenamiento.

Anteriormente en este sitio web hemos enseñado cómo particionar discos, cómo crear y mantener sistemas de archivos en ellos. Sin embargo, antes de poder acceder a un sistema de archivos en Linux, es necesario montarlo.

Montar un disco, significa adjuntar el sistema de ficheros a un punto específico en el árbol de directorios del sistema operativo, llamado: punto de montaje. Los sistemas de archivos se pueden montar manual o automáticamente y hay muchas formas de hacerlo. En este manual vamos a montar automáticamente sistemas de ficheros, en el archivo: /etc/fstab. Con este método, evitamos tener que montarlo manualmente cada vez que lo vamos a usar. Ya que estará montado automáticamente en cada arranque del sistema operativo


¿Dónde montar?

Se puede montar un sistema de archivos en cualquier lugar del árbol de directorios que queramos.

Tradicionalmente, /mnt era el directorio en el que se montaban todos los dispositivos internos y externos y una serie de “puntos de montaje" configurados por defecto, como unidades de CD-ROM (/mnt/cdrom) y disquetes (/mnt/floppy).

Con el paso de los años y de las nuevas tecnologías, este directorio ha cambiado por: /media, que ahora es el punto de montaje predeterminado para cualquier medio extraíble, conectado por el usuario (por ejemplo, discos externos, pendrive USB, tarjetas de memoria sdcard, etc...) al sistema.

La mayoría de las distribuciones actuales de Linux montan automáticamente los dispositivos extraíbles en: /media/USUARIO/ETIQUETA cuando se conectan al sistema. Donde USUARIO es el nombre de usuario y ETIQUETA es la etiqueta del dispositivo. 


Por ejemplo, un pendrive USB con etiqueta: FOTOGRAFIAS conectada por el usuario: DIEGO se montaría en:

/media/diego/fotografias

Dicho esto, siempre que necesite montar manualmente un sistema de archivos (disco duro interno), lo más recomendable es montarlo en: /mnt.

Antiguamente se usaba para identificar el disco duro, el nombre del dispositivo de montaje. Usaba la estructura siguiente: /dev/hdx
y y luego se actualizó a: /dev/sdxy. (A continuación un resumen muy breve, para mas información, busca en internet, porque si lo explicamos aquí, este manual va a ser muy largo)

La X: se usaba una letra del abecedario, por orden alfabético, una sola letra (a,b,c,d,e,f...)
La Y: se usaba un numero entero, comenzando por el numero 1 (luego sería: 2,3,4,5....)

Ejemplos:

/dev/sda1
/dev/sdb3
/dev/sdc8

Usar este método tiene un gran inconveniente, si cambias el cable (macho) de conexión del disco duro a otro puerto (hembra) de la placa base del ordenador, distinto del que estaba conectado originariamente, te va dejar de funcionar, se te va a ralentizar el ordenador, se va a demorar mucho en el arranque del sistema operativo y hasta puede hacer que el sistema operativo no te arranque.

Para evitar todo esto se actualizó y se reemplazó el uso del: nombre del dispositivo, por el uso del: UUID en el archivo: /etc/fstab.



Que es UUID

UUID (Universally Unique IDentifier, en español: IDentificador Unico Universal), es un identificador único para cada dispositivo, que contenga un sistema de ficheros.

Es muy importante utilizarlo como identificador para el punto de montaje de un dispositivo. En lugar de usar como identificador: /dev/sdxy es mejor usar el UUID y de esta forma si algún día desconectamos el disco duro, y lo conectamos en otro puerto SATA distinto del que estaba conectado anteriormente, los puntos de montaje de los dispositivos no se verían afectados, y todo funcionará exactamente igual.

Algunos de los usos del UUID:

- El montaje automático de los dispositivos, en el archivo /etc/fstab
- El identificador de dispositivo que usa la partición: swap, (en: /etc/fstab y en: /etc/initramfs-tools/conf.d/resume),etc..
- Para identificar cada interfaz de red (ethernet, wifi, etc...)




Estructura de un UUID

Un UUID es un número de 16 bytes (128 bits), que según la regla de uso (el formato), se expresa mediante 32 dígitos hexadecimales divididos en cinco grupos separados por guiones con la siguiente estructura: 8-4-4-4-12, lo que da un total de 36 caracteres (32 dígitos y 4 guiones).

   grupo-1  grup2  grup3  grup4         grupo-5
XXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX

Ejemplo:
UUID=2c8866bd-a2bc-434b-99dd-4d3140026946

En principio, dado que el sistema usual de numeración es de base decimal y, por ello, solo se dispone de diez dígitos (del 0 al 9), se adoptó la convención de usar las seis primeras letras del alfabeto latino (A,B,C,D,E,F) para suplir los dígitos que faltan.

Por tanto el listado de número y letras que se pueden usar es el siguiente:

(0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F)




UUID según el sistema de ficheros

Existen muchisimos sistemas de ficheros, aquí nombraremos algunos: ext2, ext3, ext4, btrfs, fat16, fat32, exfat, ntfs


ext2, ext3, etx4, btrfs

Encontraremos UUID de 16 bytes (128 bits) con un total de 36 caracteres (32 dígitos y 4 guiones)

UUID=a1234bc4-d5ef-2a34-bb12-d1f00ce63b9a


ntfs

Encontraremos UUID de 8 bytes (64 bits) con un total de 16 dígitos hexadecimales, sin guiones.

UUID=536C0D1F6A0CC5A4


fat12, fat32 y exfat

Encontraremos UUID de 4 bytes (32 bits) con un total de 9 caracteres (8 dígitos y 1 guión).

UUID=206A-54DF


NOTA MUY IMPORTANTE:

- La ventaja de usar los UUID: es imposible que dos UUID usen la misma serie hexadecimal.

- El inconveniente de los UUID: la serie hexadecimal son largas y difíciles de leer y recordar por el ser humano. Y, cada vez que se redimensiona el tamaño de una partición o se formatea, se genera un nuevo UUID y hay que modificar manualmente las ficheros de configuración. (Porque si no se actualiza la UUID, después de redimensionar o de formatear da error)




archivo: /etc/fstab

El archivo /etc/fstab, es un fichero de texto plano, incluye información muy resumida de cómo se tiene que montar un sistema de ficheros.

- Nos informa que podemos usar el comando: blkid (aunque luego usaremos un comando mejor) para obtener el UUID= necesario para el correcto punto de montaje.
- Las líneas que comienza con una almohadilla (#) son comentarios y son ignoradas por el sistema operativo.
- Cada línea que no incluye la almohadilla, indica un sistema de ficheros que se va a montar automáticamente.

Cada línea a montar automáticamente tiene la siguiente estructura, de seis columnas que tenemos que cumplimentar, para el correcto punto de montaje, en el siguiente orden:

FILESYSTEM   MOUNTPOINT   TYPE   OPTIONS   DUMP   PASS
 
 
Explicación de cada una de las columnas:

- file system: Partición, punto montaje donde se define en la línea. UUID=

- mount point: Directorio de montaje de la partición (en /mnt/nombre_de_la_partición).

- type: Tipo de sistema de ficheros que contiene la partición (ext4, nfts-3g, vfat). Si se pone auto, la orden mount determinar qué tipo de sistema de ficheros utiliza la partición. Esta opción es útil para proporcionar soporte a unidades ópticas (CD/DVD).

- options: Opciones de montaje de la partición. (ver a continuación en Opciones de montaje)

- dump: Utilizado por el programa dump (volcado) para indicar cuándo hacer una copia de seguridad. El comando dump comprueba la entrada en el archivo /etc/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. Por defecto en Debian: dump no viene instalado, por lo que el valor 0 es por defecto.

- pass: Utilizado por la orden 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 debe tener la prioridad más alta, por lo que se le pondrá un 1, y todos los demás sistemas de archivos que queramos que se comprueben deben tener un 2. La utilidad fsck no comprobará los sistemas de ficheros con valor 0. Las particiones situadas sobre un mismo disco serán verificadas de manera secuencial, pero si están situadas en discos diferentes el chequeo se hará en paralelo.

Opciones de montaje hay muchas, en la página del manual del comando mount podemos verlas todas. Algunas de las más importantes son las siguientes:

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

- 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 solo 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 montar el sistema de archivos, a cualquier usuario perteneciente al grupo users.

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

- suid: Permite las operaciones con los bits suid y sgid. Se utiliza principalmente para permitir a los usuarios normales ejecutar binarios con privilegios concedidos temporalmente con el fin de realizar una tarea específica.

- nosuid: Bloquea el funcionamiento de los bits suid y sgid.

- noatime: No actualiza el nodo-i de los ficheros con el tiempo de acceso. Puede aumentar las prestaciones del sistema al acceder menos al disco.

- nodiratime: No actualiza el nodo-i de los directorios con el tiempo de acceso. Puede aumentar las prestaciones del sistema al acceder menos al disco.

- defaults: Asigna las opciones de montaje predeterminadas que serán utilizadas para el sistema de archivos. Las opciones predeterminadas son: rw, suid, dev, exec, auto, nouser, async.


Hay tres formas de identificar un punto de montaje en: /etc/fstab

- Usar el nombre que usa el kernel: (/dev/sda1)
- Usar el nombre de la etiqueta: (LABEL=Debian) (Aconsejo usar un nombre corto, o 2 palabras sin espacios, usando un guión)
- Usar el UUID: (UUID=a1234bc4-d5ef-2a34-bb12-d1f00ce63b9a)

Ejemplo de identificar  el mismo punto de montaje, de tres formas en: /etc/fstab



Como ver el UUID de los discos

Editar el fichero: /etc/fstab solo lo puede hacer el usuario administrador del sistema (root). Por tanto a partir de ahora ya contamos que somos usuarios administradores del sistema operativo.

El propio fichero: /etc/fstab no informa que podemos usar el comando: blkid para obtener el UUID de cada dispositivo, y como vemos en la imagen inferior, se ve muy bien, pero cuesta leer cada línea, el UUID y el resto de columnas.

ejemplo de blkid:

# blkid



 
pero nosotros vamos a usar el comando: lsblk -f

lsblk -f



Más ejemplo, usando el comando: lsblk -f

lsblk -f
 

 

Resumen de puntos de montaje por sistema de ficheros


EXT4 - Para particiones ext4

#   FILESYSTEM                                                  MOUNTPOINT    TYPE   OPTIONS     DUMP  PASS
UUID=f99eddd1-fd9e-4323-b4c4-8321d9e3a1d2  /mnt/usuarios  ext3  rw,user,auto   0        0


NTFS-3G - Para particiones ntfs modo lectura y escritura
#   FILESYSTEM                                                    MOUNTPOINT   TYPE     OPTIONS                                DUMP  PASS
UUID=f99eddd1-fd9e-4323-b4c4-8321d9e3a1d2  /mnt/win10  ntfs-3g  defaults.locale=es_ES.utf.8   0        0


VFAT - Para particiones fat
#   FILESYSTEM                                                   MOUNTPOINT  TYPE   OPTIONS        DUMP  PASS
UUID=f99eddd1-fd9e-4323-b4c4-8321d9e3a1d2  /mnt/datos      vfat   rw,users,auto    0       0


NFS - Para compartir recursos en red
#   FILESYSTEM                                                                         MOUNTPOINT  TYPE   OPTIONS    DUMP  PASS
UUID=f99eddd1-fd9e-4323-b4c4-8321d9e3a1d2:/home/datos  /mnt/datos       nfs  rw,hard,intr     0        0




Recargar en caliente el ficheros: /etc/fstab

El siguiente comando recarga fstab sin necesidad de reiniciar el sistema.

mount -a






No hay comentarios: