Datenverlust nach Systemkollaps (fsck_ffs, fsdb)

Equinox

Member
Guten Morgen,

meinen Einstand in diesem Forum muß ich leider mit einem wenig erfreulichen Thema feiern: dem Thema Datenverlust. Man möge mir die etwas langatmige Geschichte verzeihen.

Urplötzlich blieb mein bis dahin jahrelang stabil und problemlos laufendes System (FreeBSD 5, x86) stehen, sagte nach 5 Sekunden was von "cannot free inode, already free" (glaube ich zumindest) und semmelte dann ab. Ein erneuter Anlauf schlug fehl, so nutzte ich die Gelegenheit, ein bereits auf einer zweiten Platte aufgezogenes FreeBSD 7 zur Diagnostik der Platte heranzuziehen. Das ging auch recht gut. Auf verschiedenen Partitionen sind haufenweise Inodes "abgegangen", die entsprechenden lost+found-Strukturen füllten sich. Gut, das war mir im Grunde egal, denn ein System kann man neu installieren, /home aber nicht. Da gab es nämlich folgendes Problem: Die Benutzerverzeichnisse aller Benutzer blieben unbeschädigt, nur mein eigenes (!) kam nicht wieder zum Vorschein. Im Midnight Commander wurde es rot und mit "!" angezeigt, cd war nicht möglich: "cannot open, bad file descriptor". Auch fsck_ffs kam nicht weiter, "bad inode number 306176 to nextinode" lautete die Meldung. Nach kurzer Untersuchung des Quelltextes stellte sich heraus, daß inumber > lastvalidinum vorlag. Und hier war dann auch Schluß mit fsck_ffs. Allerdings bin ich der Ansicht, daß meine Daten allesamt noch vorhanden sind, das ergibt sich aus der Differenz von df -h der Partition und du -sch der noch vorhandenen Daten. Mit fsdb konnte ich mich ein wenig auf der Partition umsehen, und siehe da, es ist noch vieles vorhanden.

Sowas habe ich mit FreeBSD noch nie erlebt, dabei bin ich seit 4.0 dabei und hatte nie (!) was zu mäkeln (bei 7.0 ist es leider das Gegenteil). Das mag auch der Grund sein, warum meine Backups auch zu alt sind. Wenn man jahrelang nix hat, wird man bequem. Naja, dann ist das wohl die Quittung...

Bisher war ich auf dem Trichter, mit clri, fsdb und manch anderen Werkzeugen in der Partition herumzubollwerken, um fsck dazu zu bewegen, nach 306176 weiterzumachen und vielleicht doch noch den lost+found-Vorgang zu vollziehen. Nun aber denke ich, daß es vielleicht besser wäre, fsck_ffs derart zu verändern, daß es diese Problematik übergeht, oder gar selbst ein Programm zu schreiben, was ähnlich fsck_ffs funktioniert.

Die Hoffnung stirbt bekanntnich zuletzt, und mit einem dd-Image, das den Fehler der Partition exakt reproduziert, konnte ich schon etwas experimentieren, allerdings ohne Erfolg. Auch Programme wie ffs2recov, magicrescue, testdisk und The Sleuth Kit (fls, dls, ils) haben mir nicht viel weitergeholfen. Meine Verzweiflung erreichte ein Stadium, in dem ich sogar R-Studio unter wine auf das dd-Image ansetzte. Meine Hoffnung, die Daten seien noch da, wurde hier auch bestätigt. Nur scheue ich mich davor, die Platte zur Wiederherstellung nach Kroll oder so zu schicken - sicher, die kriegen das bestimmt hin, aber zu einem Preis, den ich mir dank meines besch... Gehaltes nicht mal ansatzweise vorstellen kann. Da bleibt nur noch der Weg, es selbst zu versuchen.

Das war jetzt sehr viel Gejammer, und ich danke jedem Lesenden für dessen Geduld. Meine Frage also: Hat jemand mit dieser Thematik Erfahrung und kann Artikel oder dergleichen (auch gern in Englisch) empfehlen, aus denen man über die Gestaltung von UFS lernen kann, in einer Art und Weise, daß es auch halbwegs verständlich wird?

