Pertenece a LPI Topic 203: Filesystem and Devices
mkfs (mkfs.*)mkswapfsck (fsck.*)tune2fs, dumpe2fs and debugfsbtrfs, btrfs-convertxfs_info, xfs_check, xfs_repair, xfsdump and xfsrestore.smartd, smartctl
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
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:
/mnt/fhf.df /mnt/fhf.
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
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.
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
Los sistemas de ficheros tienen opciones adaptables, para ello usamos la herramienta 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:
/etc/fstab y cambiar la última opción (pass) a 0tune2fs el parámetro para que la comprobación se haga tras X días.
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 que tune2fs -l /dev/sda1).-b: Muestra los bloques marcados como erróneosSistema 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
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:
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:
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.¿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:
xfs porque no aparece nada sobre inodos porque inodos los crea dinámicamente.