104.3 Controlar el montaje y desmontaje de sistemas de archivos - Teoria

1. Concepto de montaje

En Linux, para acceder al contenido de un sistema de archivos (particion, disco USB, imagen ISO, etc.), es necesario montarlo en un directorio del arbol de directorios. Este directorio se llama punto de montaje (mount point).

El punto de montaje debe:

  • Existir previamente como directorio
  • Estar preferiblemente vacio (si tiene contenido, este queda oculto mientras haya algo montado)

2. Comando mount

2.1 Uso basico

# Sintaxis general
mount -t tipo -o opciones dispositivo punto_de_montaje
 
# Montar una particion ext4
mount /dev/sda1 /mnt/datos
 
# Montar especificando el tipo
mount -t ext4 /dev/sda1 /mnt/datos
 
# Montar por UUID
mount UUID="xxxx-xxxx" /mnt/datos
 
# Ver todos los sistemas montados
mount
# O mejor:
findmnt

2.2 Opciones de montaje (-o)

Las opciones se especifican con -o separadas por comas:

mount -o ro,noexec,nosuid /dev/sdb1 /mnt/usb

Opciones principales:

OpcionDescripcion
roSolo lectura (read-only)
rwLectura-escritura (predeterminado)
noexecNo permitir ejecucion de binarios
execPermitir ejecucion (predeterminado)
nosuidIgnorar bits SUID y SGID
suidRespetar SUID/SGID (predeterminado)
nodevNo interpretar dispositivos especiales
devInterpretar dispositivos (predeterminado)
autoPuede montarse con mount -a
noautoNo montar con mount -a (requiere montaje manual)
userPermitir a usuarios normales montar (implica noexec, nosuid, nodev)
nouserSolo root puede montar (predeterminado)
usersCualquier usuario puede montar y desmontar
defaultsEquivale a rw,suid,dev,exec,auto,nouser,async
remountRemontar un FS ya montado (cambiar opciones)
loopMontar un archivo como dispositivo de bloque (imagenes ISO, etc.)
syncEscrituras sincronas (mas seguro, mas lento)
asyncEscrituras asincronas (predeterminado)
noatimeNo actualizar tiempo de acceso (mejora rendimiento)
relatimeActualizar atime solo si mtime/ctime es mas reciente
nofailNo reportar error si el dispositivo no existe al arrancar

2.3 Remontar un sistema de archivos

Para cambiar opciones sin desmontar:

# Remontar como solo lectura
mount -o remount,ro /mnt/datos
 
# Remontar la raiz como solo lectura (util para fsck)
mount -o remount,ro /
 
# Remontar como lectura-escritura
mount -o remount,rw /

2.4 Montar imagenes ISO con loop

# Montar una imagen ISO
mount -o loop imagen.iso /mnt/iso
 
# Equivalente explicito
mount -t iso9660 -o loop imagen.iso /mnt/iso
 
# Montar imagen de disco
mount -o loop,offset=1048576 disk.img /mnt/disk

Nota: La opcion loop crea un dispositivo loop (/dev/loopN) que trata al archivo como si fuera un dispositivo de bloque.

2.5 Montar todo lo de fstab

# Montar todos los FS listados en /etc/fstab (excepto noauto)
mount -a

3. Comando umount

# Desmontar por punto de montaje
umount /mnt/datos
 
# Desmontar por dispositivo
umount /dev/sda1
 
# Forzar desmontaje (usar con precaucion)
umount -f /mnt/datos
 
# Lazy unmount: desconecta inmediatamente, limpia cuando ya no este en uso
umount -l /mnt/datos

Error comun: Si recibes “target is busy”, significa que algun proceso esta usando archivos en ese punto de montaje. Puedes usar lsof /mnt/datos o fuser -mv /mnt/datos para ver que procesos lo usan.

Importante: El comando es umount, NO “unmount” (sin la primera ‘n’).


4. /etc/fstab - Montaje automatico al arrancar

4.1 Formato

/etc/fstab define los sistemas de archivos que se montan automaticamente al arrancar. Tiene 6 campos separados por espacios o tabulaciones:

<dispositivo>  <punto_montaje>  <tipo>  <opciones>  <dump>  <pass>
CampoDescripcionEjemplos
1. DispositivoQue montar (dispositivo, UUID, LABEL)/dev/sda1, UUID=xxxx, LABEL=datos
2. Punto de montajeDonde montar/, /home, /mnt/datos, swap
3. TipoTipo de sistema de archivosext4, xfs, vfat, swap, auto
4. OpcionesOpciones de montajedefaults, ro,noexec, defaults,noatime
5. DumpBackup con dump (0=no, 1=si)0 o 1 (casi siempre 0)
6. PassOrden de fsck al arrancar0=no chequear, 1=primero (raiz), 2=despues

4.2 Ejemplos de /etc/fstab