Was mir ursprünglich vorschwebte, wäre eine Rekonstruktion der ursprünglichen Inode-Informationen des Heimatverzeichnisses. Dann dürften alle Folgestrukturen doch wieder zugänglich sein. Mittlerweile denke ich, daß es am sinnvollsten wäre, den lost+found-Weg zu gehen. Sicher, alle Einträge des Heimatverzeichnisses erster Instanz würden ihren Namen verlieren und als #1234567 in lost+found/ landen. Gut, sei's drum, an Dateityp (file-Kommando) und Inhalt bekommt man raus, was es mal war, und wenns ein Verzeichnis war, erkennt man sicher am Inhalt, wie es mal geheißen hat. Aber alles andere sollte - SOLLTE, wenn nicht noch weitere Probleme aufgetaucht sind - wieder vorhanden sein.

Ist das ein tauglicher Ansatz?

Fast traue ich mir nicht, die Frage zu stellen, aber... Hat das schon jemand erlebt? Meinen Recherchen im Internet nach bin ich der zweite (!) auf dieser Welt dem das passiert. Schrecklich! Bekanntlich gibt es ja für die seltensten Krankheiten keine Medizin... :-)

Die en-sprechende Mailingliste von FreeBSD hat mir leider nicht so richtig weiterhelfen können. Natürlich mache ich da niemandem einen Vorwurf draus, das Problem ist ja auch SEHR speziell. In der de-sprachigen Liste traue ich mich kaum zu fragen, und Foren zur Datenrettung behandeln nur den (Schuldigung) Pillepalle-Kram, den unsereiner früher von Hand mit'm Hex-Editor geradegebogen hat und der UNIX-Systeme eh nicht betrifft, ansonsten wollen da natürlich die einschlägigen Firmen dran verdienen.

Über hilfreiche Kommentare würde ich mich sehr freuen und bedanke mich bereits im Voraus dafür. Das solls dann auch erstmal gewesen sein, sonst lasse ich mich noch länger in nörgelnder Weise über FreeBSDs Entwicklung aus, und das wollen wir ja keinem antun. :-)

Mann Mann Mann, das ist mir eine Lehre! Nächstes Geld: BACKUP-Lösung.
 
Hi,

bin grade auch in solch ähnlicher Situation ... ein heißer Tip ist echt R-Studio.

Davon gibt es eine Network-Boot CD. Damit bootest Du den betroffenen Rechner. Aufnem Windows-Client dann die R-Studio Version welche sich zu diesem connected. Da kannste dann suchen lassen ( was extrem lange dauern kann ). Solltest Du was finden, kannst DU immernoch schaun ob Du die knapp 200$ investieren willst.


Viel Erfolg
Kai
 
Wenn du noch eine funktionierende Partition mit fbsd7 hast, ist das doch schonmal die halbe Miete. Und ich glaube nicht so ganz, daß du der zweite mit abschmierenden Platten auf der Welt bist. Aber irgendwelche widow anwendungen brauchen wir da nich ! :ugly:

Allerdings ist aus deinem doch langen Post weder klar herauszulesen, was genau du getan hast noch welche Fehlermeldungen erschienen. Es scheint als ob die Partition vom System gemountet wird, nur dein persönlichen Homeverzeichnis ist nicht lesbar ?
Vielleicht versteh ich das ja falsch, aber hast du fsck_* auf den gemounteten Partitionen eingesetzt ?
Hast du schon mal von deiner FreeBSD7 Partition aus (oder der maroden, aber im Single User Modus) versucht die ungemountete marode Partition mit
Code:
 $fsck /dev/deinepartition
( 'deinepartition' durch  die korrekte  laufwerksbezeichnung/partition 
z.B /dev/ad0s1f  oder ähnliches ersetzen)
zu bearbeiten ?

Wenn fsck funktioniert sollten danach auch deine Daten wieder lesbar sein.
Lass hoeren.

