Cómo decirle a rsync que omita archivos en un bloque de disco duro dañado, en lugar de quedarse atascado tratando de leerlo

13

Estoy tratando de recuperar archivos de un disco que tiene errores de hardware.

El disco fue reparado por la utilidad de disco, pero me dijo que el disco está dañado, por lo que necesito hacer una copia de seguridad de todo antes de que ocurra una falla.

Así que intenté copiar los archivos a través del buscador, pero se atascó. Intentó otras utilidades y se atascan al intentar copiar los archivos, cuando la cabeza golpea el bloque dañado.

Así que intenté con rsync, y parece funcionar; pero lleva una eternidad cuando golpeo un bloque malo.

Entonces, me preguntaba si hay una manera de decirle a Rsync que ni siquiera se moleste con un archivo, si lleva demasiado tiempo, ¿puedo especificar el número de intentos con cada archivo o cuánto tiempo necesita probar para cada archivo?

No estoy seguro de cuánto tiempo durará honestamente esta unidad, por lo que quiero quitar todos los datos lo antes posible, aunque todavía puedo montarlo y ver los datos en el buscador.

Esto es lo que estoy usando como comando; avise si hay alguna forma de reducir el intento en un archivo, para que pueda tener rsync para intentar leer los bloques dañados, pero evite quedar atrapado en un sector específico durante demasiado tiempo.

rsync -arv -e--ignore-errors --partial-dir=/Volumes/backup/partial /Volumes/work /Volumes/backup

Gracias por adelantado.

redoble del tambor
fuente
3
Si la unidad ha dañado sectores, es mejor que intentes crear una imagen de la unidad con algo así dd_rescue, tiene características avanzadas para hacer frente a sectores defectuosos.
jmreicha
Creo que @jmreicha tiene la idea correcta, pero en el futuro, si tiene preguntas técnicas rsync, hay gurús amigables disponibles en la lista rsync: lists.samba.org/mailman/listinfo/rsync
Joe

Respuestas:

10

Respuesta corta: rsyncno es la herramienta adecuada para usar en este caso: su uso puede ser incluso dañino.
Utilice en su ddrescuelugar (mejor que dd_rescue). Es capaz de hacer lo que está pidiendo.


Si el disco está dañado físicamente, existe la posibilidad de bloquearlo con cualquier intento de repararlo.

No es solo una cuestión sobre el uso de su tiempo , cuando rsyncparece que se cuelga para siempre acercándose a un sector dañado. El problema es que con operaciones repetidas puede ocurrir una falla irreparable, y entonces ya no podrá rescatar sus datos sin un reemplazo costoso de piezas (siempre si aún será posible y no habrá bloqueado su HDD ).

En este caso, el procedimiento más seguro que encontré es

  1. Para crear una imagen en bruto en otro disco no roto.
  2. Para crear una copia de esa imagen.
  3. Para trabajar en la copia para arreglar el sistema de archivos y rescatar los archivos .

¿Por qué la copia? Porque si falla algo en el paso de reparación del sistema de archivos , siempre puede comenzar de nuevo sin la necesidad de tocar nuevamente el HDD dañado original .

Le sugiero que use ddrescue, para hacer la imagen de disco sin procesar, defectos incluidos, porque funciona bien incluso en caso de errores de lectura.


Cómo hacerlo con ddrescue

Puede usar ddrescueexactamente como le gustaría rsync, omitiendo los sectores dañados sin volver a intentarlos o dividirlos, copiando la mayor cantidad de datos posible.
Este comando está aquí debajo (en lugar de /dev/hda1que coloque su dispositivo):

ddrescue --no-split /dev/hda1 imagefile logfile

Después de haber hecho este primer pasaje (el más rápido ), puede intentar refinarlo intentando acceder 3 veces en caso de error.

ddrescue --direct --max-retries=3 /dev/hda1 imagefile logfile 

Puede continuar refinando la imagen repitiendo las ddrescueinvocaciones de comandos con otras opciones, intentando cada vez extraer más datos (consulte las referencias). Cuando termine, puede crear la copia (si tiene todo el espacio necesario) y luego arreglar el sistema de archivos .

Tenga en cuenta que la imagen en bruto será tan grande como el HDD original .
Puede encontrar en Internet, en este y en otros sitios de StackExchange muchas preguntas y respuestas sobre cómo rescatar datos con ddrescueu otras herramientas.

Referencias

Hastur
fuente
de hecho, dd_rescue es el camino a seguir. Lo tuve en mi respuesta original, hace 2 años; pero por alguna razón, alguien decidió que no podía responder mi propia pregunta :) Gracias por la respuesta y los detalles asombrosos
rataplan
@newbiez: En cambio, tuve un problema grave en el disco con mi HDD principal casi bloqueado ... así que me encontré con ddrescuesus amigos :-) Sobre su respuesta solo una palabra: extraño ... publíquelo nuevamente y si alguien intenta cerrar de nuevo Voy a votar sí para reabrir (nunca usé ese nuevo poder : D)
Hastur
1
La opción --no-split se eliminó en las versiones más recientes de ddrescue. Use --no-scrape en su lugar. Ver lists.gnu.org/archive/html/bug-ddrescue/2015-09/msg00001.html
Grmpfhmbl