• Willkommen im Linux Club - dem deutschsprachigen Supportforum für GNU/Linux. Registriere dich kostenlos, um alle Inhalte zu sehen und Fragen zu stellen.

HDD-Fehler in ReiserFS-Partition

Hallo,

auf meiner HDD gab es gestern 4 defekte Sektoren. Die Ursache für den Defekt weis ich nicht, am Abend zuvor funktionierte noch alles und auch das Runterfahren war OKay. Nachts wurde der Rechner bestimmt nicht bewegt.

Als das gestern Morgen das erste mal auftrat konnte ich nicht mehr von der HDD booten, es kamen sehr früh im Linux-Boot-Process (Bootloader ging) ne Menge Fehlermeldungen vom IO-System. Darauf hat mir der Kernel eine Root-Konsole mit ReadOnly-Filesystem anbieten wollen aber mich trotz korrektem root-Passwort nicht ran gelassen.
Ich hab dann von einer Linux-Notfall-CD gebootet. Ein 'fsck.reiserfs' hat mit Meldungen über einen vermuteten Hardware-Defekt abgebrochen, die defekten Sektoren werden wohl gestört haben.
Das mounten der betreffenden Partition hat allerdings problemlos geklappt und ich hab mein Home-Verzeichnis (und die Daten von den anderen Partitionen der HDD) auf ne externe USB-HDD gesichert.
Als nächstes hab ich meine alte Windows-HDD eingebaut und von dort aus mit nem Disk-Editor die 4 Sektoren durch überschreiben wieder flott gemacht (ich nehme an das Bad-Sektor-Mapping der HDD hat das kompensiert).
Danach hab ich wieder von der Linux-Notfall-CD gebootet und ein erneuter Aufruf von 'fsck.reiserfs' hat keine Fehler oder Inkonsistenzen gefunden. Ich schließe daraus das die 4 Sektoren keine Dateisystem-Strukturen beinhalten was wiederrum die Frage aufwirft warum dann der erste Aufruf von 'fsck.reiserfs' abgebrochen hat.
Die 4 Sektoren arbeiten zwar wieder korrekt aber enthalten nun irgendwelchen Quatsch. Da in den Sektoren davor und danach verschiedene Daten stehen vermute ich das die 4 reparierten Sektoren zu irgendeiner Datei gehören.

Wie kann ich ermitteln zu welcher Datei die 4 Sektoren gehören?

Grüße und Danke schon mal für alle Antworten!
Erik
 
Wenn defekte Sektoren "repariert" werden, so heißt das meines Wissens nach doch lediglich, dass diese Sektoren entprechend markiert und in Zukunft übersprungen werden. Wenn z.B. ein bad block vorliegt, dann sind die Daten dieses Sektors so oder so verloren, da nicht mehr lesbar; welche Datei diesen Sektor irgendwann mal belegt hat, ist also nicht mehr ermittelbar.

Insofern wundert mich Dein Hinweis, dass die beschädigten Sektoren nun wieder funktionieren bzw. ansprechbar sein sollen - wäre dem so, hätte das von Dir erwähnte bad-sector-mapping ja nicht gegriffen.

Ich würde die Platte nochmal mit einem Hersteller-tool (oder dem Hitachi Drive Fitness Test) überprüfen lassen. Ich glaube nicht, dass bad blocks durch einfaches Formatieren ausgemerzt werden.
 
Eine HDD hat eine bestimmte Anzahl von Sektoren auf Ersatz, die bei defekten Sektoren genutzt werden. Sind diese aber alle in Gebrauch, ist es sehr wahrscheinlich, dass die Platte bald friedhofsreif ist.

Du könntest mal mit
Code:
debugreiserfs
versuchen, ob sich so evtl. noch was retten lässt.
 
Hallo,

