guardar datos de una unidad que falla

12

Una unidad de disco duro externa de 3½ "parece estar en peligro de fallar: produce sonidos de tictac cuando está inactiva .

He adquirido una unidad de reemplazo y quiero conocer la mejor estrategia para sacar los datos de la unidad dudosa con la mejor posibilidad de ahorrar tanto como sea posible.

Hay algunos directorios que son más importantes que otros. Sin embargo, supongo que elegir y elegir directorios reducirá mis posibilidades de guardar todo. También tendría que montarlo, volcar una lista de archivos y luego desmontarlo para poder priorizar efectivamente los directorios. Agregando el hecho de que lleva mucho tiempo hacer esto, me estoy alejando de este enfoque.

He considerado simplemente usar dd, pero no estoy seguro de cómo manejaría los errores de lectura u otros problemas que podrían evitar que solo se rescaten ciertas partes de los datos, o que podrían superarse con algunos reintentos, pero no tantos que poner en peligro otras partes del disco de ser salvadas. Supongo que idealmente haría un solo pase para obtener la mayor cantidad posible y luego volver a intentar cualquier cosa que se haya perdido debido a errores.

¿Es posible que copiar más lentamente, por ejemplo, pausar cada x MB / GB, sería mejor que simplemente ejecutar la operación a toda velocidad, por ejemplo para evitar problemas de sobrecalentamiento?

Para la multitud "dónde está su respaldo": esta es mi unidad de respaldo, pero también contiene algunas cosas no críticas y voluminosas, como la música, que no son respaldos, es decir, no están respaldados.

La unidad no ha exhibido ningún signo claro de falla que no sea este sonido algo ominoso. Tuve que fsck algunos errores recientemente: inodes huérfanos, bloques libres incorrectos / recuentos de inodes, diferencias de mapa de bits de inodo, cero dtime en inodes eliminados; Unos 20 errores en total.

El sistema de archivos de la partición es ext3.

intuido
fuente
cross-publicado en askubuntu y superusuario
intuido

Respuestas:

9

Se puede utilizar ddrescueo dd_rescueo myrescueclonar el disco que falla, sin abortar en cualquier sector ilegible. (Myrescue es menos configurable pero tiene una mejor estrategia predeterminada, ya que trata de saltear regiones ilegibles). Esto copiará todo, incluido el espacio en blanco y no le permitirá establecer prioridades. Sin embargo, tal enfoque de bajo nivel tiene una ventaja sobre herramientas a nivel de sistema de archivos: si un directorio no se puede leer, es posible que aún recuperar los archivos que contiene buscando en la imagen en bruto con herramientas tales como foremost, magicrescue, photorecincluido en TestDisk , etc.

Gilles 'SO- deja de ser malvado'
fuente
El enlace para magicrescueparece estar roto; ¿quiso decir itu.dk/~jobr/magicrescue en su lugar?
landroni 01 de
@landroni Sí, supongo que este estudiante se graduó, gracias.
Gilles 'SO- deja de ser malvado'
"Myrescue [..] tiene una mejor estrategia predeterminada" ¿Consideraría publicar un ddrescueejemplo configurado con los myrescuevalores predeterminados? ¡Gracias!
landroni 01 de
1
Para ddrescue/ dd_rescuerealiza el primer pase con un tamaño de bloque grande y cambia a más pequeño en los siguientes pasos (por ejemplo, reducir a la mitad el tamaño cada vez). Por supuesto, esto requiere que use un archivo de registro (consulte la página de manual).
Peter
Confusamente, en los sistemas basados ​​en Debian, el comando ddrescueproviene del paquete gddrescue; dd_rescuedel paquete ddrescue; y myrescuedel paquete myrescue.
landroni 01 de
8

No hay forma de conocer la mejor de sus opciones sin saber exactamente qué está mal con el disco. Si se trata de una falla mecánica, evitar el calentamiento puede ayudar, pero si se debe a errores en los datos del servo, es probable que el calor no importe.

Inmediatamente comenzaría a copiar los datos únicos a la nueva unidad con rsync. rsyncle permitirá pausar, reanudar y reiniciar según sea necesario hasta que elimine todos los datos.

Luego, ejecutaba un borrado de datos en la unidad. Supongo por el ext3sistema de archivos que está ejecutando Linux, así que intente esto:

# umount /dev/sdX
# badblocks -n /dev/sdX

(Desmontar la unidad primero es importante).

Esto leerá todos los sectores del disco y los escribirá sin cambios. Eso obligará al firmware de la unidad a verificar todos los sectores en busca de errores y a reasignar los sectores defectuosos que encuentre. Esta es la parte más importante de lo que hace el costoso programa SpinRite . Avance a eso solo si badblocksfalla y aún no ha obtenido todos los datos únicos del disco: SpinRite se esfuerza más de badblockslo que lo hace.

Warren Young
fuente
2

Si el disco se está muriendo, primero asegúrese de hacer el mejor clon que pueda (vea la respuesta de Gilles) y solo luego continúe jugando con el disco. De esa manera, siempre tendrá al menos algunos datos, en caso de que algo salga mal (lo que a menudo puede suceder con un hardware defectuoso).

Si usa ddrescue(o dd_rescueno estoy seguro acerca de los demás), siempre puede hacer una copia de los datos parcialmente clonados y el archivo de registro asociado e intentar mejorarlo ejecutando ddrescuenuevamente después de hacer algo que supuestamente arreglaba la unidad. Intentará leer las partes faltantes mientras deja intactas las partes bien clonadas.

Peterph
fuente