Ho un disco rigido con blocchi o settori danneggiati che non riescono a leggere a causa di potenziali problemi meccanici, come una testina del disco difettosa, un motore difettoso o qualche altro problema che causa il disco rigido a leggere i dati in modo lancinante lentamente e con molti di errori di lettura. Sto vedendo una media di 50 KB / sec, con alcune letture che scendono sotto i 10 KB / sec, e spesso si blocca su un file o su un settore, di solito per un tempo piuttosto lungo, da 2-10 minuti o più (quando usando rsync, prima che scada).
La velocità sembra variare selvaggiamente, e si blocca molto sui file, e quando finalmente si "sblocca" sembra durare solo per un breve scoppio prima che si blocchi di nuovo. L'unità è anche molto silenziosa con solo un suono occasionale di copia dei file (di solito quando viene bloccato / sbloccato per un breve periodo, prima di rimanere di nuovo bloccato). Quindi, non ci sono suoni malvagi che sono normalmente associati alla morte dell'HDD. Qualcuno ha suggerito che i problemi sembravano essere causati da una testa del disco non allineata, che richiede molte riletture prima di poter finalmente leggere i dati con successo. Sembra plausibile, ma sto divagando ...
Comunque, il problema con rsync è che sembra non avere un supporto decente nella gestione degli errori. Ovviamente, non era destinato all'uso nel recupero di dati da dischi rigidi guasti, ma tutte le cosiddette utility di "recupero dati" là fuori che sono destinate a tale uso di solito si concentrano sul recupero di file cancellati o partizioni incasinate, piuttosto che copiare i file dai dischi rigidi morenti. Il recupero di file cancellati non è ciò di cui ho bisogno, ovviamente, quindi forse puoi capire la mia delusione per non essere ancora in grado di trovare quello che sto cercando.
Naturalmente, è qui che probabilmente diresti "Dovresti usare ddrescue!" Bene, va tutto bene e dandy, ma ho già eseguito il backup della maggior parte dei dati, quindi voglio solo recuperare determinati file. Non mi preoccupo di provare a ripristinare una partizione completa blocco per blocco come fa ddrescue. Sono interessato solo a salvare solo file e directory specifici.
Idealmente, quello che mi piacerebbe è una sorta di incrocio tra rsync e ddrescue: qualcosa che mi permette di specificare l'origine e la destinazione come directory di file normali come rsync (piuttosto che due partizioni complete come richiede ddrescue), con un modo per saltare i file con errori in una corsa iniziale, e quindi mi consente di tentare il recupero di quei file con errori in una corsa successiva (con un comando leggermente alterato, ovviamente), forse anche offrendo un'opzione per specificare il numero di tentativi di tentativo ... proprio come come funziona ddrescue con i blocchi, voglio solo un'utilità che funzioni con file / directory specifici come fa rsync.
Quindi sto sognando ad occhi aperti qui, o esiste qualcosa là fuori che può farlo? O forse anche un modo per far funzionare rsync o ddrescue in questo modo? Sono davvero aperto a qualunque soluzione possa funzionare, purché mi permettano di scegliere quali file voglio "salvare", e possono saltare i file con errori nella corsa iniziale e riprovare / riprovare più tardi in seguito.
Finora ho provato rsync con le seguenti opzioni, ma spesso rimane bloccato su un file più a lungo del timeout, e idealmente mi piacerebbe solo che passasse al file successivo e tornasse più tardi ai file che ottiene bloccati su. Non credo sia possibile però. Comunque, ecco cosa ho usato fino ad ora:
rsync -avP --stats --block-size=512 --timeout=600 /path/to/source/* /path/to/destination/