Utilità di copia dei file come rsync con gestione degli errori come ddrescue, per il recupero dei dati da un disco rigido con settori danneggiati o guasti hardware [chiuso]


12

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/

Risposte:


3

Ho un Hitachi da 3 TB che legge dolorosamente lento, ddrescue funzionerà a livello di file. Ma non nelle directory. Tuttavia non sono riuscito a far funzionare le opzioni --timeout o --min-read-rate di ddrescue.

Vorresti farlo in uno script per trascinare un file alla volta.

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

3

Forse rsync è cambiato negli anni da quando è stata posta questa domanda.

La mia esperienza è stata che rsyncattualmente fa un ottimo lavoro copiando cose da un disco rigido morente, con

rsync -a <src> <dest>

Passerebbe rapidamente in caso di errori e quando si riavviava per provare nuovamente quei file.

rsync --version rapporti rsync version 2.6.9 protocol version 29

Per quanto riguarda le altre risposte:

Le risposte del 2011 sembrano promuovere strumenti che sono solo equivalenti commerciali a ddrescue, nessuna indicazione del fatto che siano consapevoli dei file. Di pesce. La risposta del 2013 è interessante.


2

Ottima domanda, adoro il livello di dettaglio. Per un'utilità che funzionerebbe bene in questo scenario, consiglierei di provare Filescavenger di Quetek . Consentirà letture eccessive nel conteggio di oltre 100 ma, soprattutto, ha una funzione di imaging del disco che ti permetterà di scaricare l'intero contenuto su un'immagine senza perdere tempo a provare a valutare i file, quindi caricare l'immagine e scansionarla per i file. L'utilità esegue $ 50 per gli utenti domestici ma è possibile scaricarla e testarla al punto di vedere cosa può essere recuperato dall'immagine prima di spendere soldi.

Se è un uso professionale, ti costerà un bel centesimo, ma guadagna funzionalità significative tra cui il supporto per array di raid logici e hardware.

Se anche questo fallisce, potresti aver superato gli strumenti di recupero del software. Se lo sei e puoi giustificare il costo del recupero in laboratorio, fammi sapere in quale paese, stato e città ti trovi. Posso consigliare uno dei nostri laboratori o concorrenti vicino a te.

Chris


1

Vuoi una copiatrice progressiva . È mirato a fare intere unità, ma poiché prende un percorso di file come parametro, dovrebbe funzionare anche per singoli file. Non credo che funzionerà per le directory - dovresti specificare ogni file.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.