martes, 23 de julio de 2013

How to: Analizar y reparar una partición con Ext4

 
Actualmente el sistema de archivos Ext en su versión 4, o mejor conocido como ext4 es el más usado en las distribuciones actuales. Una de las razones es por que es un sistema de archivos con capacidades transaccionales (no pretendo entrar en detalle) pero lo que sí puedo decirles es que esto nos proporciona una mayor confiabilidad en cuanto a la integridad de los datos, mecanismos de redundancia, mecanismos de control de acceso, y varias otras cosas más ... como dije: no es el tema. Lo que sí es el tema es que aún siendo muy confiable, de los apagones o de fallos de hardware nadie se salva, así que aquí dejo una receta de cómo analizar y reparar (si no se tiene un fallo grave de hardware) una partición con este sistema de archivos. Por supuesto, en GNU/Linux :)

Lo primero es asegurarnos de que la partición no esté siendo usada, por lo que se recomienda usar un LiveCD o si el equipo no puede apagarse por completo entónces desmontar dicha partición.

Seguido de esto lo que vamos a hacer es usar el comando fsck.ext4 (en realidad es el fsck pero con la opción -t ext4):

# fsck.ext4 -cDfty -C 0 /dev/sd**

Donde:
  • -c verifica sectores incorrectos
  • D optimiza directorios (si es posible)
  • -f forza la revisión, aún si la partición aparenta esta en buen estado
  • -t muestra o imprime estadísticas de tiempo de ejecución
  • -y asume que las respuestas a las preguntas es "yes". Es útil como cuando se pregunta mucho si se quiere reparar tal o cual ínodo
  • -C 0 imprime o muestra el progreso en la pantalla
  • /dev/sd** por supuesto es la partición, que puede ser /dev/sda1, /dev/sdg2 o cualquier otro dispositivo de almacenamiento con ext4.

FSCK

Utilidad para detectar, verificar y corregir los errores del sistema de archivos. Es recomendable utilizarlo solo con sistemas desmontados.
fsck [-sAVRTMNP] [-C[fd]] [-t fstype] [filesys..] [fs-specific-options]


-C Muestra el progreso en tiempo real de un modo visual.
-A Chequea todos los dispositivos definidos en el fichero /etc/fstab.
-M No chequea sistemas montados.
-t Especifica el tipo o tipos de sistema de ficheros a chequear. Si lo acompañamos de la opción -A, solo chequearemos los sistemas que coincidan con “fstype” (una lista separada por comas).
filesys Puede ser el nombre de un dispositivo (/dev/hdc1, /dev/sda3), un punto de montaje (/, /usr, /home) o un label o UUID (UUID=f6c797e5-605b-4884-92d7-cdb694a42122, LABEL=home). Si no se especifica, por defecto se analizaran los definidos en el fichero /etc/fstab.

Opciones:

-a repara de manera automática, no pide confirmación.
-n reporta los problemas sin repararlos.
-c busca bloques dañados y los agrega a la lista de bloques dañados.
-f forzar la revisión.
-v (verbose) genera más información.
-r modo interactivo. Espera nuestra respuesta.
-y si a todo.

fsck -c /dev/hdb2 comprobar bloques dañados.
fsck -C -R -af /dev/hdb6 forzamos la comprobación y si hay algún error lo arreglamos automáticamente
fsck -CTV -nf /dev/hdb6 chequeo y si detecta algún error informará de ello pero no reparará nada