Wenn z.B. ein bad block vorliegt, dann sind die Daten dieses Sektors so oder so verloren, da nicht mehr lesbar;
Richtig, die Daten in den Sektoren sind unwiederbringlich weg. Aber, wie spoensche schrieb, haben heutige HDDs einige Reservesektoren (einigermaßen gleichmäßig über die Magnetscheiben verteilt) um damit defekte Sektoren zu ersetzen. Auf den Sektor 22000 wird jetzt eben nicht mehr der original dafür vorgesehene Sektor benutzt sondern einer aus einer nahe gelegenen Reservespur eingeblendet. Das Bad-Sektor-Mapping hat eine Liste in der alle defekten Sektoren und deren Ersatz verzeichnet sind. Diese Liste ist selbst bei einer neuen HDD nicht leer und wird im Laufe der Zeit erweitert. Nur selten hat das so deutlich spürbare Auswirkungen wie bei mir aber wenn die Liste eine gewisse Länge erreicht hat oder wenn zu viele neue Einträge in kurzer Zeit kommen sollte man das über S.M.A.R.T. ermitteln können.

welche Datei diesen Sektor irgendwann mal belegt hat, ist also nicht mehr ermittelbar.
Da die Verwaltungsstrukturen vom Dateisystem scheinbar noch komplett intakt sind sollte sich für jeden Datensektor (egal ob ganz oder defekt) ermitteln lassen zu welcher Datei er gehört. Nur der eigentliche Dateninhalt ist weg.

Aus Sicht des Betriebssystems ist meine HDD wieder voll funktionsfähig aber die Partition mounten oder gar von booten möchte ich erst wieder wenn ich den Schaden am Datenbestand genauer abschätzen kann. Das die HDD eventuell demnächst zum Totalausfall wird ist mir bewusst aber ich möchte mein PC erstmal wieder mit der gewohnten Umgebung weiterlaufen lassen. Betriebssystem und Anwendungen auf ner neuen HDD frisch installieren und einrichten kommt mir momentan gar nicht gelegen.

Ob 'debugreiserfs' auf meiner Linux-Notfall-CD (die Knoppicillin-CD aus c't 26/2008) drauf ist werde ich gleich sehen. Danke für den Tipp.

Grüße
Erik
 
Hallo,

auf der Linux-Notfall-CD ist 'debugreiserfs' und auch 'tunereiserfs' drauf, hat mir aber leider beides gar nichts geholfen.
Es war mir nicht möglich rauszubekommen wie der Zusammenhang zwischen den ReiserFS-Blöcken (mit 4 kByte) und den physikalischen Sektoren (512Byte) ist. Weder auf die absolute HDD-Sektornummer (LBA) noch relativ innerhalb der Partition. Die Annahme das der Block 0 am Partitions-Sektor 1 (direkt nach dem Bootsektor innerhalb der Partition) liegt scheint falsch zu sein. Auch die Infos die 'debugreiserfs' ausgibt sind nur schwer interpretierbar und beziehen sich nur auf den Inhalt eines Blocks. Einen ganz normalen Hexdump für einen Block scheint es nicht zu geben (so könnte ich wenigstens den betreffenden Block finden da in den ehemals defekten Sektoren bestimmte, mir bekannte, Daten drin sind).

Gibt es den unter Linux keinen brauchbaren Disk-Editor?
Einen mit dem man zu einem beliebigen Sektor geht, diesen im Hexdump sieht oder sich die Daten decodiert anzeigen lassen kann und der zu jedem Sektor/Block sagen kann wo er dazu gehört. Selbst vor über 15 Jahren konnte das schon die 'diskedit.exe' aus den "Norten-Utilities" für DOS (natürlich nur für FAT12 und FAT16).

Ich denke das ich es dann einfach mal riskieren werde von der HDD zu booten. Alle wichtigen Daten sind jedenfalls in Sicherheit.

Grüße
Erik
 
Code:
debugreiserfs -B /dev/sdxx
gibt dir z.B. die defekten Sektoren im ReiserFS Baum als ASCII- Liste in eine Datei aus. (Siehe Manpage) Das Tool reiserfsck, zigt dir auch vielnützliches. Die Dateisystemtools sind standardmässig bei Linux Distris dabei.
 
Oben