
¿Es posible ejecutar la reparación de xfs volviendo a editar el archivo fstab?
/dev/mapper/vg-linux_root / xfs defaults 0 0
UUID=7de1dc5c-b605-4a6f-bdf1-f1e869f6ffb9 /boot xfs defaults 0 0
/dev/mapper/vg-linux_var /var xfs defaults 0 0
/dev/mapper/vg-linux_swap swap swap defaults 0 0
No estoy seguro, pero reemplazando el último número de 0 a 1, ¿es correcto?
Respuesta1
No, simplemente editar /etc/fstab no puede hacer que se ejecute xfs_repair.
Para otros tipos de sistemas de archivos, funcionaría. Pero XFS es especial aquí.
Cambiar el sexto campo de /etc/fstab
a un valor distinto de cero en un sistema de archivos XFS hará que el sistema ejecute fsck.xfs
, cuya página de manual dice:
NAME
fsck.xfs - do nothing, successfully
[...]
However, the system administrator can force fsck.xfs to run xfs_re‐
pair(8) at boot time by creating a /forcefsck file or booting the sys‐
tem with "fsck.mode=force" on the kernel command line.
Por lo tanto, normalmente fsck.xfs
no hará nada en absoluto.
Si realmente desea xfs_repair
ejecutar durante el arranque, hay dos condiciones que deben cumplirse:
a) El sexto campo /etc/fstab
debe ser distinto de cero para el sistema de archivos XFS en cuestión, por lo que fsck.xfs
se ejecutará.
b) /forcefsck
Debe existir un archivo en el sistema de archivos raíz (o quizás dentro de initramfs, si planea verificar el sistema de archivos raíz), o la línea de comando del kernel debe tener la fsck.mode=force
opción de inicio. Esto hará fsck.xfs
que se ejecute xfs_repair
en lugar de no hacer nada.
Entonces, ¿qué tiene de especial xfs_repair?
Tanto el sistema de archivos XFS como la xfs_repair
herramienta asumirán que el disco subyacente está en buenas condiciones, o al menos es capaz de reemplazar de forma transparente los bloques defectuosos con bloques de repuesto integrados (como lo hacen todos los discos modernos). Si un disco moderno tiene bloques defectuosos persistentes visibles para el sistema operativo, generalmente significa que el mecanismo de bloque de repuesto incorporado ya se ha visto abrumado por la cantidad de bloques defectuosos y, de todos modos, el disco probablemente fallará completamente pronto.
La página de manual de xfs_repair
dice:
Disk Errors
xfs_repair aborts on most disk I/O errors. Therefore, if you are trying
to repair a filesystem that was damaged due to a disk drive failure,
steps should be taken to ensure that all blocks in the filesystem are
readable and writable before attempting to use xfs_repair to repair the
filesystem. A possible method is using dd(8) to copy the data onto a
good disk.
Por lo tanto, probablemente no debería configurarlo xfs_repair
para que se ejecute automáticamente en circunstancias normales.
Si un sistema de archivos XFS tiene errores, siempre debe evaluar primero la condición del disco subyacente: smartctl -a /dev/<disk device>
podría ser útil, como podría ser usarlo dd
para leer todo el contenido de la partición/LV /dev/null
y ver que el comando se puede completar sin errores.
Si el disco falla, primero debe copiar el contenido de la partición/LV a un disco nuevo sin errores (quizás usando dd
o ddrescue
), y solo entonces debe intentar ejecutar xfs_repair
el sistema de archivos en el disco sin errores.
La ejecución xfs_repair
automática en el momento del arranque puede ser una solución adecuada si sabe que algo está causando errores a nivel del sistema de archivos incluso cuando sus discos están en buenas condiciones. Pero eso es sólo una solución alternativa, no una solución: debe descubrir qué está causando los errores del sistema de archivos y corregir la causa raíz. (¿Tal vez un error en el controlador del sistema de archivos, que requiere un paquete de kernel actualizado para solucionarlo?)
Respuesta2
Si los archivos /dev/sda
tienen errores, entonces debe ejecutarlos fsck
. Tenga en cuenta que en realidad no reparará el disco en sí, sino sólo los archivos. Si el disco realmente tiene errores y está fallando, entonces es mejor reemplazar el disco y restaurar los datos desde una copia de seguridad porque si empeora lo suficiente, es posible que se pierdan datos, especialmente si el disco muere por completo.