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".
dd if=/dev/sdb of=/dev/sda bs=512 conv=noerror,sync iflag=fullblock
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.