Fehlermeldung vom ahci Treiber & fsck - Platte defekt oder was anderes?

Errorsmith

Kompiliertier
Moin

Folgende Fehlermeldung auf einem FreeBSD 8.0-STABLE nach einem Totalcrash ungeklärter Ursache

Code:
ahcich2: Timeout on slot 3
ahcich2: is 00000000 cs 00000008 ss 00000000 rs 00000008 tfd 4051 serr 00000000
g_vfs_done():ada1s1d[READ(offset=385859584, length=16384)]error = 5

Die Angabe "on slot" variiert zwischen 0 und 14, bei der Angabe für "cs" habe ich auch manchmal unterschiedliche Werte. Fakt ist jedenfalls das fsck sich weigert / nicht in der Lage ist das FS zu reparieren (UNEXPECTED SOFT UPDATE INCONSISTENCY) und dementsprechend die Platte nicht eingehängt werden kann (Filesystem still dirty). Es handelt sich dabei um /usr auf einem wenig genutzten Rechner, der irgendwann in der Nacht abgestürzt ist.

Frage: Platte tauschen oder kann man das reparieren?
(und wenn reparieren: Wie)

Grüße,
Errorsmith
 
Solange es das Dateisystem nicht mit noatime gemounted wurde werden auch bei lesenden Zugriffen Metadaten verändert. Die unterste Zeile kommt aus dem UFS Code und besagt nicht mehr und nicht weniger als das Daten auf dem Device /dev/ada1s1d an Offset 385859584 (wahrscheinlich in Sektoren gerechnet) nicht lesbar waren. Der BIO Request war 16KiB groß und der Fehlercode ist 5. Du kannst jetzt nachsehen was der Fehlercode 5 bedeutet in /usr/src/sys/. Die Beiden Zeilen darüber kommen vom AHCI Treiber. Diesen in /usr/src/sys/dev/ahci/ hinterher zu gehen dürfte weniger Aufwand sein. Timeouts lassen sich in der Regel einstellen. Manche AHCI Controller benötigen eine Sonderbehandlung um zuverlässig zu funktionieren. Dafür gibt es in ahci.c ein Array mit den Tweaks. Du kannst gucken ob es für deinen AHCI Controller in 9-CURRENT Tweaks gibt die in 8.2-RELEASE fehlen. Das war bei mir nötig um einen neuen Marvell 6gbit/s SATA Controller mit ahci.ko nutzen zu können. Ansonsten kannst du natürlich auch die lästigen Probleme von #rl zu erst probieren (wackelige Kabel etc.)
 
Den Fehlercode 5 hatte ich schon gefunden, da steht das da:
5 EIO Input/output error. Some physical input or output error occurred.
This error will not be reported until a subsequent operation on
the same file descriptor and may be lost (over written) by any
subsequent errors.

Die anderen Meldungen scheinen eher mit USB vorzukommen, das betrifft mich ja allerdings nicht.

Allerdings kam ich damit nicht weiter. Das Problem ist im Grunde dieses: Das System funktionierte bis gestern tadellos (vor einem Jahr oder eineinhalb Jahren installiert). Irgendwelche Quirks mußte ich bisher auch nicht anwenden.

Über Nacht habe ich ihn angelassen um etwas zu kompilieren. Dabei hat er sich weggehängt (Freeze). Ich hab ihn ausgeschaltet, einige Sekunden gewartet und dann wieder eingeschaltet.

Beim fsck hat er dann gemeckert: Ich solle fsck manuell laufen lassen. Hab ich gemacht, dabei traten dann obige Fehler auf. Ich bin mir halt unsicher ob ich mir (beim Absturz) das FS gründlich zerlegt habe, oder ob meine Platte sich gerade verabschiedet (und dabei ggf auch den Freeze verursacht hat, auf der Platte war auch eine Swappartition, könnte also durchaus sein). Im Moment tendiere ich zum Hardwaredefekt. Ich würde allerdings ungern etwas tauschen das eigentlich garnicht kaputt ist. Daher die Frage hier...

