Wie behebe ich einen Eingabe- / Ausgabefehler mit dd?

13

Hallo, ich versuche mein Windows 7-System mit einer kaputten Festplatte zu reparieren, aber es läuft immer noch.

Ich versuche, alle Daten auf ein neues Laufwerk zu kopieren, um Windows 7 neu zu installieren. Laufwerk namens SQSERVICE.

Ich kann überhaupt nicht kopieren - siehe unten:

$ 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

Wie kann dieser "Eingabe- / Ausgabefehler" behoben werden?

Erazer
quelle
1
@Gertvddijk Dank der Behebung meines Rechtschreibproblems komme ich aus den Niederlanden und lerne immer noch gut Englisch.
Erazer

Antworten:

15

Sie haben es selbst gesagt: Ihre Festplatte ist kaputt. Sie können versuchen ddrescue, es kann in der Lage sein, den unterbrochenen Pfad zu umgehen. Beachten Sie jedoch, dass Sie Daten verlieren.

Das Wiederherstellen aus dem Backup wird einfacher sein :)

Die korrekte Verwendung von ddrescueist wie folgt:

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

oder wenn Sie stdoutzum progess-Überwachungstool weiterleiten möchten :

sudo ddrescue /dev/sdc1 /dev/sda1 | pv
Dennis Kaarsemaker
quelle
Ja, das habe ich gesagt, aber das Wiederherstellen aus dem Backup ist auf diesem Laufwerk. Und dieses Laufwerk hat nur Sektorprobleme. Wie kann ich diesen Befehl verwenden?
Ich bin
2
Ihr Backup befindet sich also auf demselben Laufwerk wie das Laufwerk, das Sie gerade erstellen?! boggles
Dennis Kaarsemaker
1
Nun, dasselbe Laufwerk, aber nicht auf derselben Partition. Nun, ich bin ein bisschen dumm: '(Backup ist überhaupt nicht wichtig
Erazer
6

Ich weiß nicht, ob dies für jemanden nützlich ist, aber wenn ich diese Seite bei meiner Suche gefunden habe, hilft sie möglicherweise jemandem (außer dem OP, der sein Problem hoffentlich vor Monaten gelöst hat).

ddrescue ist in diesem Fall möglicherweise die beste Wahl für die Datenwiederherstellung (anders als das "Beheben" des Fehlers / der Festplatte, als die ursprüngliche Frage formuliert wurde), wie Dennis vorgeschlagen hat.

Alternativ können Sie auch die Festplatte bereitstellen und die Dateien kopieren. Dies ist VIEL schneller, wenn viel Platz frei ist oder wenn Sie nur bestimmte Dateien möchten. WARNUNG: Auf einem Linux-Computer gehen alle erweiterten Attribute verloren, z. B. Dateiberechtigungen. Dies ist eine sehr schlechte Wahl für Betriebssystemdateien, aber für Benutzerdateien tolerierbar. Wenn Sie es unter Windows ausführen, sollten diese beibehalten werden, Fehler werden jedoch möglicherweise nicht reibungslos behandelt, wodurch es möglicherweise sehr langsam wird.

Eine andere Möglichkeit, die Sektoren tatsächlich zu "reparieren" und nicht nur zu umgehen, besteht darin, die fehlerhaften Sektoren neu zuzuweisen. Wenn Sie die Sektornummer kennen (in Ihrem Fall 11233976 unter der Annahme, dass Ihre Blockgröße in dd und die Sektorgröße 512 sind), führen Sie diese einfach aus und führen Sie sie erneut für jeden neuen fehlerhaften Sektor aus, den Sie finden:

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

WARNUNG: Dadurch werden die Daten in diesem Sektor zerstört. Stellen Sie also sicher, dass Sie wirklich wissen, was Sie tun. Wenn dieser Sektor nicht gelesen werden kann, werden durch das Überschreiben die Fehler gestoppt. Dies bedeutet jedoch, dass der Sektor Müll enthält und möglicherweise eine wichtige Datei beschädigt.

Weitere Informationen finden Sie hier: http://www.sjvs.nl/forcing-a-hard-disk-to-reallocate-bad-sectors/

Und wenn Ihre Festplatte eine große Anzahl (vielleicht Tausende) fehlerhafter Sektoren aufweist (entweder als Current_Pending_Sector, Offline_Uncorrectable oder Reallocated_Sector_Ct angesehen) oder wenn sie neu ist und noch unter Garantie steht oder wenn die Anzahl im Laufe der Zeit konstant steigt, sollten Sie die ersetzen Festplatte sowieso. Lassen Sie sich nicht sagen, dass die Neuzuweisung die Festplatte repariert. Es werden nur die bekannten fehlerhaften Sektoren behoben und die für die Neuzuweisung reservierten Sektoren verbraucht. Wenn die Festplatte dazu neigt, mehr fehlerhafte Sektoren zu entwickeln, tritt das Problem jedes Mal wieder auf, wenn einige Daten beschädigt werden.

Peter
quelle
0

Während einige Teile der Festplatte defekt sind, können Sie dennoch gute Teile der Festplatte kopieren.

$ dd --help
...
 noerror   continue after read errors
...
sudo dd if=/dev/sdc1 of=/dev/sda1 conv=noerror
Max A.
quelle