# Particion raiz por UUID
UUID=a1b2c3d4-e5f6-7890-abcd-ef1234567890  /          ext4  defaults        0  1
 
# Particion /home
UUID=b2c3d4e5-f6a7-8901-bcde-f12345678901  /home      ext4  defaults        0  2
 
# Swap
UUID=c3d4e5f6-a7b8-9012-cdef-123456789012  swap       swap  defaults        0  0
 
# Particion de datos con opciones
/dev/sdb1                                   /datos     xfs   defaults,noatime  0  2
 
# USB que no se monta automaticamente
LABEL=USBDatos  /mnt/usb  vfat  noauto,user,rw  0  0
 
# Imagen ISO
/home/user/distro.iso  /mnt/iso  iso9660  loop,ro,noauto  0  0
 
# Particion Windows NTFS
/dev/sda3  /mnt/windows  ntfs-3g  defaults,uid=1000,gid=1000  0  0
 
# tmpfs (sistema de archivos en RAM)
tmpfs  /tmp  tmpfs  defaults,noatime,size=2G  0  0

4.3 Campo pass (orden de fsck)

ValorSignificado
0No verificar con fsck al arrancar
1Verificar primero (solo para /, la particion raiz)
2Verificar despues de la raiz (para el resto de particiones)

4.4 UUID vs nombres de dispositivo

Se recomienda usar UUID en lugar de /dev/sd* porque:

  • Los nombres de dispositivo pueden cambiar al agregar/quitar discos
  • El UUID es unico e invariable para cada sistema de archivos
  • Es el metodo predeterminado en distribuciones modernas
# Ver UUIDs
blkid
lsblk -f

Clave para el examen: Un fstab mal configurado puede impedir que el sistema arranque correctamente. La opcion nofail evita que un dispositivo ausente bloquee el arranque.


5. Herramientas de consulta

5.1 blkid

Muestra UUID, tipo de FS y etiqueta de los dispositivos de bloque.

# Ver todos los dispositivos
blkid
 
# Dispositivo especifico
blkid /dev/sda1
 
# Salida ejemplo:
# /dev/sda1: UUID="a1b2c3d4..." TYPE="ext4" LABEL="root"

5.2 lsblk

Lista los dispositivos de bloque en formato de arbol.

# Formato basico
lsblk
 
# Con sistemas de archivos y UUIDs
lsblk -f
 
# Con tamanos y tipos
lsblk -o NAME,SIZE,TYPE,FSTYPE,MOUNTPOINT
 
# Solo dispositivos SCSI/SATA
lsblk -S

5.3 /proc/mounts y /etc/mtab

Ademas de mount y findmnt, existen dos archivos importantes para consultar los sistemas de archivos montados:

/proc/mounts

/proc/mounts es un archivo virtual del kernel que muestra los sistemas de archivos actualmente montados en tiempo real. Es la fuente mas fiable de informacion sobre montajes.

cat /proc/mounts                         # Ver todos los montajes actuales
grep "ext4" /proc/mounts                 # Filtrar por tipo de FS
grep "/home" /proc/mounts                # Ver como esta montado /home

/etc/mtab

/etc/mtab es un archivo que tradicionalmente mantiene una lista de los sistemas de archivos montados, similar a /proc/mounts. En distribuciones modernas, /etc/mtab suele ser un enlace simbolico a /proc/mounts (o a /proc/self/mounts).

cat /etc/mtab                            # Ver montajes (puede ser enlace a /proc/mounts)
ls -la /etc/mtab                         # Verificar si es un enlace simbolico
# lrwxrwxrwx 1 root root 19 ... /etc/mtab -> ../proc/self/mounts

Diferencias entre los archivos de montaje

ArchivoDescripcionFiabilidad
/proc/mountsInformacion del kernel en tiempo realLa mas fiable
/etc/mtabTradicionalmente mantenido por mount (hoy suele ser enlace a /proc/mounts)Fiable en sistemas modernos
/etc/fstabConfiguracion de montaje deseada (no refleja el estado actual)Solo configuracion

Para el examen: /proc/mounts es la fuente autoritativa de montajes actuales. /etc/fstab es la configuracion deseada pero no necesariamente refleja el estado real. En distribuciones modernas, /etc/mtab es generalmente un enlace simbolico a /proc/self/mounts.

5.4 findmnt

Muestra los sistemas de archivos montados de forma mas clara que mount.

# Todos los montajes
findmnt
 
# Formato de lista
findmnt -l
 
# Solo sistemas de archivos reales (no virtuales)
findmnt -t ext4,xfs,btrfs
 
# Buscar donde esta montado un dispositivo
findmnt /dev/sda1
 
# Buscar que hay montado en un punto
findmnt /home
 
# Formato de fstab
findmnt --fstab

6. Unidades de montaje de systemd

En sistemas con systemd, los montajes de /etc/fstab se traducen automaticamente a unidades .mount. Tambien se pueden crear unidades de montaje manualmente.

6.1 Unidades .mount

