FreeNAS Festplatte kann nicht gemountet werden ( Partitionstabelle )

L

letherface

Guest
Hallo,

ich habe zur Zeit ein echt ernsthaftes Problem. Ich habe schon seid ca. 3 Jahren ein FreeNas Server als Samba konfiguriert. Bisher lief alles Tadellos. Doch vor kurzem hatte ich einen Stromausfall über längere Zeit. Die Batterien der USV haben nicht gehalten und der Server wurde nicht herunter gefahren.
Meine Datenplatte mit all meinen Daten lässt sich nicht mehr mounten. ;'(
Linux kentnisse bzw. Grundlagen habe ich erst seid ca. 4 Wochen und mein Lehrer ist nicht gerade gut im erklären. D.h. viel mehr als ls oder mkdir kenne ich noch nicht wirklich :confused:

Die Fehlermeldung lautete:
The primary GPT table is corrupt or invalid.
Nach tagelangem suchen auf div. englischen Foren stellte ich fest, das wohl die Partitionstabelle zerstört wurde.
Ich ging her und lies TestDisk durchlaufen. Erst normal, dann deep scan. Danach lies ich die neue Tabelle schreiben.

Nach dem Neustart von FreeNas neue fehlermeldung:
The secondary GPT table is corrupt or invalid.
TestDisk erneut ausgeführt, ohne erfolg. Also wieder lesen....:)
Ich habe mir die neuste Live CD von FreeBSD (8.2) herunter geladen und den Befehl "gpart recover ad6" ausgeführt.

Wieder Neustart des FreeNas System.
Nun ist folgende Fehlermeldung und zwar direkt nach dem einloggen über die HTML konsole:

Warning: ZFS is considered to be an experimental feature in FreeBSD.
ZFS filesystem version 3
ZFS storage pook version 13

Und nun weiß ich wirklich nicht mehr weiter. Ich habe das Problem ca. seid 1 Wo und ich müsste mal wieder an meine Daten. Daher benötige ich professionelle Hilfe ;)

Vielen Dank und Grüße
 
Seid mir nicht böse dass ich mich seit einiger Zeit nicht im Forum gemeldet habe, aber vielleicht können wir dieses Standardproblem lösen....

Einige wenige Fragen vorweg:
du hast also das auf FreeBSD/Nanobsd basierende FreeNAS und nicht CoreNAS oder openmediavualt, korrekt?
- um welche Version von FreeNAS genau handelt es sich
- welche Partitionierung und Dateisysteme hast du verwendet
- was spricht dagegen das System neu aufzusetzen und deine Daten aus dem Backup zu verwenden?
- meinst du mit professioneller Hilfe Adressen von Datenrettungsunternehmen, oder reichen dir auch einige kostenlose Tipps ohne Garantie (ich weiß ja nicht wie wichtig deine verlorenen Daten waren)?
 
Ich denke auch, das es eigentlich nur noch eine Kleinigkeit sein kann :)

Also ich benutze die neuste FreeNAS 0.7.2 Sabanda.
Wie damals in dem Tutorial empfohlen habe ich die Platten auf UFS formatiert.
Ich habe nur eine große Partition erstellt, auf der ich mehrere Mount Points gesetzt habe. Dies war damals für mich praktisch und am einfachsten zu händeln.

Die Backup Platte zu verwenden währe grundsätzlich kein Problem, wenn es die nicht schon währe....:ugly:
Meine "Allgebrauchs Platte" (Seagate Baracuda 500GB) fing vor geraumer Zeit aus heiterem Himmel an zu klappern. Darauf hin habe ich sie zum PC Laden meines Vertrauens gebracht und das Backup (Western Digital 500GB) angeschlossen. Ich bin nicht davon aus gegangen, das da was passiert. Ist ja sonst auch nie was passiert ;) Nun ja die Seagate ist nicht mehr zur retten...

Das System neu auf zu setzen währe auch kein Problem. Zur Zeit habe ich die Platte an einer FreeNAS 0.7.2 LiveCD an meinem ArbeitsPC, da es beim mounten ja schon scheitert und ich nicht bei dem schönen Wetter im Keller rumhängen möchte.

Und mit professioneller Hilfe meine ich euch oder bislang dich :)
Datenrettungsunternehmen kommt nicht in frage. Preis / Leistung stimmt nicht ganz mit der Wichtigkeit meiner Daten über ein.
Es geht "nur" um persönliche Dinge, Bilder und nen bisschen was dienstliches.
Wenn alles scheitert dann solls halt so sein....Wer sich nicht schnell genug ne neue Platte organisiert und das Backup verwendet hats eigentlich nicht anders verdient :)

