Sto cercando di recuperare i dati da un vecchio disco rigido da 320 G (pieno di settori danneggiati) a uno nuovo. Ho scoperto che ddrescue è un buon strumento per questo compito grazie al suo algoritmo intelligente . L'ho già fatto una volta con il seguente comando:
ddrescue -f -n /dev/sda /dev/sdb log
È stato completato in diverse ore con errsize 16G (non recuperato) che può contenere ancora dati importanti, quindi ho eseguito il passaggio successivo:
ddrescue -f -d /dev/sda /dev/sdb log
ma funziona troppo lentamente (avg 300B / s) perché Linux si blocca su ogni settore danneggiato.
In realtà è un kernel Linux (probabilmente libata), non un disco rigido stesso, perché ho provato a ripristinare lo strumento DMDE in esecuzione su DOS pulito e non si sono verificati problemi di questo tipo: il timeout ATA può essere regolato lì e il processo di recupero complessivo funziona MOLTO più velocemente.
Ma non in Linux.
Ho anche provato questi parametri del kernel: libata.ignore_hpa=1
libata.noacpi
libata.force=noncq,norst
e anche libata.dma=0
passando a cmdline al bootlader, ma non ha avuto alcun effetto (sto usando il CD di System Rescue dove LIBATA è stato compilato nel kernel).
Ho anche provato a cambiare il timeout del dispositivo:
echo 1 > /sys/block/sda/device/timeout
(il valore predefinito è 30)
ma genera solo più inondazioni di errori in syslog e non aiuta.
Il passaggio di blocchi danneggiati richiede ancora 1-3 minuti per ciascun settore che è costantemente lento. Quanto tempo è necessario per analizzare 16 GB di blocchi "danneggiati"? Una settimana? Mese?
Preferisco ancora ddrescue per il recupero (grazie al suo efficiente algoritmo e funzionalità di file di registro) e voglio sapere come ottimizzare il driver del kernel per velocizzare la gestione degli errori ata / disk. Google e le relative domande qui su SU non sono state d'aiuto. Qualche idea?
PS mi dispiace per il mio inglese
@ ta.speot.is
Perché non ripristini semplicemente dai tuoi backup regolari?
Questo disco rigido del mio amico, non mio. Così triste, non ha backup. Ora, dopo l'arresto del disco, inizia a pensare di fare backup, sì :)
UPD : 2,5 anni dopo non conosco ancora la risposta, ma ho appena capito che ddrescue
funziona più velocemente quando il controller sata è in modalità Compatibilità (IDE), un altro suggerimento è sempre usare l' -d
opzione (accesso diretto) per accelerare leggermente le cose. Anche dare un'occhiata alle hdparm
opzioni per regolare HDD ( -m
, -D
, -P
), potrebbe aiutare (sul vecchio hardware).
UPD2 : Ho appena notato la risposta di Slizzered alla domanda correlata. È ottimo! Provai:
smartctl -l scterc,20,20 /dev/sda
e il recupero è andato molto più veloce di prima (solo in modalità IDE).