Festplatte stirbt, umrechnung Sektoren <-> Bloecke?
Jan 'Red Bully' Seiffert
redbully at cc.fh-luh.de
Thu Nov 25 19:31:16 CET 2004
Hallo Liste!
Ein Kumpel hat grad ein kleines HW-Problem, die Systemplatte seines
kleinen Heim-Server (Via-Epia) scheint ihren Dienst einzustellen:
> Nov 23 03:15:33 mother hda: dma_intr: status=0x59 { DriveReady SeekComplete DataRequest Error }
> Nov 23 03:15:33 mother hda: dma_intr: error=0x40 { UncorrectableError }, LBAsect=6621299, high=0, low=6621299, sector=5528872
> Nov 23 03:15:33 mother end_request: I/O error, dev 03:03 (hda), sector 5528872
Ja, es ist immer Sektor 5528872.
Ok, frei nach Fanta4: "Sie muss raus, Sie muss raus, Sie muss
gehen....", die wichtigstens Daten sind gesichert, Plan zur Rettung der
Insallation steht (Linux ist schlimm, nicht kaputt zu kriegen...),
Ersatz ist geplant.
Nur: Bis zum Erwerb des Ersatz (Geld is grad knapp) waere es nett, wenn
sie noch ein bischen durchhaelt.
Tja, darum wollte ich in Ext2/3 diesen Sektor als "BadBlock" markieren,
was ja eigentlich keine dumme Idee ist. Die Sache hat nur einen Haken.
Da der Fehler bisher nur beim schreibenden Zugriff aufviel ("emerge
sync") muesste auch ein entsprechender Test schreibend drauf zugreiffen.
Das ist nur etwas ungesund fuer den ehemaligen Inhalt, zumindest nach
man-pages von e2fsck/badblocks. Deshalb wollte ich nicht die ganze
Platte schreibend testen, sondern nur dieses "Stueck". Es ist ja auch
fast alles vorhanden was ich brauch:
* den ort (die Sektornummer)
* "badblocks" kennt Bereichs-Argumente + erstellt Liste
* "e2fsck" kann mit "-l" diese Liste dem Dateisystem hinzufuegen
So, nur "badblocks" und "e2fsck" rechnen in Bloecken (und moechten die
Angaben so haben) ich hab aber eine (Hardware-)Sektornummer *grmmml*
Deshalb die Frage:
Wie kann ich das Umrechnen?
Tja, wenn ich mich richtig erinnere von der Programmiererei an meinem
Bootsektor, nen Sektor hat 512byte (auf ner Diskette), Ext2 arbeitet mit
Zone-Numbers, hinter denen die Blocksize von Ext steckt (z.B. 1k, 4k,
siehe dumpe2fs), der Superblock war immer nach 1k, ach, ich weiss es
auch nich mehr genau... besonders, haben Festplatten nich 4k pro Sektor?
Gibts da keinen Systemaufruf?
Wer weiss was, wer hat eine Idee?
Gibt es nicht ein Programm vergleichbar zu ntfsinfo das einem den inode
zu einer Datei ausgeben kann (die Datei kenn ich ja auch) fuer ext? Im
Inode sind dann ja die block/zone-numbers...
Naja, irgendwie muss das doch gehen, sind hier ja nicht unter einem
Kinder-OS...
Gruss
Jan
--
Und jetzt festhalten: da kam ein _CARTOON-HUND_ der mir eine
Sprechblase gemalt hat?! Was geht?? Vergiss es! Ich bin doch nicht
zum verf***ten rumkaspern da! Das OS hatte übrigens das Wort
"Professional" im Flash-Screen.
More information about the Linux
mailing list