Für Backup Lösungen brauch's kein "nächstes Geld" außer einer Investition in eine USB HDD und dem im System enthaltenen Anwendung dump(8), das IMHO immer noch die geschickteste Lösung darstellt. Für mehr GUI fixierte gibts da wohl auch noch anderes.

Gruss
 
Wow, das ging ja schnell!

Wenn du noch eine funktionierende Partition mit fbsd7 hast, ist das doch schonmal die halbe Miete.

Das ist eine tatsächliche physikalische Platte. Mal kurz zur Info:

Bei Defektzustand: FreeBSD 5 auf ad0 mit Partitionen /, /var, /usr und /home. Beschädigungen an /, /var und /usr ohne Belang, an /home nur mein Heimatverzeichnis <- Knackpunkt. Es war eine 100GB-Seagate-Platte

Jetzt: Neue Platte mit installiertem FreeBSD-7-System, welches schon seit einiger Zeit einsatzbereit herumlag, nur habe ich mich immer gescheut, es zu benutzen, weil alles - und ich hoffe, mit der folgenden Äußerung keine neue Jammer- und Gegenheulwelle loszutreten - irgendwie beschissen lief, was ich von FreeBSD nicht kannte, also habe ich die meiste Zeit auf der vorgenannten Platte verbracht. Diese also als ad0. Vorgenannte als ad1 zur Diagnose.

Und ich glaube nicht so ganz, daß du der zweite mit abschmierenden Platten auf der Welt bist.

Nein, aber mit diesem Problem (Inode-Thematik und fsck_ffs-Fehlermeldung). Außerdem funktioniert die Platte nunmehr wieder tadellos, ich unterstelle daher einen logischen Fehler, nicht unbedingt einen weiterbestehenden plattentechnischen Fehler. Defekte Blöcke oder so gibts nicht, daher konnte ich einen dd-Abzug ja auch "nur" mit dd erzeugen. Die Platte funkioniert meines Erachtens aktuell auch völlig normal, der Schaden, der passiert ist, ist wohl vorbei.

Aber irgendwelche widow anwendungen brauchen wir da nich ! :ugly:

Das hoffe ich doch mal, vor allem, da ich seit über 10 Jahren völlig trocken bin und mir von meinem lachhaften Gehalt nicht noch einen "Windows"-tauglichen PC nebst der teuren Lizenzen ins Haus holen will. :-)

Allerdings ist aus deinem doch langen Post weder klar herauszulesen, was genau du getan hast noch welche Fehlermeldungen erschienen.

Dann darf ich nochmal etwas wortreicher ausholen.

Die ursächliche Fehlermeldung, die auf der Systemkonsole auflief, lautete in etwa (leider kann ich mich nicht mehr gut dran erinnern und habe sie dummerweise auch nicht aufgeschrieben):

Code:
cannot free inode, already free!

Der anschließend (in dem Glauben an ein minderschweres Problem) versuchte Systemanlauf blieb mit

Code:
no /boot/loader

stehen und erreichte nicht einmal den SUM. Also das 7er System rein, dieses im SUM hoch, fsck auf die Platte. Da ging der Spaß erst richtig los. Scheinbar hatte es auf / nichts signifikantes, auf /var wohl auch kaum was, auf /usr das komplette local/X11R6 und einen Teil von share erwischt, auf /home mein Heimatverzeichnis. Der fsck_ffs-Durchlauf lieferte kistenweise Meldungen, hier nur eine Auswahl:

Code:
INCORRECT BLOCK COUNT I=290507 (672 should be 40)

EXCESSIVE BAD BLKS I=262789

3631363939722683732 BAD I=290557
UNEXPECTED SOFT UPDATE INCONSISTENCY

Feierabend war bei

Code:
fsck_ffs: bad inode number 306176 to nextinode

Nun bin ich ja nicht so dumm, wie ich aussehe, und habe mir mal den Grund dafür angeschaut. Erstmal im Image: 306176 ist gar nicht zugeordnet. Dann im Quelltext von fsck_ffs. Hier ist dies die Abbruch-Ursache:

