Con la utilidad fsck podemos solucionar inconsistencias en los sistemas de archivos de los dispositivos de almacenamiento de Linux y MacOS.
En la mayoría de los Linux se autoejecuta fsck al arrancar el sistema, según la configuración establecida, habitualmente cada 30 inicios, pero también se puede establecer al número de arranques que queramos o al número de días.
Para usar fsck debe de tenerse desmontada la partición a realizar la reparación.
La sintaxis de fsck es:
fsck [-opciones] /dev/PARTICIÓN
Donde PARTICIÓN debemos sustituirlo, por ejemplo, hda3 o sda3.
Si la unidad es IDE se mostrará empezando por hd y si es SATA por sd, al igual que si es USB.
Siendo habitualmente:
- hda0: la primera partición de un disco duro IDE.
- sda1: la primera partición de un disco duro SATA.
Siendo el número 0, 1, 2… el número de la partición.
Como saber cuales son las particiones
Para saber cual es la partición que debemos escribir, podemos usar los comandos df, mount, lsblk y el propio fsck:
df
df nos muestra el espacio en disco, en la información que nos muestra podemos ver la partición y el punto de montaje. Por ejemplo:
df -h
Donde:
/dev/sda1 es la partición raíz /
/dev/mapper/home es la partición /home
mount
mount nos muestra las particiones montadas. Por ejemplo:
mount
Donde: /dev/sda1 es la partición y está montada en /
lsblk
lsblk nos lista la información de los dispositivos
lsblk
Donde: sda1 es la partición y está montada en /
fdisk
fdisk su función es gestionar los discos pero podemos utilizar la información que nos muestra con la opción «-l» para que nos liste las particiones del disco.
sudo fdisk -l
En el entorno gráfico puedes usar Gparted y QTparted para averiguar información de las particiones del sistema.
Chequear errores con fsck
Sabiendo la sintaxis de fsck y las particiones del sistema, ahora conoceremos las opciones básicas de fsck:
-A comprueba todos los sistemas de ficheros
-C muestra la barra de progreso; el descriptor de fichero es para GUIs
-l bloquea el dispositivo para garantizar acceso en exclusividad
-M no comprueba los sistemas de ficheros montados
-N no ejecuta, simplemente muestra lo que haría
-P comprueba los sistemas de ficheros en paralelo, incluyendo el raíz
-R se salta el sistema de ficheros raíz; útil solamente con ‘-A’
-r muestra estadísticas para cada dispositivo comprobado; el descriptor de fichero es para GUIs
-s serializa las operaciones de comprobación
-T no muestra el título durante el arranque
-t especifica tipos de sistemas de ficheros que se van a comprobar; puede ser una lista de elementos separados por comas
-V explica lo que va haciendo
Si queremos reparar la partición /dev/sda2, primeramente la desmontamos y ejecutamos fsck:
sudo umount /dev/sda2
sudo fsck -y /dev/sda2
Si no queremos desmontar la partición a chequear podemos utilizar la opción -M
sudo fsck -M /dev/sda2
Si queremos realizar el chequeo y reparación de todas las partctiones
sudo fsck -A
Chequear con fsck al arrancar el sistema
Una forma recomendada de chequear y reparar, es realizarlo al arranque, para ello disponemos de tres opciones:
Forzar el chequeo en el próximo inicio del sistema
sudo touch /forcefsck
Ejecutar el chequeo periódicamente
Cada 20 arranques del sistema:
sudo tune2fs -c 20 /dev/sda2
o cada ciertos días, en el ejemplo, cada 7 días:
sudo tune2fs -i 7d /dev/sda2
No obstante no es habitual que en Linux haya errores de los sistemas de archivos excepto que sea por daños físicos de los dispositivos.