LPIC-2 Tema 203.1: Sistemas de ficheros del sistema operativo
Nueva entrada sobre las certificaciones LPIC-2, en esta ocasión sobre el tema 203.1. Es el primero de este bloque que se dedica especialmente a los sistemas de ficheros del sistema operativo. En este primero se evaluará que los candidatos puedan realizar montaje, configuraciones y sepan navegar por el FHS. Eso incluirá hacerlo en varios tipos de FS y particiones.
Las claves de este tema serán conocer /etc/fstab y su configuración, manejar algunas herramientas y utilidades esenciales para la gestión de la SWAP y los FS, conocer conceptos como UUID para identificar sistemas de ficheros montados, y comprender el montaje que hace systemd.
- Diseño del espacio de particionamiento en Linux
- Creación de particiones y herramientas para el FS
- Mantener la integridad de los FS
Como puedes ver, he dejado varios enlaces en los dos primeros párrafos e información adicional de cosas que ya he mostrado en artículos previos. Por eso, obviaré todo eso en este otro artículo para no alargarlo demasiado.
ÍNDICE:
Fundamentos
Ya deberías conocer algunos de estos fundamentos (ficheros de configuración y conceptos) que son esenciales para la gestión de los sistemas de ficheros:
/etc/fstab
UUID
/etc/mtab
Este otro fichero es muy importante. Es la contracción de Mounted file systems TABle. Es decir, una tabla de información sobre los sistemas de ficheros del SO. Lista los FS ya montados, así como sus opciones de inicialización. Por eso, puede parecer que es redundante con fstab, pero tiene diferencias.
Y es que, mientras /etc/fstab tiene la información de los sistemas de ficheros que se tienen que montar de forma automática durante el arranque, en /etc/mtab se almacena la información de los sistemas de ficheros que están montados actualmente en tiempo de ejecución.
Al tener el mismo formato que /etc/fstab, puedes montar un sistema de ficheros y copiar su línea correspondiente de mtab y copiarla en fstab para que se auto-monte durante el arranque, y así no tienes que escribirla desde cero…
Es decir, como ocurría con el otro, en /etc/mtab tienes una estructura idéntica de 6 columnas:
- El dispositivo montado.
- Punto de montaje
- FS
- Opciones de montaje
- Usado por dump
- Usado por fsck
Por cierto, las columnas 5 y 6 son totalmente ignoradas en mtab, puesto que esas opciones son específicas para el tiempo de arranque. Sin embargo, se mantienen para respetar la misma estructura que fstab.
/proc/mounts
En artículos previos introduje /proc, con directorios y ficheros muy interesantes. Pero en esta ocasión me centraré en un fichero muy concreto, y que es esencia para el tema de los sistemas de ficheros, como es /proc/mounts. Puedes usarlo para obtener información valiosa, por ejemplo:
cat /proc/mounts
Este fichero del FS virtual procfs (por tanto, recuerda que no existe en ningún medio de almacenamiento secundario), te permite ver información de los sistemas de ficheros montados. Verás líneas con varias columnas de información:
- Especifica el dispositivo montado. Pueden ser particiones, unidades de lazo, sistemas de ficheros temporales, etc.
- Muestra el punto de montaje de dicho dispositivo.
- Te indica el tipo de FS.
- Información sobre el montaje. Por ejemplo, si está montado como ro (read-only), rw (read-write), etc.
- Son los dummy values (valores ficticios) designados para coincidir con el formato de /etc/mtab.
- Igual al anterior, la columna 5 y 6 están destinadas a esos valores.
Por ejemplo:
/dev/nvme0n1p1 / ext4 rw,relatime,errors=remount-ro 0 0
En este caso, se desglosaría como:
- trata de una unidad SSD NVMe llamada /dev/nvme0n1p2, que quiere decir que es el primer dispositivo de este tipo registrado (0), primer espacio de nombres (1) y la segunda partición (2). Es decir, correspondería a /dev/sda2. Pero la diferencia es la inclusión del espacio de nombres, que teóricamente se pueden asignar varios a cada unidad. Esto sería como una especie de partición a nivel de hardware. Por lo general, en los discos para uso doméstico solo hay 1.
- El punto de montaje está en / en este caso.
- Y está formateada usando el sistema de ficheros ext4.
- Está montado para poder leer y escribir, tiempo real, y si falla remonta como solo lectura.
- En este caso, el primer valor es 0.
- El segundo valor es 0.
Unidades de montaje en systemd
En distribuciones con systemd también se deberían conocer las unidades de montaje de este sistema, y con el que también se pueden montar dispositivos. En artículos previos analicé las unidades, por si necesitas refrescar esos conceptos. Si lo recuerdas, había unas unidades especiales de montaje con extensiones .mount y .automount. Por ejemplo, podías tener una unidad para montar /home/usuario configurada con home-usuario.mount. El contenido sería algo como:
[Unit]
Description=Disco adicional
[Mount]
What=/dev/disk/by-uuid/86fef3b2-bdc9-47fa-bbb1-4e528a89d222
Where=/mnt/781997321046F722
Type=ext4
Options=defaults
[Install]
WantedBy=multi-user.target
Creando una unidad así, podrás montar tu partición para que se monte con el target Multi-User en este caso. Después, debes habilitarlo con:
systemctl enable mnt-driveone.mount
En el caso de las de automontaje te permitirá configurar unidades que deben ser montadas automáticamente bajo demanda. Por ejemplo, un fichero .automount sería algo así como:
Description=Montaje automático del disco adicional [Automount] Where=/mnt/driveone [Install] WantedBy=multi-user.target
Cada una de estas unidades .automount tiene que tener una .mount gemela que tenga la configuración e información de la unidad a automontar. Y ambas estarán alojadas en /etc/systemd/system/.
Herramientas
Algunas de las herramientas que puedes emplear para hacer las gestiones ya las conoces, por lo que enlazaré con el artículo correspondiente y no publicaré información redundante. Estas utilidades son:
- mount / umount: véase este artículo.
- blkid: véase este artículo.
- swapon / swapoff: véase este artículo.
- sync: es una herramienta clásica que sirve para sincronizar datos en memoria volátil y medios de almacenamiento permanente. La información cacheada será escrita inmediatamente en el disco. Una orden que se ejecuta automáticamente cuando se va a apagar el sistema de forma segura, o cuando se retiran unidades de almacenamiento extraíbles de forma segura. Así, se evitará corrupción de aquellos ficheros que no se hayan escrito total o parcialmente en la unidad.
#Sincronizar todos los datos en caché del usuario actual sync #Sincronizar todos los datos de caché de todos los sistemas de ficheros montados sudo sync #Sincronizar solo un fichero, directorio o partición indicando su ruta sudo sync /dev/sdh3 sudo sycn /var/log/syslog #Sincronizar todos los datos de los sistemas de ficheros montados en un disco duro sudo sync /dev/sde #Más información man sync