Code:
if (inumber != nextino++ || inumber > lastvalidinum)
                errx(EEXIT, "bad inode number %d to nextinode", inumber);

Disjunktionen sind mir irgendwie suspekt, also fand ich heraus, daß folgende Bedingung vorlag:

Code:
----- condition: inumber > lastvalidinum
----- inumber=306176 nextino(++)=306177 lastvalidinum=306175 -----

Nun frage ich mich natürlich, warum 306175 die letzte Inode sein soll, fsck hat höhere Werte gemeldet, und wenn man unterstellt, daß pro Datei ein Stück Inode gebraucht wird, dann sind das doch etwas wenige, es waren meinem Gefühl nach sicher die doppelte Zahl Dateien vorhanden. Gut, so detailliert bin ich in die Thematik noch nicht einsteigen können, da meine Datenrettungsbemühungen hier eher als "Feierabendprojekt" enden, aber ich durfte feststellen, daß ich noch nie so viel über das UFS-Dateisystem wußte wie zu dem Zeitpunkt, an dem es kaputtging. Ist das normal, daß man über die Dinge, warum etwas funktioniert, erst dann lernt, wenn sie nicht mehr funktionieren? :-)

Es scheint als ob die Partition vom System gemountet wird, nur dein persönlichen Homeverzeichnis ist nicht lesbar ?

Richtig, die Partition (bzw. ihr dd-Abzug, den ich aus Sicherheitsgründen benutze) läßt sich problemlos (!) mounten. So in der Art:

Code:
% dd if=/dev/ad1s1f of=ad1s1f.dd bs=1m

Dieser Vorgang dauert etwas über 2 Stunden. Es ist eine ca. 80 GB große Partition, die der 120-GB-Platte entspringt. Ob ich nun dd_rescue, ddrescue oder dls stattdessen ebmühe, das Ergebnis bleibt gleich: ein 1:1-Partitionsabzug.

Code:
% file ad1s1f.dd
home: Unix Fast File system [v2] (little-endian) last mounted on /mnt,
        last written at Wed Jul  2 18:51:06 2008,
        clean flag 0,
        readonly flag 0,
        number of blocks 44322272,
        number of data blocks 42925108,
        number of cylinder groups 472,
        block size 16384,
        fragment size 2048,
        average file size 16384,
        average number of files in dir 64,
        pending blocks to free 0,
        pending inodes to free 0,
        system-wide uuid 0,
        minimum percentage of free blocks 8,
        TIME optimization

Das klingt brauchbar. Also das ganze auf eine Ramdisk geklebt und weiter:

Code:
% sudo mdconfig -a -t vnode -u 10 -f ad1s1f.dd
% fsck -t ufs -yf /dev/md10

Fehlermeldungen wie bei der echten Partition. Dennoch der Versuch:

Code:
% mount -t ufs -o ro /dev/md10 mnt

Funktioniert. Das Ergebnis:

Code:
% df -h
Filesystem     Size    Used   Avail Capacity  Mounted on
/dev/md10       82G     75G    716M    99%    /export/home/equ/rescue/mnt

Hier fällt dem geneigten Leser schon von den Zahlenwerten etwas auf: 82 GB sind auf der Platte insgesamt, 75 GB sind benutzt, aber nur 716 MB sind frei. Gut, das ist verständlich, kurz vor dem Abkacken war die Platte fast voll.

Ein genauerer Blick zeigt dies:

Code:
% sudo du -sch mnt
du: mnt/equ: Bad file descriptor
du: mnt/archiv/cr/clips.w32/s01.wmv: Bad file descriptor
du: mnt/archiv/cr/clips.w32/s02.wmv: Bad file descriptor
 52G    mnt
 52G    total

Es sind also nur 52 GB drauf (mit Zugriffsmöglichkeit), der Rest (ohne Zugriffsmöglichkeit) wäre demnach ca. 30 GB. Auch das stimmt mit der vorherigen Größe meines Heimatverzeichnisses überein.

