![]() |
|
||||||||||||||||||
|
|||||||||||||||||||
|
|||||||||||||||||||
|
||
|
TFT Monitor bei
Mercateo kaufen.
Neues Netbook? Ein Preisvergleich lohnt sich. Bei uns finden sie Notebooks, PDAs und Drucker mit Testberichten und Tipps. Diamant Buchhaltungssoftware – transparent und detailliert auch für die Konzernbuchhaltung. Günstige Shareware Programme als direkte Downloads im Software Portal. Bis zu 70% sparen durch Preisvergleich. |
||
|
von Hans-Georg Eßer
Mögliche Gründe für das Ausfallen einer Festplatte gibt es viele: Wenn die Platte einen Head-Crash hat und der Schreib-/Lesekopf zerstört ist, kann nur noch der Fachmann helfen; wie ein Datenrettungsdienst selbst stark beschädigten oder verbrannten Festplatten noch Informationen entlockt, hat unsere Schwesterzeitschrift Linux-Magazin im vergangenen Jahr beschrieben [1].
Oft ist der Schaden aber gering: Einzelne Sektoren sind nicht mehr lesbar, die "Selbstheilungskraft" der Festplatte, die für solche Fälle Reservesektoren bereit hält, ist erschöpft.
Im günstigen Fall können Sie die Partitionen einer defekten Platte noch mounten, nur bei wenigen Dateien (vielleicht nur bei einer) erhalten Sie einen Lesefehler. Dann reicht es aus, alle Dateien der betroffenen Partition auf eine neue Festplatte zu kopieren und danach die alte Platte zu entsorgen oder auf dem Garantieweg auszutauschen. Weiter benutzen sollten Sie eine defekte Platte nicht, auch wenn sich mit Hilfe von badblocks (siehe Kasten 1) defekte Sektoren explizit ausblenden lassen -- die Gefahr ist einfach zu groß, dass die bereits angeschlagene Platte in Kürze noch weitere Defekte zeigt.
| Kasten 1: Medien-Check mit badblocks |
|
Das Tool badblocks ermittelt fehlerhafte Blöcke auf Datenträgern wie Disketten und Festplatten. In Zusammenarbeit mit fsck können die entdeckten Fehlerstellen im Dateisystem als unbenutzbar markiert werden, dazu muss man fsck die Ausgabe von badblocks übergeben: badblocks /dev/hdb5 > /tmp/bad-blocks fsck -t ext2 -l /tmp/bad-blocks /dev/hdb5 Soll hingegen ein beschädigter Datenträger nur neu formatiert werden, geht es auch ohne expliziten Aufruf von badblocks: Die mkfs-Kommandos kennen die Option -c (check) und rufen dann vor dem Formatieren selbständig badblocks auf: mke3fs -c /dev/hdb5 |
Unangenehmer ist die Situation, wenn Sie eine Partition nicht mehr mounten können, weil im vorderen Bereich wichtige Verwaltungsdaten nicht lesbar sind und auch von fsck nicht mehr repariert werden können, weil die defekten Blöcke auch nicht schreibbar sind (siehe Kasten 2).
Dann hilft nur Eines: Wenn Sie eine Kopie des ganzen Dateisystems erzeugen, die Sie auf einer zweiten Platte ablegen, können Sie diese Image-Datei mit fsck bearbeiten und so möglicherweise die Daten retten -- denn Dateisysteme enthalten an verschiedenen Stellen Kopien der Verwaltungsinformationen.
| Kasten 2: Plattenfehler |
|
Lesefehler, die das Mounten einer Partition verhindern, zeigen sich im Kernel-Log wie folgt: Feb 6 05:28:42 server kernel: reiserfs: found format "3.6" with standard journal
Feb 6 05:28:47 server kernel: reiserfs: enabling write barrier flush mode
Feb 6 05:28:47 server kernel: reiserfs: using ordered data mode
Feb 6 05:28:50 server kernel: hdb: dma_intr: status=0x51 { DriveReady SeekComplete Error }
Feb 6 05:28:50 server kernel: hdb: dma_intr: error=0x40 { UncorrectableError }, LBAsect=19616787, sector=65680
Feb 6 05:28:50 server kernel: end_request: I/O error, dev 03:42 (hdb), sector 65680
Feb 6 05:28:50 server kernel: journal-459: unable to read journal header
Feb 6 05:28:50 server kernel: sh-2022: reiserfs_read_super: unable to initialize journal space
|
Das Tool dd_rescue von Kurt Garloff [2] ist eine Variante des Unix-Klassikers dd, die speziell für die Datenrettung entwickelt wurde. Knoppix enthält dd_rescue, so dass Knoppix-Benutzer auf eine Installation aus den Sourcen verzichten können. Alle anderen finden die Quellen auf der dd_rescue-Homepage oder auf der LinuxUser-CD, wir beschreiben hier aber den Einsatz mit Knoppix.
dd_rescue hat gegenüber dd (neben seiner einfacheren Bedienung) zwei Vorteile:
Als Vorbereitung bauen Sie die defekte Platte in einen Rechner ein. Außerdem benötigen Sie eine weitere Platte, die auf mindestens einer Partition genug Speicherplatz für die folgenden Schritte hat: Es sollte mindestens doppelt so viel Platz frei sein, wie die betroffene Partition der defekten Platte belegt.
Nach dem Booten von Knoppix öffnen Sie eine Konsole und werden darin mit sudo su (ohne Passworteingabe) zum Administrator root. Mit fdisk -l geben Sie die Liste der Partitionen aus.
Haben Sie die fehlerhafte Partition identifiziert, kann die Rettungsaktion auch schon fast beginnen. Zunächst mounten Sie eine Partition auf der zweiten (fehlerfreien) Platte, z. B. nach /mnt:
mount /dev/hdb1 /mnt
Wenn die betroffene Partition /dev/hda5 heißt, können Sie nun dd_rescue wie folgt aufrufen:
dd_rescue /dev/hda5 /mnt/image.dat
Die dd-typischen Parameter if= und of= sind bei dd_rescue nicht nötig: Der erste und zweite Parameter geben Quelle und Ziel an. Während das Programm arbeitet, zeigt es ständig an, wie weit es schon fortgeschritten ist. Bei Lesefehlern wird eine Warnung ausgegeben. Kasten 3 zeigt einen Beispielaufruf von dd_rescue und die Ausgaben.
| Kasten 3: Ausgaben von dd_rescue |
root@ttyp0[knoppix]# dd_rescue /dev/hda5 /mnt/image.dat
dd_rescue: (info): ipos: 859444.5k, opos: 859444.5k, xferd: 859444.5k
errs: 0, errxfer: 0.0k, succxfer: 859444.5k
+curr.rate: 30166kB/s, avg.rate: 41084kB/s, avg.load: -0.6%
dd_rescue: (warning): /dev/hda5 (859444.5k): Input/output error!
dd_rescue: (info): ipos: 80043264.0k, opos: 80043264.0k, xferd: 80043264.0k
errs: 1, errxfer: 0.5k, succxfer: 80043263.5k
+curr.rate: 30166kB/s, avg.rate: 41084kB/s, avg.load: -0.6%
dd_rescue: (info): /dev/hda5 (80043264.0k): EOF
Summary for /dev/hda5 -> /mnt/image.dat:
dd_rescue: (info): ipos: 80043264.0k, opos: 80043264.0k, xferd: 80043264.0k
errs: 0, errxfer: 0.5k, succxfer: 80043263.5k
+curr.rate: 0kB/s, avg.rate: 41084kB/s, avg.load: -0.6%
root@ttyp0[knoppix]# _
|
Wenn die Fehler auf der Platte minimal sind, erhalten Sie so in kurzer Zeit ein Image der beschädigten Partition, in dem alle noch lesbaren Daten am richtigen Ort stehen.
Wenn ein größerer Bereich der Platte beschädigt ist, kann es vorkommen, dass dd_rescue ab einer bestimmten Stelle keine sichtbaren Fortschritte mehr macht, weil es nur noch defekte Blöcke erkennt. In diesem Fall können Sie das Tool abbrechen und dd_rescue erneut aufrufen, diesmal aber eine andere Zieldatei und zusätzlich die Option -r angeben:
dd_rescue -r /dev/hda5 /mnt/image-tail.dat
Dann tastet sich dd_rescue von hinten rückwärts an die fehlerhafte Stelle heran. Auch dieser Schritt wird nach einer Weile auf viele Fehler stoßen, so dass Sie wieder abbrechen können. Aus der Größe der beiden erhaltenen Dateien image.dat und image-tail.dat sowie der Größe der Partition berechnen Sie dann, wie groß das fehlende Zwischenstück ist, erstellen mit
dd if=/dev/zero of=/mnt/image-zero.dat bs=1024 count=N
eine leere Datei passender Größe und setzen schließlich alle Dateien zu einem Image zusammen:
cd /mnt; cat image.dat image-zero.dat image-tail.dat > image-full.dat
Bevor Sie die von dd_rescue erstellte Image-Datei weiterbehandeln, ist es ratsam, eine Sicherheitskopie anzulegen; daher stammt auch die oben gegebene Empfehlung, mindestens zweimal so viel freien Platz zu haben, wie die Partition benötigt:
cp /mnt/image.dat /mnt/image.dat.copy
Die Image-Datei reparieren Sie dann mit der zum Dateisystem passenden fsck-Variante und geeigneten Optionen, im Fall eines Reiser-Dateisystems z. B. mit
reiserfsck --fix-fixable /mnt/image.dat
oder
fsck.ext3 -p /mnt/image.dat
für ein Ext3-Dateisystem.
Danach mounten Sie das reparierte System probeweise (und read-only):
mkdir /temp mount -o loop,ro /mnt/image.dat /temp
Jetzt können Sie unter /temp auf die Daten der beschädigten Partition zugreifen und diese z. B. mit cp -a /temp ZIEL in ein anderes Verzeichnis sichern oder mit
rsync -av --rsh="ssh" /temp root@rechner:ZIEL/
über das Netzwerk auf einen anderen Rechner kopieren. (hge)
| Infos |
|
[1] Plattenrettung, Mirko Dölle: "Spanabhebende Datenverarbeitung", Linux-Magazin 07/2003, S. 64
[2] dd_rescue, http://www.garloff.de/kurt/linux/ddrescue/ |
Dieser Online-Artikel kann Links enthalten, die auf nicht mehr vorhandene Seiten verweisen. Wir ändern solche "broken links" nur in wenigen Ausnahmefällen. Der Online-Artikel soll möglichst unverändert der gedruckten Fassung entsprechen.
Druckerfreundliche Version |
Feedback zu dieser Seite
|
Datenschutz |
© 2010 Linux New Media AG |
Last modified: 2008-04-22 13:59
[Linux-Magazin]
[LinuxUser]
[EasyLinux]
[Linux-Community]
[Ubuntu User]
[Linux Technical Review]
[Linux Magazine]
[Linux Pro Magazine]
[Ubuntu User]
[EasyLinux Poland]
[Linux Magazine Poland]
[Linux Magazine Brasil]
[EasyLinux Brasil]
[Linux Magazine Spain]