noatime werd ich aber mal machen wenn ich ihn das nächste mal anmache...

Grüße,
Errorsmith
 
Im Grunde gibt es drei Möglichkeiten:
1. Kabel hin.
2. Platte hin.
3. Controller hin.
Den dritten Punkt würde ich erst einmal ausschließen und mit dem Kabel beginnen. S-ATA Kabel sind ziemlicher Murks, der Anpressdruck der Stecker ist zu gering. Es kann Staub zwischen die Kontakte kommen, es kann oxidieren. Alles nicht gut... Daher erst einmal ein neues Kabel einsetzen, wenn möglich gleich eines mit Klemme. Die sind ein wenig robuster. Behebt das die Probleme nicht, wäre der nächste Schritt ein totales Backup machen und das Diagnosetool des Plattenherstellers anwerfen. Das wird dir vielleicht sagen, ob die Platte kaputt ist.
 
Ich werde mal die Kabel tauschen. Sind allerdings schon welche mit Klemme. Da ich allerdings vom Smartd mittlerweile auch Meldungen über offline blocks bekomme dürfte es eher die platte sein. Danke trotzdem für den Hinweis. Wenn ich die Ersatzplatte habe, wie schaufel ich am besten die NutzDaten rüber ohne noch mehr kaputt zu machen?

Grüße, Errorsmith
 
Mit dump und restore:
1. Neue Platten partitionieren, Dateisystem rauf und nach /mnt mounten.
2. Nach /mnt wechseln.
3. "dump -0 -af - /dev/alte_platte | restore -rf -"
Anschließend hast du eine 1:1 Kopie. Schneller wird es, wenn du misc/buffer aus den Ports zwischen dump und restore klemmst. Das wird allerdings nur funktionieren, wenn die alte Platte noch gelesen werden kann. Geht das stellenweise nicht mehr, wird es eklig und Tools wie "dd_rescue" aus den Ports sind dein Freund, um sie zu klonen.
 
Die meisten 4k Platten täuschen immer noch 512 Byte vor. Da musst du für die optimale Performance beim Formatieren aufpassen.

Bei ehrlichen 4k Platten ... ich habe leider keine Ahnung.
 
was müßte ich denn beim Formatieren beachten? Habe mich bisher nur unzureichend mit dem Thema beschäftigt und kann es nun nicht richtig, da mein Internet z. Zt aufs Handy beschränkt ist. :( Aber grundsätzlich kann ich mir eine Platte aussuchen, meine drei Partitionen erstellen und Spass haben?
 
Ja, FreeBSD kommt problemlos mit 4k-Sektoren klar. Wichtig ist nur - egal ob 512b Emulation oder nicht - dass die logischen Blöcke aus Dateisystemsicht mit den physischen Blöcken abschließen, denn sonst verliert man einiges an Geschwindigkeit. Der einfachste Weg es zu erreichen ist, vor der ersten Partition 1 Megabyte freizulassen.
 
blöde Frage: Wie mach ich das? Ich habe bisher immer mit sysinstall partitioniert, aber das steht mir ja dann nicht zur Verfügung... Ich hab besagten Rechner den ich im singleuser mode hochfahren kann. Und ne xp Kiste...
 
Ich packs nicht.
Auf der alten Platte war ein Slice mit drei Partitionen: swap, /usr und /usr/data

Das Konzept von gpart scheint mir ein völlig anderes zu sein!? Mit sysinstall bzw. fdisk geht es jedenfalls nicht, die lassen entweder garnicht mit sich reden bzw. runden irgendwohin auf bzw. ab.

Kann mir da jemand unter die Arme greifen?

Grüße,
Errorsmith
 
Hm. War wohl etwas spät gestern und ich war etwas frustriert. Hab mich heute morgen nochmal dran gesetzt und es hinbekommen. Dump läuft jetzt. Mal sehen was noch zu retten ist. Danke für eure Hilfe bisher...
Grüße Errorsmith
 
Back
Top