Jedenfalls habe ich den Midnight Commander zur Hand genommen und erstmal alles, was noch möglich war, rauskopiert.

Die Meldung "bad file deskriptor" bekommt noch einen bitterbösen Beigeschmack, wenn man versucht, das Heimatverzeichnis, dessen Name im MC ja auch angezeigt wird (wohl eine höhere Inode-Instanz als die Inhaltsstrukturen?).

Code:
% file mnt/equ
mnt/equ: cannot open `mnt/equ' (Bad file descriptor)

% cd mnt/equ
mnt/equ: Not a directory.

Im Midnight Commander sieht das so aus (Auswahl):

Code:
|/archiv          |    512|Feb 27  2006|
|/backup          |    512|Sep 23  2005|
|/lost+found      |   2048|Jul  1 10:15|
|/markus          |    512|Nov 20  2003|
|/root            |   1024|Apr 18 16:17|
|/surf            |   1024|Feb 17  2005|
| .fsck_snapshot  | 86567M|Jun 30 20:47|
|?equ             |      0|Jan  1  1970|

Die anderen Heimatverzeichnisse funktionieren normal. Nur meins (steht ganz unten) ist rot markiert. (Übrigens auch die beiden weiter oben bei du unangenehm aufgefallenen Dateien, wohl derselbe Fehler - Indode weg).

Übrigens läßt sich auch .fsck_snapshot mounten, ist aber dolle alt und hilft mir daher nicht weiter.

Vielleicht versteh ich das ja falsch, aber hast du fsck_* auf den gemounteten Partitionen eingesetzt ?

Na, ich bin doch nicht bekloppt! :-)

Hast du schon mal von deiner FreeBSD7 Partition aus (oder der maroden, aber im Single User Modus) versucht die ungemountete marode Partition mit
Code:
 $fsck /dev/deinepartition
( 'deinepartition' durch  die korrekte  laufwerksbezeichnung/partition 
z.B /dev/ad0s1f  oder ähnliches ersetzen)
zu bearbeiten ?

Ja. Egal, was ich mache, fsck_ffs verabschieded sich immer mit derselben, weiter oben genannten Meldung.

Wenn fsck funktioniert sollten danach auch deine Daten wieder lesbar sein.

Genau drauf spekuliere ich ja. Das fsck_ffs muß einmal durchkommen (einmal über alle Inodes iterieren) und die, die nicht "frei" und nicht "belegt" sind, in lost+found/ anlegen, so kenne ich das eigentlich (und habe es schätzen gelernt).


So es zu mir spricht... :-)

Für Backup Lösungen brauch's kein "nächstes Geld" außer einer Investition in eine USB HDD und dem im System enthaltenen Anwendung dump(8), das IMHO immer noch die geschickteste Lösung darstellt.

Mit dump und restore habe ich bereits gute Erfahrungen gemacht, um Systeme umzuziehen (einmal hergestellt, dann 1:1 auf die Klientenrechner ausgekippt). Das beste ist, daß es egal ist, auf welche Art Datenträger man sichert.

Mein letztes Geld ist für eine neue Platte (300 GB, Seagate) draufgegangen, diese werde ich erstmal bespielen und alles, was ich habe, draufkopieren, über den ATA-Strang; danach kommt sie in einen bereitstehenden USB-Träger und wird dann nur noch zur Sicherung (und hoffentlich nie zur erzwungenen Rücksicherung) angeschaltet. Ich denke mal, damit fährt man ganz gut.

Für mehr GUI fixierte gibts da wohl auch noch anderes.

Interessiert mich nicht, ich stelle Funktion über Aufmachung. Solange es läuft, ist es mir egal, ob ich zwei Zeilen Kommandozeilenoptionen rantackern muß. :-)

Erstmal vielen Dank für die hoffnungsmachenden Worte. Mal sehen, wie es weitergeht.

Sicher ist es günstig, sich erstmal fsck_ffs näher anzuschauen, was es macht und wie, um den Fehler besser zu verstehen. Denn auf dem dd-Abzug kann ich ihn scheinbar nicht beseitigen; egal, was ich mache, der Fehler bleibt. Also sollte der Weg, fsck_ffs dazu zu bewegen, trotz des Fehlers weiterzumachen (ja, prügelt mich für diese Unverschämtheit), damit es endlich das machen kann, was es soll, nämlich lost+found mit dem Inhalt meines Heimatverzeichnisses anzufüllen.
 
Hallo

Die Platte funkioniert meines Erachtens aktuell auch völlig normal, der Schaden, der passiert ist, ist wohl vorbei.
Na dann is ja schon gut, oder ?

Aber trotzdem :

Es gibt eine Anwendung mit dem schönen Namen recoverdisk(1) , bei FBSD < 7 musste diese unter /src/tools/tools/ selbsgebaut werden. Aber das furchterbare
FreeBSD7 hats ja nun so. Aheam.
Dieses macht eigentlich nix anderes, als mittels dd(1) einen Clone der Partition/Platte anzufertigen. Der Clou dabei ist, das unlesbares sozusagen 'ausgeklammert' und dann wieder 'eingelesen' wird (man recoverdisk(1)).
Also sollte der Weg, fsck_ffs dazu zu bewegen, trotz des Fehlers weiterzumachen (ja, prügelt mich für diese Unverschämtheit), damit es endlich das machen kann, was es soll, nämlich lost+found mit dem Inhalt meines ..
Da ein fsck mit der bekannten Meldung abbricht, ist es denkbar, das es bei dem von recoverdisk(1) erstellten Clone dieses weiter durchläuft.
Ich habe in einem ähnlichen Fall ganz ad0 geklont. Das war bei der betroffenen kleinen Maschine eine größere Prozedur, anschliessend auf dem Klon fsck bzw. fsck_ffs laufen lassen um danach eine mountbare und lesbare Kopie der maroden Platte zu haben, ( und entsprechende Massen unter lost&found ).
Und ähnlich wie bei dir funktionierte danach die eigentliche Platte wieder, allerdings scheint sie jetzt doch wieder Fehlermeldungen zu generieren. Manchmal gehen eben auch Platten den Weg alles Irdischen, aber jetzt gibts ja 'n ordentlichen Backup. Die Platte wird definitiv bald ausgewechselt.

Ob und wieweit das bei dir funktioniert weiß ich nicht, aber noch mehr zerstören kann diese Prozedur nicht.

Im Attachment (allerdings in englisch) habe ich einen Auszug meines Logs zu diesem Problem eingefügt, ich hoffe es hilft. Ich denke daß du mit dem 'Stil' klarkommst.
Wenn nicht, sag bescheid. Vielleicht hilft die Methode zur Datenrettung bzw. (teilweiser) Wierderherstellung.


Uebrigens
seit ich seit über 10 Jahren völlig trocken bin und ...
wusste gar nich das das Klickibunti betrunken machen kann ;)

Gruss
 

Anhänge

Die en-sprechende Mailingliste von FreeBSD hat mir leider nicht so richtig weiterhelfen können. Natürlich mache ich da niemandem einen Vorwurf draus, das Problem ist ja auch SEHR speziell. In der de-sprachigen Liste traue ich mich kaum zu fragen, und Foren zur Datenrettung behandeln nur den (Schuldigung) Pillepalle-Kram, den unsereiner früher von Hand mit'm Hex-Editor geradegebogen hat und der UNIX-Systeme eh nicht betrifft, ansonsten wollen da natürlich die einschlägigen Firmen dran verdienen.

Falls dir hier noch keiner helfen konnte, solltest du ruhig auch mal auf de-bsd-questions@freebsd.org nachfragen. Da sind nämlich (ebenfalls) sehr kompetente Leute, von denen viele niemals ein Forum betreten würden. ;)
 
Code:
% df -h
Filesystem     Size    Used   Avail Capacity  Mounted on
/dev/md10       82G     75G    716M    99%    /export/home/equ/rescue/mnt

Hier fällt dem geneigten Leser schon von den Zahlenwerten etwas auf: 82 GB sind auf der Platte insgesamt, 75 GB sind benutzt, aber nur 716 MB sind frei. Gut, das ist verständlich, kurz vor dem Abkacken war die Platte fast voll.
8% der Platte sind reserviert (nur root kann diese beschreiben). Die Anzeige ist soweit also völlig normal.

Die Meldung "bad file deskriptor" bekommt noch einen bitterbösen Beigeschmack, wenn man versucht, das Heimatverzeichnis, dessen Name im MC ja auch angezeigt wird (wohl eine höhere Inode-Instanz als die Inhaltsstrukturen?).
inodes enthalten keine Namen. Verzeichnisse enthalten Name+inode-Nummer. Ergo in /home (oder wie entsprechend das Verzeichnis heißt) ist der Name deines $HOME gespeichert.
 
Es gibt eine Anwendung mit dem schönen Namen recoverdisk(1) , bei FBSD < 7 musste diese unter /src/tools/tools/ selbsgebaut werden. Aber das furchterbare FreeBSD7 hats ja nun so. Aheam.

Ja furchbar. :-) Wie blöd müß man eigentlich sein? Auf meiner TODO-Liste hatte ich es schon notiert, und "man recoverdisk" kam mir auch bekannt vor. Nur erschloß sich mir nicht, daß da eventuell noch ein gewisser Inode-BUdenzauber hintersteckt, der mir nützen könnte, insofern besten Dank für den Tip.

Dieses macht eigentlich nix anderes, als mittels dd(1) einen Clone der Partition/Platte anzufertigen. Der Clou dabei ist, das unlesbares sozusagen 'ausgeklammert' und dann wieder 'eingelesen' wird (man recoverdisk(1)).

Momentan schaufle ich gerade alles nicht benötigte auf die 300-GB-Platte rüber, um dann eben dies einer näheren Untersuchung zuzuführen. Dafür brauche ich etwas Platz.

Da ein fsck mit der bekannten Meldung abbricht, ist es denkbar, das es bei dem von recoverdisk(1) erstellten Clone dieses weiter durchläuft.

Also, wenn das funktioniert... ich sag lieber nicht, was ich dann mache. :-)

Und ähnlich wie bei dir funktionierte danach die eigentliche Platte wieder, allerdings scheint sie jetzt doch wieder Fehlermeldungen zu generieren.

Nun ja, am Laufverhalten der Platte hat sich nach dem Kollaps eigentlich nichts geändert. Sobald ich mit dem Image durch bin, mache ich mal smartctl-Diagnostik und sehe da etwas näher rein. Aus dem aktiven Dienst scheidet die Platte selbstverständlich erstmal aus. Sie verbleibt im Lager ohne Änderung. Bei Speicherplatzbedarf bügele ich die dann über und hoffe, daß sie noch eine Weile lebt. Hat immerhin Geld gekostet. Für den Hauptrechner kommt sie aber nicht mehr infrage, da ist das Vertrauensverhältnis schlichtweg zerstört. Sollte sich auf einem anderen Rechner dann nochmal dieselbe Erscheinung manifestieren, dann walle walle manche Strecke gibts mit'm Hammer drauf. :-)

Ob und wieweit das bei dir funktioniert weiß ich nicht, aber noch mehr zerstören kann diese Prozedur nicht.

Klar, dafür ist ja das dd-Image da, das den Fehler 1:1 reproduziert. Zur Not kann ein neues gefertigt werden.

Nochmals danke, ich versuche das mal in endlicher Zeit und gebe dann entsprechend Rückmeldung.

Uebrigens
wusste gar nich das das Klickibunti betrunken machen kann ;)

Na, so meinte ich das ja auch nicht, eher in dem Zusammenhang, wo Windeln und dergleichen eine Rolle spielen, da ist finale Trockenheit ja auch erwünscht. :-) Jaja, ich höre schon auf, sonst heißt es nachher noch: "Erst paar Stunden im Forum und schon Anti-MICROS~1-Hetze verbreiten"... :-)
 
Falls dir hier noch keiner helfen konnte, solltest du ruhig auch mal auf de-bsd-questions@freebsd.org nachfragen. Da sind nämlich (ebenfalls) sehr kompetente Leute, von denen viele niemals ein Forum betreten würden. ;)

Neben diesen Leuten bin ich nur ein billiger Hanswurst. Schnell hat man mir dort klargemacht, daß mein Wissensstand bei 5.x stehengeblieben ist, 6.x kannte ich nur spielereihalber von PC-BSD und in 7.x ist ja vieles neu. In anderer Thematik hatte ich da schonmal was gefragt, da wurde ich auch geholfen. :-)

Erschreckend ist für mich nur die Vielzahl der möglichen Anlaufstellen: Da gibbet Mailinglisten in -en- und -de-, Newsgroups, diverse Foren, IRC-Channels und weißnichwas, zu FreeBSD, zu Datenrettung, und Firmen, die mit sowas gut Geld verdienen. Das meiste erfordert Anmeldung. Leider macht mich der Datenkollaps auch etwas fertig, so daß ich mich nicht allzulange am Stück mit der Thematik befassen, das ist sicher verständlich. Und viele Dinge kosten ja auch Zeit (dd-Abzug, Durchlauf von Diagnoseprogrammen).

Im Grunde sollte das ein Problem sein, daß ich kraft meiner Gehirnwindungen selbst lösen können müßte, aber mit zunehmender Zeit im Berufsleben beobachte ich bedauerlicherweise einen zunehmenden geistigen Rückbau bei mir, es ist furchtbar. Blödheit läßt grüßen. :-)
 
8% der Platte sind reserviert (nur root kann diese beschreiben). Die Anzeige ist soweit also völlig normal.

Das ist mir bekannt; ich spielte mit der df-Angabe ja auch auf den nur noch freien Platz von 750 MB an und der groben, unter Zuhilfenahme von du aufgemachten Rechnung "Partition mit 80 GB, 50 GB belegt, knapp 1 GB frei - somit ca. 30 GB irgendwo abgesoffen, was der Größe des Heimatverzeichnisses entspricht." DIes begründete Meine Hoffnung, daß die Daten noch vorhanden wären, was letztlich "UFS Explorer" und "R-Studio" auch bestätigt hatten, fsdb von FreeBSD übrigens auch.

inodes enthalten keine Namen. Verzeichnisse enthalten Name+inode-Nummer. Ergo in /home (oder wie entsprechend das Verzeichnis heißt) ist der Name deines $HOME gespeichert.

Genau das hatte ich ja vermutet und mit "Eintrag auf der jeweils höheren Instanz" umschrieben, da mir die korrekten Termini da nicht unbedingt geläufig sind, oder anders gesagt: Daß es so sein muß, sagt einem hier schon der gesunde Menschenverstand. Der Name des Heimatverzeichnisses ist in der Instanz gespeichert (hier: Hauptverzeichnis der Partition), wo auch die anderen Heimatverzeichnisse rumliegen. Diesem Namen zugeordnet sein sollte ein Inode-Eintrag, der sagt "Ich bin ein Verzeichnis, das ist mein Inhalt", aber dieser Inode-EIntrag fehlt offensichtlich. Im anhängig sollte dann eben auch eine Struktur sein, die die jeweiligen Unterverzeichnisse und Dateien beherbergt und insbesondere bei den Dateien auch aufzeigt, wo diese auf der Platte liegen (Blocknummern?). Das ergab sich für mich auch nach einem kurzen Schnupperstudium am Quelltext von fsck_ffs, man inode und der Datei inode.h.

Schön, daß ich das wenigstens begriffen habe, das stärkt mich in der Zuversicht, eines Tages doch mal würdig zu sein, FreeBSD standesgemäß benutzen zu dürfen. :-)
 
Zurück
Oben