4.5 Montajes Persistentes con fstab
tutorial.getReady
- Comprenderás por qué los montajes manuales (
mount) desaparecen al reiniciar y cómo hacerlos permanentes. - Aprenderás a leer y escribir correctamente las 6 columnas de/etc/fstab. - Usarás UUIDs en vez de rutas/dev/sdXpara evitar errores de dispositivo al cambiar discos. - Verificarás la configuración sin reiniciar el sistema conmount -a.
Imagina que pasas 20 minutos particionando un disco nuevo, formateándolo con ext4 y montándolo en /mnt/datos. Todo funciona. Reinicias el servidor la noche siguiente para aplicar actualizaciones… y el disco ha desaparecido del árbol de directorios. El montaje nunca ocurrió.
Esto es el comportamiento correcto del kernel: los montajes mount son temporales por diseño. La memoria que los describe vive en el RAM del sistema y se borra con cada reinicio. Para que persistan, necesitas registrarlos en el libro de órdenes permanente de Linux: /etc/fstab.
1. Anatomía de /etc/fstab
Sección titulada “1. Anatomía de /etc/fstab"/etc/fstab es un fichero de texto plano que el sistema lee automáticamente durante el arranque (cuando systemd ejecuta las unidades local-fs.target) para montar todos los dispositivos registrados.
# Ver el contenido actualcat /etc/fstabCada línea que no empiece por # es una instrucción de montaje con 6 columnas:
<dispositivo> <punto_montaje> <tipo_fs> <opciones> <dump> <pass>Ejemplo real comentado
Sección titulada “Ejemplo real comentado"# Disco raíz del sistema (instalado automáticamente por el instalador)UUID=a1b2c3d4-e5f6-7890-abcd-ef1234567890 / ext4 errors=remount-ro 0 1
# Partición de swapUUID=dead-beef-1234-5678-abcdef012345 none swap sw 0 0
# Disco de datos montado en /mnt/datosUUID=1234-abcd-5678-ef90-fedcba987654 /mnt/datos ext4 defaults 0 2
# Partición VFAT (USB, UEFI)UUID=AB12-CD34 /boot/efi vfat umask=0077 0 1Significado de cada columna
Sección titulada “Significado de cada columna"| Columna | Nombre | Descripción |
|---|---|---|
| 1 | Dispositivo | UUID=..., /dev/sdX, LABEL=nombre o dirección de red |
| 2 | Punto de montaje | Directorio donde aparecerá el dispositivo |
| 3 | Tipo de FS | ext4, xfs, btrfs, vfat, swap, nfs, tmpfs |
| 4 | Opciones | defaults, ro, noexec, noatime, nofail… |
| 5 | dump | 0 = no backup con dump (casi siempre 0) |
| 6 | pass | Orden de comprobación fsck: 0=ninguna, 1=raíz primero, 2=resto |
2. El Problema de /dev/sdX: Por qué son Peligrosos
Sección titulada “2. El Problema de /dev/sdX: Por qué son Peligrosos"Los nombres de dispositivo como /dev/sda, /dev/sdb no son estables. El kernel los asigna en el orden en que detecta el hardware durante el arranque. Si desconectas un disco USB y lo reconectas, puede aparecer como /dev/sdb en vez de /dev/sdc. Si usas esos nombres en fstab, montarás el dispositivo equivocado.
# MAL: nombre de dispositivo inestable/dev/sdb1 /mnt/datos ext4 defaults 0 2 # ← Peligroso
# BIEN: UUID único e inmutableUUID=1234-abcd-5678 /mnt/datos ext4 defaults 0 2 # ← CorrectoObtener el UUID de un dispositivo
Sección titulada “Obtener el UUID de un dispositivo"# Listar todos los dispositivos con sus UUIDs, tipos y LABELssudo blkid
# Ejemplo de salida:# /dev/sda1: UUID="a1b2c3d4-..." TYPE="ext4" PARTUUID="..."# /dev/sdb1: UUID="1234-abcd-..." TYPE="ext4"# /dev/sdc1: UUID="AB12-CD34" TYPE="vfat"
# Ver solo la información de un dispositivo concretosudo blkid /dev/sdb1
# Alternativa: lsblk con columna UUIDlsblk -o NAME,UUID,FSTYPE,SIZE,MOUNTPOINT3. Opciones de Montaje más Importantes
Sección titulada “3. Opciones de Montaje más Importantes"La columna de opciones controla cómo se comporta el dispositivo montado:
| Opción | Descripción |
|---|---|
defaults | Equivale a rw,suid,dev,exec,auto,nouser,async |
ro | Solo lectura |
rw | Lectura y escritura (por defecto) |
noexec | Prohíbe ejecutar binarios (seguridad en /tmp, /home) |
nosuid | Ignora el bit SUID (evita escalada de privilegios) |
noatime | No actualiza el tiempo de acceso al leer (mejora rendimiento) |
nofail | El sistema arranca aunque el dispositivo no esté disponible |
user | Permite montaje a usuarios no root |
_netdev | Marca el dispositivo como de red (espera red antes de montar) |
4. Añadir un Disco a fstab Paso a Paso
Sección titulada “4. Añadir un Disco a fstab Paso a Paso"# 1. Identificar el dispositivo y su UUIDsudo blkid /dev/sdb1# /dev/sdb1: UUID="9f3a1234-ab12-cd34-ef56-789012345678" TYPE="ext4"
# 2. Crear el punto de montaje si no existesudo mkdir -p /mnt/datos
# 3. Editar fstabsudo nano /etc/fstab
# 4. Añadir la línea al final del fichero:# UUID=9f3a1234-ab12-cd34-ef56-789012345678 /mnt/datos ext4 defaults,nofail 0 2
# 5. Verificar sin reiniciar (monta todo lo registrado en fstab)sudo mount -a
# 6. Confirmar que está montadodf -h /mnt/datosmount | grep /mnt/datos# 1. Obtener UUID de la partición swapsudo blkid /dev/sdb2# /dev/sdb2: UUID="deadbeef-1234-5678-abcd-ef0123456789" TYPE="swap"
# 2. Añadir a fstab:# UUID=deadbeef-1234-5678-abcd-ef0123456789 none swap sw 0 0
# 3. Activar el swap sin reiniciarsudo swapon -a
# 4. Verificarswapon --showfree -h# Montar /tmp en RAM (mejora velocidad y protege disco en producción)# Añadir a fstab:# tmpfs /tmp tmpfs defaults,size=2G,noexec,nosuid 0 0
# Aplicarsudo mount -a
# Verificardf -h /tmp# tmpfs 2.0G 0 2.0G 0% /tmp5. Verificación y Diagnóstico
Sección titulada “5. Verificación y Diagnóstico"# Verificar la sintaxis y montar todo lo declarado en fstab# Este comando es tu red de seguridad antes de reiniciarsudo mount -a
# Si hay errores, los verás aquí:# mount: /mnt/datos: can't read superblock# mount: /mnt/backup: special device UUID=... does not exist
# Ver todos los sistemas de archivos montados actualmentefindmnt
# Ver en formato árbolfindmnt --tree
# Comparar lo que debería estar montado (fstab) con lo que está montadofindmnt --verify
# Comprobar un punto de montaje concretofindmnt /mnt/datosRecuperación si el sistema no arranca por fstab corrupto
Sección titulada “Recuperación si el sistema no arranca por fstab corrupto"# Si el sistema cae a shell de emergencia por un fstab malo:
# 1. El sistema monta raíz en modo solo lectura; remontarla en rw:mount -o remount,rw /
# 2. Editar fstab y corregir el errornano /etc/fstab
# 3. Verificarmount -a
# 4. ReiniciarrebootComprueba tus conocimientos
Sección titulada “Comprueba tus conocimientos"-
Acabas de formatear un nuevo disco como
ext4y lo has montado manualmente consudo mount /dev/sdb1 /mnt/datos. Funciona perfectamente. Al reiniciar el servidor al día siguiente, el directorio/mnt/datosestá vacío y el disco no aparece montado. ¿Por qué? -
Tu compañero ha editado
/etc/fstabañadiendo un disco NAS de empresa y quiere reiniciar para aplicar los cambios. ¿Qué comando deberías ejecutar antes del reinicio para asegurarte de que la entrada es correcta? -
Tienes un disco USB de backup registrado en fstab. Al arrancar el servidor en el centro de datos, el técnico olvidó conectar el USB. ¿Qué opción en fstab evita que el sistema se quede esperando 90 segundos y caiga a shell de emergencia?