Sorry das ich das nicht im ersten Beitrag geschrieben habe... Hätte ich auch dran denken können. Aber ich schreibe so selten in Foren. Bislang hab ich mir alles immer selbst erarbeiten können, denn irgendwo ist das meistens schon beschrieben. Nur dieses mal finde ich es wirklich nicht..... ;)
 
http://de.wikipedia.org/wiki/Master_Boot_Record
http://de.wikipedia.org/wiki/Partitionstabelle
http://de.wikipedia.org/wiki/GUID_Partition_Table

Die sind wirklich sehr empfehlenswert und haben mir dabei schon ausgezeichnet geholfen, solche Probleme zu verstehen und manchmal in den Griff zu bekommen.

Da ich FreeNAS noch nie benutzt habe, halte ich mich auch mit Vermutungen zurück. Es wundert mich, dass die so aktuell sind und auch schon die GPT nutzen und ZFS (ich meine vor allem, wenn das bei dir nun schon seit drei Jahren läuft, dann hätten die das ja damals schon genutzt).
Wenn du ein System hattest, das mit MBR gelaufen ist und nun eine solche Platte in ein GPT System einbauen willst, dann kann das natürlich Probleme machen und du hast wahrscheinlich (ohne Sicherung) deinen MBR zerstört, der dir da nun sehr hätte helfen können.
Dass nach einem Stromausfall ausgerechnet der MBR zerstört wird, ist sehr unwahrscheinlich. Viel eher dürfte dein Dateisystem korrupt sein und du bräuchtest ein fsck auf deine Partitionen/Dateisysteme. Das Problem wird sein, diese nun wieder zu finden und dazu einen passenden MBR zu bauen.

Sehr hilfreich kann die Toolsammlung aus sysutils/sleuthkit sein. Vor allem /usr/local/bin/mmls hilft sehr viel beim Aufspüren von Partitionen auf einer Platte.
Ich zeige es mal bei einem Stick, der funktioniert:
Code:
senyo# mmls /dev/da0
DOS Partition Table
Offset Sector: 0
Units are in 512-byte sectors

     Slot    Start        End          Length       Description
00:  Meta    0000000000   0000000000   0000000001   Primary Table (#0)
01:  -----   0000000000   0000000062   0000000063   Unallocated
02:  00:00   0000000063   0015952544   0015952482   FreeBSD (0xA5)
03:  -----   0015952545   0015954943   0000002399   Unallocated
und
Code:
senyo# fdisk da0
******* Working on device /dev/da0 *******
parameters extracted from in-core disklabel are:
cylinders=993 heads=255 sectors/track=63 (16065 blks/cyl)

parameters to be used for BIOS calculations are:
cylinders=993 heads=255 sectors/track=63 (16065 blks/cyl)

Media sector size is 512
Warning: BIOS sector numbering starts with sector 1
Information from DOS bootblock is:
The data for partition 1 is:
sysid 165 (0xa5),(FreeBSD/NetBSD/386BSD)
    start 63, size 15952482 (7789 Meg), flag 80 (active)
        beg: cyl 0/ head 1/ sector 1;
        end: cyl 992/ head 254/ sector 63
The data for partition 2 is:
<UNUSED>
The data for partition 3 is:
<UNUSED>
The data for partition 4 is:
<UNUSED>
Der Unterschied ist, dass mmls nicht aus dem MBR liest.
In diesem Fall ist das nebenbei eine ext2fs Formatierte Partition, die als FreeBSD angezeigt wird.
In Linux gibt es für mount die Option loop. Die vermisse ich auch in FreeBSD und ich weiß noch nicht, wie ich so etwas hier machen würde:
Code:
mount -o loop,offset=32256 /pfad/zu/image /pfad/zu/mountpoint
Da wird nämlich der ooset Wert genommen, der in diesem Fall 512 x 63 (Start der Partition) ist und einfach dieser Teil aus dem Image gemountet.

Oh, by the way: da besteht bei all solchen Spielen die große Möglichkeit, den Schaden nur noch schlimmer zu machen. Deshalb solltest du unbedingt mit einem Image der Platte arbeiten (dd if..of).

Für FreeBSD, also ohne die schöne -o loop,offset, fand ich bisher nur die Möglichkeit, den MBR neu zu basteln. Das kann mit einem Hexeditor gemacht werden. Ist aber nicht so einfach und ich habe es durchaus nicht oft hinbekommen. Dann kannst du versuchen, einen MBR mit sysinstall auf die Platte schreiben zu lassen und verwendest dazu die gefundenen Angaben. Das kann man auch mit fdisk machen und wohl nun auch mit sysutils/gpart.
Linux hat parted und gparted, die gehen sehr schön.
Wichtig ist: es geht dir nur um die Partionstabelle! Du willst nicht formatieren und sonst nichts, nur die wenigen Byte wieder bekommen, die zu deiner Plattenaufteilung passen. Hast du das wieder hinbekommen, kannst du die Filesysteme mit ihrem passenden fsck checken und reparieren lassen. Danach solltest du wieder mounten können.

Hättest du einen MBR gesichert, könntest du den natürlich einfach zurückschreiben. Einen MBR, um damit zu spielen und mal was anzufangen, kannst du in /boot/mbr sehen. Der hat aber keine Partitionstabelle drin. Deinen MBR kannst du am einfachsten mit dd if ..of bekommen (wie in Wikipedia beschrieben) und auch gpart hat wohl so eine Funktion.

Wenn ich nicht Linux dabei erwähnte, meinte ich immer FreeBSD.
Wenn du tatsächlich einen GPT hattest und ZFS, dann könnte es auch einfacher für dich sein. Wenn du aber sagst, du hattest in UFS formatiert, kann das ja nicht beides zutreffen und du hast vermutlich bereits etwas unglückliches getan.
 
das hat mir fast eine schlaflose Nacht bereitet :)

