Utilidad de copia de archivos como rsync con manejo de errores como ddrescue, para la recuperación de datos de un disco duro con sectores defectuosos o fallas de hardware [cerrado]

12

Tengo un disco duro con bloques defectuosos o sectores que no se pueden leer debido a posibles problemas mecánicos, como una cabeza de disco defectuosa, un motor defectuoso o algún otro problema que hace que el disco duro lea datos insoportablemente lento y con mucho de errores de lectura. Veo un promedio de 50 KB / seg, con algunas lecturas que caen por debajo de 10 KB / seg, y con frecuencia se atasca en un archivo o sector por completo, generalmente durante bastante tiempo, de 2 a 10 minutos o más (cuando usando rsync, antes de que se agote el tiempo de espera).

La velocidad parece variar enormemente, y se atasca mucho en los archivos, y cuando finalmente se "despega", solo parece durar un breve estallido antes de quedar atascado nuevamente. El disco también es muy silencioso con solo un sonido ocasional de copia de archivos (generalmente cuando se atasca / despega por un breve tiempo, antes de atascarse nuevamente). Por lo tanto, no hay ninguno de esos sonidos malvados que normalmente están asociados con la muerte del disco duro. Alguien sugirió que los problemas sonaban como si pudieran ser causados ​​por una cabeza de disco desalineada, lo que requiere muchas relecturas antes de que finalmente lea los datos con éxito. Suena plausible, pero estoy divagando ...

De todos modos, el problema con rsync es que parece no tener un soporte decente para el manejo de errores. Obviamente, no fue diseñado para recuperar datos de discos duros defectuosos, pero todas las llamadas utilidades de "recuperación de datos" que están destinadas a tal uso generalmente se centran en la recuperación de archivos eliminados o particiones desordenadas, en lugar de copiando archivos de discos duros moribundos. Obviamente, la recuperación de archivos borrados no es lo que necesito, por lo que quizás puedas entender mi decepción por no poder encontrar lo que busco todavía.

Naturalmente, aquí es donde probablemente diría "¡Debería usar ddrescue!" Bueno, eso está muy bien, pero ya tengo una copia de seguridad de la mayoría de los datos, así que solo quiero recuperar ciertos archivos. No me preocupa tratar de recuperar una partición completa bloque por bloque como lo hace ddrescue. Solo estoy interesado en rescatar solo archivos y directorios específicos.

Idealmente, lo que me gustaría es una especie de cruce entre rsync y ddrescue: algo que me permita especificar el origen y el destino como directorios de archivos normales como rsync (en lugar de dos particiones completas como lo requiere ddrescue), con una forma de omitir archivos con errores en una ejecución inicial, y luego me permite intentar recuperar esos archivos con errores en una ejecución posterior (con un comando ligeramente alterado, por supuesto), tal vez incluso ofreciendo una opción para especificar el número de intentos de reintento ... al igual que cómo funciona ddrescue con bloques, solo quiero una utilidad que funcione con archivos / directorios específicos como rsync.

Entonces, ¿estoy soñando despierto aquí, o existe algo allá afuera que pueda hacer esto? ¿O tal vez incluso una forma de hacer que rsync o ddrescue funcionen de esa manera? Estoy realmente abierto a cualquier solución que funcione, siempre y cuando me permitan elegir qué archivos quiero "rescatar", y pueda omitir archivos con errores en la ejecución inicial, e intentar / volver a intentar esos errores más tarde.

Hasta ahora he intentado rsync con las siguientes opciones, pero a menudo se queda atascado en un archivo por más tiempo que el tiempo de espera, e idealmente me gustaría pasar al siguiente archivo y volver más tarde a los archivos que obtiene pegado Sin embargo, no creo que sea posible. De todos modos, esto es lo que he estado usando hasta ahora:

rsync -avP --stats --block-size=512 --timeout=600 /path/to/source/* /path/to/destination/
purefusion
fuente

Respuestas:

3

Tengo un Hitachi de 3TB que lee dolorosamente lento, ddrescue funcionará a nivel de archivo. Pero no en los directorios. Sin embargo, no pude hacer funcionar las opciones ddrescue --timeout o --min-read-rate.

Desearía hacer esto en un script para recuperar un archivo a la vez.

cat listoffiles | while read file
pipe while> do
pipe while> ls -l "$file"
pipe while> ddrescue -n -e1  "$file" /cc/RecoveredFiles/"$file" /cc/RecoveredFiles/"$file".llog
pipe while> date
done | tee -a  /cc/RecoveredFiles/ddrescue.log
qwop
fuente
3

Quizás rsync ha cambiado en los años transcurridos desde que se hizo esta pregunta.

Mi experiencia fue que rsyncactualmente hace un gran trabajo copiando cosas de un disco duro agonizante, con

rsync -a <src> <dest>

Avanzaría rápidamente si encontraba errores, y cuando volviera a ejecutarse volvería a intentar esos archivos nuevamente.

rsync --version informes rsync version 2.6.9 protocol version 29

En cuanto a las otras respuestas:

Las respuestas de 2011 parecen estar promoviendo herramientas que son solo equivalentes comerciales a ddrescue, sin indicación de que tengan conocimiento de los archivos. Sospechoso. La respuesta de 2013 es interesante.

Matthew Elvey
fuente
2

Gran pregunta, me encanta el nivel de detalle. Para una utilidad que funcione bien en este escenario, recomendaría probar Filescavenger de Quetek . Permitirá lecturas excesivas en el conteo de más de 100, pero lo más importante es que tiene una función de imagen de disco que le permitirá volcar todo el contenido en una imagen sin perder tiempo tratando de evaluar los archivos, luego cargar la imagen y escanearla. para archivos La utilidad cuesta $ 50 para usuarios domésticos, pero puede descargarla y probarla hasta el punto de ver qué se puede recuperar de la imagen antes de gastar dinero.

Si se trata de un uso profesional, le costará un centavo bastante, pero obtendrá características importantes, incluida la compatibilidad con matrices de incursiones lógicas y de hardware.

Si esto también falla, es posible que haya pasado el punto de las herramientas de recuperación de software. Si lo está y puede justificar el costo de la recuperación en el laboratorio, avíseme en qué país, estado y ciudad se encuentra. Puedo recomendarle uno de nuestros laboratorios o competidores cerca de usted.

Chris

Chris - Armadura-IT
fuente
1

Quieres una copiadora progresiva . Está dirigido a hacer unidades completas, pero como toma una ruta de archivo como parámetro, también debería funcionar para archivos individuales. No creo que funcione para los directorios, tendría que especificar cada archivo.

afrazier
fuente