it-swarm-es.tech

fsck: opciones para una verificación de disco más completa

Tengo un disco con un problema conocido (lo sé porque dd se ahoga cuando trato de clonarlo). Pero cuando arranco con un CD en vivo y ejecuto fsck en la partición desmontada, obtengo esto:

[email protected]:~$ Sudo fsck /dev/sdf1
fsck 1.41.4 (27-Jan-2009)
e2fsck 1.41.4 (27-Jan-2009)
/dev/sdf1: clean, 227091/9625600 files, 12789815/38497756 blocks

un milisegundo después. Es difícil creer que haya revisado todo el disco duro en un ms.

Tampoco estoy seguro de si debería fsck'ing sdf1 o todo el disco físico sdf. Cuando pruebo todo el disco:

[email protected]:~$ Sudo fsck /dev/sdf
fsck 1.41.4 (27-Jan-2009)
e2fsck 1.41.4 (27-Jan-2009)
fsck.ext2: Device or resource busy while trying to open /dev/sdf
Filesystem mounted or opened exclusively by another program?

Lo cual no entiendo porque ninguna de las particiones parece estar montada (acabo de arrancar desde un CD en vivo y ejecuté el comando).

Entonces, mi pregunta básica es: ¿Cómo puedo hacer que fsck (o una herramienta diferente que funcione mejor) dedique más de un milisegundo a analizar mi disco problemático?

12
Fred Hamilton

En primer lugar, tiene razón al ejecutar fsck en la partición: fsck solo funciona en sistemas de archivos, no en discos completos. Puede obtener una lista de todas las particiones del disco con fdisk -l /dev/sdd.

Su tipo de sistema de archivos es probablemente ext3 (el valor predeterminado en la mayoría de las distribuciones de Linux), lo que significa que generalmente pasará un fsck siempre que su diario esté limpio. fsck -f, como se mencionó anteriormente, forzará una verificación completa.

Sin embargo, si ha leído errores en el disco, ninguna cantidad de fsck ayudará a dd, ya que a dd realmente no le importa el contenido del disco.

Para que dd lea el disco y continúe con los errores de lectura, use dd conv=noerror,sync, que continuará con los errores de lectura y agregará bytes nulos a cualquier bloque cuando haya un error de lectura.

Una vez que haya terminado la copia de seguridad, debe ejecutar fsck -f en el clon para que vuelva a funcionar.

Otro consejo: si realiza una copia de seguridad de la partición en un archivo, puede montarlo en bucle invertido con mount -o loop filename.ext3 /mountpoint. Además, supongamos que está clonando una partición de 200G en una unidad de 500G, luego puede ejecutar resize2fs /dev/sdx1 (donde sdx es su nueva unidad, particionada con una sola partición 500G), y el sistema de archivos cambiará de tamaño a 500G.

Por último, si el disco tiene una forma tal que le está dando errores de lectura, le aconsejo que evite apagar y encender el disco hasta que haya terminado de recuperar los datos. En algunos modos de falla, el disco en algún momento simplemente dejará de girar o dejará de ser reconocido por el sistema operativo, y en ese momento sacar datos de la unidad se volverá bastante costoso.

14
Kristian

Puede que esto no sea relevante en su caso, pero pensé que lo mencionaría de todos modos:

Para una verificación de disco de nivel inferior, puede usar la utilidad badblocks. Pasa por un dispositivo e informa cualquier bloque defectuoso (no puede reparar nada, por supuesto). Es útil, al menos, para verificar si un disco está dañado físicamente.

También, e2fsck puede usar badblocks para evitar que un sistema de archivos utilice bloques defectuosos. De e2fsck manual:

  -c     This option causes e2fsck to use badblocks(8) program to do a  read-
         only scan of the device in order to find any bad blocks.  If any bad
         blocks are found, they are added to the bad block inode  to  prevent
         them from being allocated to a file or directory.  If this option is
         specified twice, then the bad block scan will be done using  a  non-
         destructive read-write test.
10
Jonik

Desea que la opción -f fsck (Forzar la verificación incluso si el sistema de archivos parece limpio).

Debe ejecutar fsck en modo de usuario único. Una forma fácil de hacer esto sin un arranque de cdrom en vivo es reiniciar con la opción -F.

shutdown -rF now 
5
Richard Hoskins