In meiner Beschreibung von Gestern war ich ungenau.
Ich wollte dein Augenmerk weniger auf mmls aus dem sleuthkit lenken und damit den Eindruck erwecken, als sei das alleine schon das Heilmittel, als vielmehr diesen kompletten Kit mit allen Tools nennen. mmls war nur ein Beispiel. Bei mir gibt es da noch:
Code:
blkcalc
blkcat
blkls
blkstat
ffind
fls
fsstat
hfind
icat
ifind
ils
img_cat
img_stat
istat
jcat
jls
mactime
mmcat
mmls
mmstat
sigfind
sorter
srch_strings
tsk_comparedir
tsk_gettimes
tsk_loaddb
tsk_recover
Für jedes gibt es eine man-page.
Insgesamt ist die Anwendung weniger auf die direkte "Rettung" des Datenträgers ausgelegt, sondern auf die Rettung darauf enthaltener Daten, die möglichst aus einem Image des Datenträgers gezogen werden sollten.
Die Angaben können vielleicht auch zur direkten Rettung der Platte führen.
Wenn die (gewünschten) Daten aber schon mal herausgezogen werden können, ist der Hauptzweck ja erfüllt. Oft ist so ein Datenträger ja beschädigt und eine Rettung wäre nur von kurzer Dauer.
 
Nun mal ganz ruhig. Bevor man solche Maßnahmen anwendet, kann man ja erst einmal das Naheliegende probieren. Ich vermute mal, dass es sich um eine einzelne Platte (also kein RAID) mit UFS2 handelt. Das wäre gut, denn UFS2 ist weitgehend unkaputtbar. Mache mal folgendes:
1. Baue die Platte wieder in den anderen Rechner
2. Starte deine FreeBSD Live-CD wieder
3. Einmal "gpart show ad6". Nun sollte er die Partitionen anzeigen. Das sieht dann grob so aus:
Code:
8388770     2097152     3  freebsd-ufs  (1.0G)
Entscheidend ist die dritte Spalte, denn sie gibt die Partitionsnummer an. Ich weiß nicht, wie FreeNAS genau partitioniert, aber die Daten werden wahrscheinlich auf der größten Partition liegen.
4. Nun wird es spannend. Einmal ganz dumm probieren: "dumpfs /dev/ad6pN" wobei du das N durch die Nummer der Partition ersetzt. Wenn er nun sagt "could not read superblock to fill out disk" findet er kein Dateisystem und du meldest dich noch mal wieder. Gibt er jede Menge Gemüse aus, ist dort ein Dateisystem und du kannst weitermachen.
5. "fsck_ffs -y /dev/ad6pN" führt einen Dateisystemcheck durch. Das kann ein wenig dauern. Sollte man aber in jedem Fall machen, da wir keine Ahnung haben, in welchem Zustand das Dateisystem ist.
6. "mount /dev/da0pN /mnt" und anschließend "ls /mnt". In einer guten Welt siehst du nun deine Daten. Mein Tipp wäre nun sie auf eine andere Platte umzukopieren, das FreeNAS neu einzurichten (am Besten ein FreeNAS 8 RC, damit wurde das Ding grundüberarbeitet und viele Fehler beseitigt) und die Daten dann wieder darauf. Alternativ kannst du natürlich auch versuchen FreeNAS die Platte wieder schmackhaft zu machen.
 
Lieber auf FreeNAS8 gehen, aber nur, wenn man mit dem reduzierten Funktionsumfang leben kann.
 
Zurück
Oben