¡Esta es una revisión vieja del documento!
Tabla de Contenidos
203.2 Maintaining a Linux filesystem
Pertenece a LPI Topic 203: Filesystem and Devices
- Weight: 3
- Description: Candidates should be able to properly maintain a Linux filesystem using system utilities. This objective includes manipulating standard filesystems and monitoring SMART devices.
- Key Knowledge Areas:
- Tools and utilities to manipulate and ext2, ext3 and ext4
- Tools and utilities to perform basic Btrfs operations, including subvolumes and snapshots
- Tools and utilities to manipulate XFS
- Awareness of ZFS
- Terms and Utilities:
mkfs(mkfs.*)mkswapfsck(fsck.*)tune2fs,dumpe2fsanddebugfs- btrfs, btrfs-convert
xfs_info,xfs_check,xfs_repair,xfsdumpandxfsrestore.- smartd, smartctl
Creación de particiones
Para crear particiones podemos usar la utilidad fdisk. fdisk es una herramienta sencilla para crear particiones en diferentes formatos.
Ejemplo:
fdisk /dev/sdb
También hay otras herramientas como cfdisk o parted
Creación de sistemas de ficheros
Con mkfs podemos crear sistemas de ficheros en espacios de almacenamiento sin tratar, tradicionalmente particiones de disco:
Sintaxis:
mkfs [-t tipo] dispositivo
-t tipo: especifica el tipo de sistema de ficheros que se creará (ext2, ext3, ext4, reiserfs, xfs)dispositivo: archivo especial de bloque que designa el dispositivo donde se creará el sistema de ficheros.
Si no se especifica un tipo, se creará un sistema de ficheros ext2
Ejemplo:
mkfs –t ext4 /dev/sda3
El comando anterior creará un sistema de ficheros ext4 en el dispositivo /dev/sda3 (partición 3 del dispositivo de almacenamiento /dev/sda)
Actualmente, mkfs es una interfaz de varios creadores de sistemas de archivos. Las opciones más comunes que disponemos son:
mkfs.ext2(crea sistemas de ficheros ext2)mkfs.ext3(crea sistemas de ficheros ext3)mkfs.ext4(crea sistemas de ficheros ext4)mkfs.raiserfs(crea sistemas de ficheros ReiserFS)
Si necesitamos crear otros sistemas de ficheros, habría que instalar las utilidades correspondientes. Por ejemplo, si queremos formatear un dispositivo en XFS, instalaríamos el paquete xfsprogs. Entonces ya tendríamos disponible mkfs.xfs.
mkfs.ext2, mkfs.ext3 y mkfs.ext4 utilizan por debajo mke2fs que es el programa que permite crear sistemas de ficheros ext
Ejercicios propuestos:
- Añadir un disco y crear una particion ext2.
- Montar la partición en
/mnt/fhf. - Ejecutar
df /mnt/fhf. - Desmontar partición.
- Repetir lo pasos anterior para ext4 y xfs.
Comprobación de errores
Para comprobar los errores del sistema de ficheros y repararlos usamos la herramienta fsck.
Sintaxis:
fsck [-t tipo_sistema_ficheros ] [ opciones ] dispositivo
La revisión de un sistema de ficheros consiste principalmente en la comprobación de coherencia entre su tabla de inodos y los bloques de datos correspondientes, coherencia entre su tabla de inodos y los bloques de datos correspondientes. Es decir, para cada inodo se comprobará que los bloques de datos apuntados por este inodo están presentes, con el número y la cantidad indicados.
Linux realiza un fsck al inicio del sistema en las particiones marcadas en /etc/fstab. Esto a veces puede ser un problema a la hora de iniciar un sistema con un uptime.
Esta herramienta solo se puede utilizar sobre particiones que no estén montadas.
Opciones del comando fsck:
-f: Fuerza la revisión (sistema de archivos desmontado o sólo lectura)-N: Comprueba el sistema de ficheros sin repararlo (para cuando el sistema de ficheros montado)-V: Modo verbose-y: Acepta (con yes) todas las preguntas. Cuando detecta errores y pregunta por su reparación, de esta manera le estamos respondiendo siempre que sí.-A: Realiza la reparación automática.-C: Muestra el % de progreso.-p: reparación automática (sin hacer preguntas)
Ejemplo:
fsck –t ext4 –N /dev/sda1
Aunque el comando fsck permite comprobar los sistemas de archivos xfs, se recomienda utilizar los comandos específicos xfs_check y xfs_repair.
Si queremos pasar el fsck en la partición del sistema, tendríamos que hacerlo antes de que se montase, es decir, durante el arranque. Para ello, es necesario indicarlo en el fichero /etc/fstab en la columna pass:
# <file system> <mount point> <type> <option> <dump> <pass> /dev/sda1 / ext4 errors=remount-ro 0 1
Sectores defectuosos
badblocks
Aplicación para revisar dispositivos en búsqueda de sectores defectuosos.
badblocks [options] filesystem
-o file: Vuelca el listado de sectores defectuosos a un archivo. Esto nos servirá para saber dónde no escribir, es decir, que sectores no utilizar.
Es recomendable no ejecutarlo directamente sino como la opción -c de mkfs:
mkfs.ext4 -c /dev/sda1
De esta manera, se realizará la comprobación de sectores defectuosos y tenerlo en cuenta para crear el sistema de ficheros.
Depurar el sistema de ficheros
debugfs
El comando debugfs es un depurador del sistema de ficheros. Puede ser utlizado para examinar el estado de un sistema de archivos e incluso lograr recuperar ficheros borrados.
Ejemplo:
debugfs /dev/sda1
Ajustar parámetros de sistemas de ficheros ext
Los sistemas de ficheros tienen opciones adaptables, para ello usamos la herramienta tune2fs:
tune2fs
Para sistemas de ficheros ext2, ext3 y ext4.
Sintaxis:
tune2fs [ options ] device
Con tune2fs podemos desactivar el fsck al inicio del SO (en lugar de hacerlo mediante /etc/fstab) o cambiar el porcentaje de bloques reservados para una partición.
Opciones del comando tune2fs:
-c [n]: Número de veces que se monta un sistema de ficheros antes de chequearse (intervalo entre comprobaciones).-i [n]: Intervalo de tiempo entre dos comprobaciones (días).-j: Añade un journal a un sistema de ficheros. Se puede utilizar para “convertir” un sistema de archivos ext2 a ext3.-O: añade características al sistema de ficheros. Se puede utilizar para “convertir” un sistema de archivos ext3 a ext4.-L: Permite modificar la etiqueta.-U [UUID]: Permite modificar el valor de UUID.-l: Muestra el contenido del superbloque (parte reservada del sistema de ficheros donde se almacena información sobre sí mismo)
El UUID (Universally Unique Identifier), como sucede con la etiqueta, permite asociar a un periférico de almacenamiento un identificador (dígitos hexadecimales separados por guiones) en vez de usar el archivo de bloque especial (/dev/sdb1, por ejemplo). La diferencia con la etiqueta es que la asignación del uuid es automática cuando se crea el sistema de archivos.
Conversión de un sistema de archivos ex3 a ext4:
tune2fs -O extents,uninit_bs,div_index dispositivo
Las opciones activadas son las que corresponden a las nuevas funciones introducidas por ext4.
Ejemplo para hacer una comprobación cada 365 días:
tune2fs –i 365 /dev/sda1
Información del superbloque:
tune2fs -l /dev/sda1 tune2fs 1.44.5 (15-Dec-2018) Filesystem volume name: <none> Last mounted on: /boot Filesystem UUID: b5a9d411-1845-4561-aff3-8394f36d60f6 Filesystem magic number: 0xEF53 Filesystem revision #: 1 (dynamic) Filesystem features: ext_attr resize_inode dir_index filetype sparse_super large_file Filesystem flags: signed_directory_hash Default mount options: user_xattr acl Filesystem state: not clean Errors behavior: Continue Filesystem OS type: Linux Inode count: 124928 Block count: 498688 Reserved block count: 24934 Free blocks: 433060 Free inodes: 124589 First block: 1 Block size: 1024 Fragment size: 1024 Reserved GDT blocks: 256 Blocks per group: 8192 Fragments per group: 8192 Inodes per group: 2048 Inode blocks per group: 256 Filesystem created: Wed Feb 10 18:01:51 2021 Last mount time: Wed Mar 24 20:22:25 2021 Last write time: Wed Mar 24 20:22:25 2021 Mount count: 4 Maximum mount count: -1 Last checked: Wed Feb 10 18:01:51 2021 Check interval: 0 (<none>) Lifetime writes: 586 MB Reserved blocks uid: 0 (user root) Reserved blocks gid: 0 (group root) First inode: 11 Inode size: 128 Default directory hash: half_md4 Directory Hash Seed: 7a592f52-bf17-457d-89fd-d0e81b5b7ee2
Nos han dado una ventana de 10 minutos para reiniciar el servidor mañana. Miramos el uptime y lleva más de 670 días sin reiniciarse. Debemos desactivar el fsck automático del sistema de ficheros.
Con tanto tiempo funcionando, es probable que fsck encuentre errores y tardará mucho (y solo tenemos 10 minutos). Opciones:
- Editar
/etc/fstaby cambiar la última opción (pass) a 0 - Cambiar con
tune2fsel parámetro para que la comprobación se haga tras X días.
Información del sistema de ficheros
dumpe2fs
Antes de modificar cualquier cosa del FS con tune2fs es importante saber el estado actual del sistema de ficheros. Para ello usamos dumpe2fs:
dumpe2fs [options] device
-h: Solo muestra información del superbloque (igual quetune2fs -l /dev/sda1).-b: Muestra los bloques marcados como erróneos
Otros sistemas de archivos
XFS
Sistema que permite accesos muy rápidos de lectura/escritura y genera los inodos de forma dinamica.
En los sitemas extended (ext2, ext3, ext4), al formatearlos, tienen definido un tamaño de inodo y sector. En función de eso se generan un número de inodos. Este número es finito y determina el número de ficheros y directorios que se pueden tener. El problema es que si creamos tantos ficheros como inodos disponibles, ya no podríamos seguir creando ficheros en ese sistema de ficheros aunque tuviésemos espacio. XFS no tiene esa limitación, va generando los inodos sobre la marcha cuando creamos los ficheros.
Herramientas:
xfs_info: ver la información de la geometría de un sistema de ficheros XFS.xfs_check: chequea la consistencia del sistema de ficheros.xfs_repair: repara un sistema de ficheros XFS dañadoxfs_admin: modifica parámetros de un sistema de ficheros XFSxfs_growfs: aumenta el tamaño de un sistema de ficheros XFS (solo si está montado)
xfs_check y xfs_repair serían equivalentes al fsck. xfs_admin sería el equivalente a tune2fs.
Aumentar el tamaño del sistema de archivos al máximo del espacio disponible en el dispositivo:
xfs_growfs -d /dev/sdb
Btrfs
Sistema de ficheros aún en desarrollo, pero que ya viene soportado de serie por los últimos kernels. Se puede convertir en una alternativa muy eficiente a los sistemas Ext2/3/4.
Características fundamentales:
- Optimización muy eficiente del espacio.
- Generación dinámica de inodos.
- Snapshots. Imágenes del estado del sistema en un determinado momento.
- Creación de subvolúmenes. Crear “particiones” dentro de la propia partición.
- Soporte RAID.
ZFS
Sistema de ficheros aún en desarrollo, aún no soportado de serie por la mayoría de los kernels. Sus características cambian el paradigma del diseño tradicional de los sistemas de ficheros.
Características fundamentales:
- Capacidad de almacenamiento casi ilimitada
- Snapshots.
- Alta tolerancia a fallos.
- Compresión de datos.
- Soporte RAID.
- ZFS pools: creación de volúmenes lógicos (tipo LVM) sobre el sistema de ficheros.
Smartmontools
Conjunto de herramientas para monitorizar y controlar discos por medio de la tecnología SMART. Esta tecnología de hardware que nos permite comunicarnos directamente con los discos duros y analizarlos, monitorizarlos…
Para poder emplear esta tecnología, debe estar soportada a nivel de placa y disco de almacenamiento.
El paquete smartmontools instala dos programas:
smartd: demonio del sistema que monitoriza los discos y envía alertas de errores.smartctl: panel de control de utilidades para trabajar con discos.
Test
¿Qué comando se puede utilizar en una partición existente (y formateada) para configurar el intervalo entre las comprobaciones del disco cuando montamos las particiones?
tune2fs
De acuerdo a la siguiente salida de df -i:
Filesystem Inodes IUsed IFree IUse% Mounted on /dev/md0 1966080 45044 1921036 3% / /dev/sde1 0 0 0 - /mnt
¿Qué sistema de ficheros usa /dev/sde1:
xfsporque no aparece nada sobre inodos porque inodos los crea dinámicamente.
