Manera adecuada de tratar con sistemas de archivos XFS corruptos

18

Recientemente tuve un sistema de archivos XFS dañado debido a un fallo de alimentación. (Sistema CentOS 7). El sistema no arrancaría correctamente.

Arranqué desde un CD de rescate e intenté xfs_repair, me dijo que montara la partición para manejar el registro.

Monté la partición e hice una lsverificación para verificar que sí, parece estar allí. Desmonté la partición e intenté xfs_repairnuevamente y recibí el mismo mensaje.

¿Qué se supone que debo hacer en esta situación? ¿Hay algún problema con mi CD de rescate (System Rescue CD, versión 4.7.1)? ¿Hay algún otro procedimiento que debería haber usado?

Terminé simplemente restaurando el sistema a partir de copias de seguridad (fue rápido y fácil en este caso), pero me gustaría saber qué hacer en el futuro.

Michael Kohne
fuente

Respuestas:

20

Si está intentando ejecutar xfs_repair , recibe el mensaje de error que sugiere montar el sistema de archivos para reproducir el registro, y después de que el montaje aún recibe el mismo mensaje de error, es posible que deba realizar una reparación forzada (utilizando el -Lindicador con xfs_repair). Esta opción debería ser el último recurso.

Por ejemplo, usaré un caso en el que tuve una partición raíz corrupta en mi instalación de CentOS 7. Al intentar montar la partición, recibí continuamente el siguiente mensaje de error:

mount: mount / dev / mapper / centos-root on / mnt / centos-root falló: la estructura necesita limpieza

Desafortunadamente, forzar una reparación implicaría poner a cero (destruir) el registro antes de intentar una reparación. Cuando se usa este método, existe la posibilidad de terminar con más datos corruptos de los anticipados inicialmente; sin embargo, podemos usar las herramientas xfs apropiadas para ver qué tipo de daño puede causar antes de realizar cambios permanentes.

Usando xfs_metadump y xfs_mdrestore , puede crear una imagen de metadatos de la partición afectada y realizar la reparación forzada de la imagen en lugar de la partición misma. Los beneficios de esto es la capacidad de ver el daño que viene con una reparación forzada antes de realizarlo en la partición.

Para hacer esto, necesitará un disco duro externo o USB de tamaño decente. Comienza por el montaje de la unidad USB - mi USB se encuentra en /dev/sdb1, el suyo puede tener un nombre diferente.

mkdir -p /mnt/usb
mount /dev/sdb1 /mnt/usb

Una vez montado, ejecute xfs_metadumppara crear una copia de los metadatos de la partición en el USB; nuevamente, su partición afectada puede ser diferente. En este caso, tenía una partición raíz corrupta ubicada en /dev/mapper/centos-root:

xfs_metadump /dev/mapper/centos-root /mnt/usb/centos-root.metadump

A continuación, querrá restaurar los metadatos en una imagen para que podamos realizar una reparación y medir el daño.

xfs_mdrestore /mnt/usb/centos-root.metadump /mnt/usb/centos-root.img

Descubrí que en el modo de rescate xfs_mdrestoreno está disponible, y en su lugar deberá estar en el modo de rescate de un CD CentOS en vivo.

Finalmente, podemos realizar la reparación de la imagen:

xfs_repair -L /mnt/usb/centos-root.img

Después de que la reparación se haya completado y haya evaluado la salida y el daño potencial, puede determinar si desea realizar la reparación contra la partición.

Para ejecutar la reparación contra la partición, simplemente ejecute:

xfs_repair -L /dev/mapper/centos-root

No olvide verificar las otras particiones por corrupción también. Después de las reparaciones, reinicie el sistema y debería poder arrancar con éxito.

Recuerde que la -Lbandera debe usarse como último recurso donde no hay otras opciones posibles para reparar.

Descubrí que estos artículos en línea ayudaron:

Brendonofficial
fuente
OK, entonces -L es el último recurso, y estas son instrucciones EXCELENTES sobre cómo ver qué tan malo será si usamos -L. ¿Qué otras opciones tengo para usar -L?
Michael Kohne
1
@MichaelKohne Restaurando desde la copia de seguridad, por supuesto. No debería acercarse a este nivel del infierno a menos que no tenga copias de seguridad.
Michael Hampton
1
@MichaelHampton - Bien, bastante justo. Pero no creo que haya perdido NUNCA un sistema de archivos como este por errores ext4 en powerfail: ¿es xfs menos resistente? ¿O acabo de tener muy mala suerte esta vez?
Michael Kohne
@MichaelKohne Creo que te has vuelto extraordinariamente desafortunado. XFS es un sistema de archivos bastante confiable.
Michael Hampton
3
solíamos ser capaces de hacer eso desde initrd. qué maravilloso "progreso" hicimos.
Florian Heigl
1

Tuve este error cuando centos 7 se detiene mal dentro de una máquina virtual kvm:

corrupción de metadatos detectada en xfs ...

cuando uso el registro con "journalctl -xe", encontré un error de montaje:

/ dev / mapper / root / sysroot

Lo resuelvo usando:

xfs_repair / dev / mapper / root

Luego el sistema completa las siete fases y luego reinicia con

./apagar

Y luego la máquina virtual centos 7 funciona bien ...

Saludos

Nota: quizás tu / dev / mapper / root tenga otro nombre, mira tu registro de errores con journalctl -xe para encontrar el nombre de tu unidad mal montado

davidleosam
fuente