El nombre de la unidad debe coincidir con la ruta del punto de montaje, reemplazando / por -.

Ejemplo: para montar en /mnt/datos, la unidad seria mnt-datos.mount

# /etc/systemd/system/mnt-datos.mount
[Unit]
Description=Montaje de datos
 
[Mount]
What=/dev/sdb1
Where=/mnt/datos
Type=ext4
Options=defaults,noatime
 
[Install]
WantedBy=multi-user.target
# Activar la unidad
systemctl enable mnt-datos.mount
systemctl start mnt-datos.mount
 
# Ver estado
systemctl status mnt-datos.mount

6.2 Unidades .automount

Permiten montaje automatico bajo demanda (cuando se accede al directorio).

# /etc/systemd/system/mnt-datos.automount
[Unit]
Description=Automontaje de datos
 
[Automount]
Where=/mnt/datos
TimeoutIdleSec=300
 
[Install]
WantedBy=multi-user.target

6.3 autofs

autofs es un servicio que monta sistemas de archivos automaticamente cuando se accede a ellos y los desmonta tras un periodo de inactividad.

Archivos de configuracion:

  • /etc/auto.master - Archivo maestro que define los puntos de montaje base
  • /etc/auto.* - Mapas individuales
# /etc/auto.master
/mnt/auto  /etc/auto.datos  --timeout=60
 
# /etc/auto.datos
usb     -fstype=vfat,rw     :/dev/sdb1
nfs     -fstype=nfs,rw      servidor:/export/datos

Con esta configuracion, acceder a /mnt/auto/usb monta automaticamente /dev/sdb1.

# Reiniciar autofs tras cambios
systemctl restart autofs

7. Puntos clave para el examen

  1. /etc/fstab tiene 6 campos: dispositivo, punto de montaje, tipo, opciones, dump, pass.

  2. Pass: 0 = no chequear, 1 = raiz (primero), 2 = resto (despues).

  3. UUID es preferible a /dev/sd* porque los nombres de dispositivo pueden cambiar.

  4. mount -o remount,ro / remonta la raiz como solo lectura sin desmontar.

  5. mount -o loop permite montar archivos (imagenes ISO) como dispositivos.

  6. defaults equivale a rw,suid,dev,exec,auto,nouser,async.

  7. user permite a usuarios normales montar (implica noexec, nosuid, nodev).

  8. blkid muestra UUID, tipo y etiqueta. lsblk -f muestra arbol con info de FS.

  9. findmnt es la forma moderna de ver montajes (mas legible que mount).

  10. Las unidades .mount de systemd deben nombrarse segun la ruta: /mnt/datos -> mnt-datos.mount.

  11. El comando es umount (sin ‘n’), no “unmount”.

  12. nofail en fstab evita que un dispositivo ausente bloquee el arranque.


Trampas del examen

Errores comunes y distinciones criticas que LPI suele evaluar en este subtema:

  • El comando es umount, NO “unmount” — Se escribe sin la primera ‘n’: umount /mnt/datos. El examen puede ofrecer “unmount” como opcion para confundir.
  • /etc/fstab tiene 6 campos, no 5 — Dispositivo, punto de montaje, tipo, opciones, dump, pass. El examen puede omitir un campo o preguntar que va en la posicion 5 o 6.
  • defaults equivale a rw,suid,dev,exec,auto,nouser,async — No incluye noatime ni nofail. El examen puede preguntar que opciones implica defaults o incluir opciones que no estan en defaults.
  • user implica noexec,nosuid,nodev — La opcion user permite a usuarios normales montar, pero automaticamente activa restricciones de seguridad. users permite a cualquiera montar Y desmontar. El examen puede confundir user con users.
  • UUID es preferible a /dev/sd* — Los nombres de dispositivo (/dev/sda1) pueden cambiar al agregar o quitar discos. El UUID es invariable. El examen puede preguntar por que una configuracion con /dev/sda1 dejo de funcionar.
  • mount -a monta todo excepto noauto — Las entradas de fstab con opcion noauto se ignoran al ejecutar mount -a. Son para dispositivos que se montan manualmente. El examen puede preguntar por que un dispositivo no se monta con mount -a.
  • Pass 0 = no verificar, 1 = raiz, 2 = resto — Solo la particion raiz / debe tener pass=1. El resto de particiones usan 2. Swap y dispositivos remotos usan 0. El examen puede preguntar que valor usar para /home.
  • /proc/mounts es la fuente autoritativa de montajes actuales/etc/fstab es la configuracion deseada pero no refleja el estado real. /etc/mtab en sistemas modernos es un enlace a /proc/self/mounts. El examen puede preguntar cual archivo muestra los montajes REALES.
  • La unidad systemd .mount debe coincidir con la ruta — Para /mnt/datos, la unidad se llama mnt-datos.mount (reemplazando / por -). El examen puede preguntar el nombre correcto de la unidad para un punto de montaje dado.