Primero, para que el software lo use: puede intentar usarlo en ddrescue
lugar de dd
.
ddrescue
tiene un interruptor para hacer solo un número limitado de reintentos. También puede usar un archivo de registro, por lo que registra qué bloques eran malos. Si luego desea realizar más reintentos, puede usar el mismo archivo de registro para ddrescue
volver a ejecutarlo con diferentes opciones (como más reintentos) y solo volverá a intentar los bloques necesarios.
Ejemplo de uso:
# ddrescue -n /dev/sda /dev/sdb rescue.log
# ddrescue -r1 /dev/sda /dev/sdb rescue.log
Desde la ddrescue
página de información:
-n, --no-scrape
Skip the scraping phase. Avoids spending a lot of time
trying to rescue the most difficult parts of the file.
-r, --retry-passes=<n>
Exit after given number of retry passes. Defaults to 0.
-1 means infinity. Every bad sector is tried only once
in each pass. To retry bad sectors detected on a previous
run, you must specify a non-zero number of retry passes.
Aquí hay algunas fuentes adicionales para usar ddrescue
:
Editar
En caso de que el disco duro en sí está tomando demasiado tiempo, se puede tratar de activar una función llamada TLER ( T iempo L imited E rror R ECUPERACIÓN) o CCLT ( C ommand C ompletion T iempo L imitación de C). No todos los discos duros lo tienen, pero puede usarlo para limitar el tiempo en el controlador del disco duro. Este enfoque se puede combinar con el uso ddrecue
, por supuesto.
Linux tiene una herramienta llamada smartctl
(en el smartmontools
paquete).
Para verificar la configuración actual ("deshabilitado" significa un tiempo ilimitado, que no desea):
# smartctl -l scterc /dev/sda
Para establecerlo en un valor fijo (5.0 segundos en este ejemplo. Establecerlo en 0 deshabilita TLER):
# smartctl -l scterc,50,50 /dev/sda
Fuente para TLER: http://en.wikipedia.org/wiki/TLER
Tuve buenos resultados de discos que de otro modo serían ilegibles con este software.
http://www.cgsecurity.org/wiki/TestDisk
La siguiente también es una herramienta de recuperación sólida. Puede obtener archivos incluso si su tabla de archivos está rota o si se eliminaron. Es una muy buena herramienta forense. Volca las cosas de una manera realmente desorganizada, pero puede mover todos los datos.
http://www.cgsecurity.org/wiki/PhotoRec
fuente
Para obtener una opción rápida y rápida para rescatar el disco, puede usar un archivo de secuencia de comandos sh y ejecutar el archivo con sh. Contiene esta línea, solo repite
sudo ddrescue
ysleep 3
pocas veces más. La suspensión se usa para hacer que la unidad descanse unos segundos:Las opciones utilizadas anteriormente:
-r0
: sin reintentos-e +0
: salir en primer error-T 1s
: salir con 1 segundo de lectura fallida-d
: E / S directa-n
: sin rasparPuede usar
-R
después de terminar con la opción-A
una vez, que revertirá y eliminará todos los errores de tamaño y comenzará de nuevo hacia atrás. Significa que leerá los errores de manera diferente.fuente
Depende del tamaño de su disco duro y de cuántos bloques defectuosos tenga. Por lo general, me lleva 20 minutos hacer una copia de seguridad con DD a 1 tera HD saludable. Con bloqueos malos, me acabo de recuperar esta mañana, me llevó el doble de tiempo. Estaba teniendo problemas para duplicar (hacer una copia de seguridad de un disco) con unos 30 bloques defectuosos. Lo primero que he hecho es hacer una copia de seguridad de los archivos usando Filezilla normal para hacer una copia de seguridad de todos los datos buenos. Noté que un archivo grande no se copiaba correctamente (deteniéndose en el medio y reiniciando la transferencia). Afortunadamente tengo una copia de seguridad anterior del mismo archivo. Para duplicar el disco, tuve que encontrar los bloques defectuosos en el disco usando este procedimiento:
Primero descubra el disco con problemas que identifica la información de HD usando fdisk -l
Segundo, si digamos que su disco es / dev / sdb, entonces necesita ejecutar el comando badblocks -v / dev / sdb , enumerará todos los bloques defectuosos en la unidad. Por suerte habrá unos pocos. Si no se encuentran bloques defectuosos, entonces los bloques de su unidad están bien y necesitan descubrir algo más. Mi tamaño de bloque es 512, así que uso ese número predeterminado para ejecutar DD
Tercero, cada bloque tiene un tamaño de 512, así que lo que hice es establecer bs = 512
Cada vez que ejecuto DD regularmente como siempre, mis datos, después de los errores, saldrán dañados. Entonces, uso los parámetros como se explica en la página https://www.gnu.org/software/coreutils/manual/html_node/dd-invocation.html buscar en la parte "Para discos defectuosos".
Se tomó un tiempo. Cada bloque malo encontrado suena como un golpe en la unidad defectuosa. Se copia bloque por bloque, y a través de todos mis bloques malos hicieron el mismo ruido. La cantidad de veces que hizo un ruido fue porque encontró otro bloque defectuoso y le informa sobre el mensaje de error en la pantalla. Lo que hace 'conv = noerror, sync' es eliminar las lecturas incorrectas con NUL, mientras que 'iflag = fullblock' atiende lecturas cortas, pero mantiene sincronizados sus datos hasta el final. Sin corrupción en absoluto, simplemente no copia los bloques defectuosos y lo llena con NUL vacíos.
Después de que se realizó la copia con DD, simplemente reemplacé ese archivo defectuoso revertiendo Filezilla de una copia de seguridad anterior y todo funcionó bien. Espero que esto sea útil para otros que intentan hacer copias de seguridad de unidades defectuosas.
NOTA: Mis bloques malos estaban bastante cerca uno del otro. Alrededor de 4 bloques a la vez juntos en grupos donde se detectó mal. Si sus bloques están en todo el disco, varios archivos podrían verse afectados. Afortunadamente, en mi caso, un gran archivo de base de datos de 4 gb solo se vio afectado.
fuente