Come posso correggere un errore di input / output usando dd?


13

Ciao sto cercando di riparare il mio sistema Windows 7 con un disco rigido rotto, ma è ancora in esecuzione.

Sto provando a copiare tutti i dati su una nuova unità per reinstallare Windows 7. Unità chiamata SQSERVICE.

Non riesco a copiare affatto - vedi sotto:

$ sudo dd if=/dev/sdc1 of=/dev/sda1
dd: reading `/dev/sdc1': Input/output error
11233976+0 records in
11233976+0 records out
5751795712 bytes (5.8 GB) copied, 187.731 s, 30.6 MB/s

Come risolvere questo "Errore di input / output"?


1
@Gertvddijk grazie per risolvere il mio problema di ortografia, vengo dai Paesi Bassi e sto ancora imparando bene l'inglese.
Erazer,

Risposte:


15

L'hai detto tu stesso: il tuo disco è rotto. Puoi provare ddrescue, potrebbe essere in grado di aggirare il percorso interrotto. Attenzione però che perderai i dati.

Il ripristino dal backup sarà più semplice :)

L'uso corretto di ddrescueè il seguente:

sudo apt-get install gddrescue
sudo ddrescue /dev/sdc1 /dev/sda1

o se si desidera eseguire il pipe stdoutallo strumento di monitoraggio dei progressi:

sudo ddrescue /dev/sdc1 /dev/sda1 | pv

sì, l'ho detto, ma ripristinando dal backup è su quell'unità .. e io quest'unità ha solo problemi di settore, bene come posso usare quel comando? Sono solo un utente Linux per principianti ..
Erazer,

2
Quindi il tuo backup si trova sulla stessa unità dell'unità su cui stai eseguendo il bcaking ?! boggles
Dennis Kaarsemaker,

1
bene stessa unità sì ma non sulla stessa partizione. beh, sono un po 'stupido:' (il backup non è affatto importante
Erazer,

6

Non so se questo sia utile a nessuno, ma se ho trovato questa pagina nella mia ricerca, forse aiuterà qualcuno (diverso dall'OP che si spera abbia risolto il suo problema mesi fa).

ddrescue potrebbe essere la scelta migliore in questo caso, per il recupero dei dati (diverso da "correggere" l'errore / disco come era formulata la domanda originale), come suggerito da Dennis.

In alternativa, puoi anche montare il disco e copiare i file. Questo è MOLTO più veloce se c'è molto spazio vuoto o se si desidera solo alcuni file particolari. ATTENZIONE: fatto da una macchina Linux, questo perde tutti gli attributi estesi, come i permessi dei file, quindi è una pessima scelta per i file del sistema operativo, ma tollerabile per i file degli utenti. Farlo da Windows dovrebbe preservare quelli, ma potrebbe non gestire gli errori senza intoppi, probabilmente facendolo andare molto lentamente.

Un'altra opzione per "riparare" effettivamente i settori, non solo per bypassarli, è riallocare i settori danneggiati. Se conosci il numero di settore (nel tuo caso, 11233976 assumendo la dimensione del blocco in gg, e la dimensione del settore è 512), esegui questo ed esegui di nuovo per ogni nuovo settore danneggiato che trovi:

hdparm –write-sector 11233976 –yes-i-know-what-i-am-doing /dev/sdb

ATTENZIONE: questo distruggerà i dati su quel settore. Quindi assicurati di sapere davvero cosa stai facendo. Se questo settore non può essere letto, la sovrascrittura interromperà gli errori, ma significherà che il settore conterrà immondizia, corrompendo eventualmente un file importante.

Vedi questo per maggiori informazioni: http://www.sjvs.nl/forcing-a-hard-disk-to-reallocate-bad-sectors/

E se il tuo disco ha un gran numero (migliaia forse) di settori danneggiati (visti come Current_Pending_Sector, Offline_Uncorrectable o Reallocated_Sector_Ct), o se è nuovo e ancora in garanzia, o se il numero aumenta costantemente nel tempo, allora dovresti sostituire il disco comunque. Non lasciarti dire che la riallocazione corregge il disco. Risolve solo i settori danneggiati noti e consuma i settori riservati per la riallocazione. Se il disco tende a sviluppare settori più danneggiati, il problema continuerà a tornare, corrompendo ogni volta alcuni dati.


0

Mentre alcune parti del disco sono rotte, sei ancora in grado di copiare buone parti del disco.

$ dd --help
...
 noerror   continue after read errors
...
sudo dd if=/dev/sdc1 of=/dev/sda1 conv=noerror
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.