System nach Upgrade 8.0 -> 8.1 bootet nicht

hp21

Active Member
Hallo zusammen,

also ich habe ein "keines" Problem, und zwar wollte ich endlich mal Datenarchiv von 8.0 auf 8.1 (jeweils Stable) upgraden. Das System läuft auf einem gmirror und sollte normalerweise von /dev/mirror/gm0p2 booten, was er natürlich nicht macht, da er das root system nicht finden kann...

Was mir sorge bereitet ist die Meldung
GEOM: mirror/gm0: corrupt or invalid GPT detected.
GEOM: mirror/gm0: GPT rejected -- may not be recoverable.

Wenn ich von der Livefs CD boote, kann ich die anderen Platten (ein Daten gmirror und eine mit geli verschlüsselte HDD) problemlos mounten und gpart show zeigt mir die Informationen an. Nur bei dem System Mirror zeigt kommt nichts, und auch nur unter /dev/mirror gm0 stehen.

Hat jemand einen Tip oder Hinweis zur Problemlösung?? Stehe gerade etwas auf dem Schlauch und weiß nicht so richtig in welcher Richtung das Problem liegt.

Vielen Dank schonmal für eure mühen.

Grüße

hp21
 
Was sagt denn (im Livesystem)
Code:
gpart show gm0
?
(wahrscheinlich keine Partitionen).

Wenn wirklich nur die Partitionstabelle kaputt ist und du deren Layout noch genau kennst oder Backups davon hast, kannst du sie auch einfach wieder genau so reinschreiben und es sollte alles wieder beim Alten sein.

Wie so etwas passieren kann, ist mir aber irgendwie ein Rätsel. Ich nehme ja mal an, du hast -STABLE selber kompiliert und dann zuerst den Kernel installiert. Dabei werden weder Partitionstabelle noch Bootloader verändert.
 
Also mit gpart show bekomme ich folgende Informationen:

gpart show mirror/gm0
No such geom: mirror/gm0

wenn ich das selbe mit dem Daten Mirror (gm1) mache, bekomme ich die gewünschten Informationen.

Ja ich habe das System selbst kompiliert aus den aktuellen Quellen, jedoch habe ich (leider) nicht den GENERIC Kernel genommen.

Mir ist auch ein Rätsel warum das System so rumzickt. Ich stecke in der ganzen geom Geschichte jetzt auch nicht so tief drin. Habe aber das gefühl, das ihm irgend ein Modul fehlt, damit er die Sache laden kann...
 
Du könntest ja beim Bootenmenü mit 6 in den loader-Prompt wechseln, und dann mit
Code:
lsmod
schauen, ob das geom_mirror Modul geladen ist. Wenn nicht, mit
Code:
load /boot/kernel/geom_mirror.ko
das Modul laden und mit
Code:
boot -s
die Kiste versuchen zustarten.
 
Also ich habe den Hinweis von crotchmaster eben geprüft, und das geom_mirror.ko Modul wird vom System geladen.

Habe dann wie beschrieben das System gebootet, aber ohne Erfolg.

Wenn das System versucht die geom_mirror zu laden, kommt es zur beschriebenen Meldung:
GEOM: mirror/gm0: corrupt or invalid GPT detected.
GEOM: mirror/gm0: GPT rejected -- may not be recoverable.

Danach versucht er ja vom System zu booten:
Trying to mount root from ufs:/dev/mirror/gm0p2

welches mit einem "ROOT MOUNT ERROR" fehlschlägt.

Also der Mirror schein von gm0 scheint ja intakt zu sein, bzw. ist wohl nicht das Problem.

Es scheint, als würde das Problem bei gpart bzw. bei der Partitionstabelle liegen, oder bin ich gänzlich auf dem falschen Dampfer??

mfg
 
So, ich habe jetzt mal auf einer anderen Maschine ein Testsystem (8.1 RELEASE) installiert und eine Platte aus dem Mirror eingebaut. Und siehe da, ich bekomme folgende Info:

fix# gpart show ad4
=> 34 976773101 ad4 GPT (466G)
34 16 1 freebsd-boot (8.0K)
50 2097152 2 freebsd-ufs (1.0G)
2097202 2097152 3 freebsd-swap (1.0G)
4194354 4194304 4 freebsd-ufs (2.0G)
8388658 4194304 5 freebsd-ufs (2.0G)
12582962 125829120 6 freebsd-ufs (60G)
138412082 838361053 7 freebsd-ufs (400G)

Also da scheint ja alles in Ordnung zu sein. Jetzt sehe ich aber leider echt nicht mehr wo das Problem sein sollte....

hm, hat jemand eine Idee??

mfg

PS:

ich bekomme jetzt von GEOM nicht mehr die oben genannten Meldungen sondern folgende:

GEOM: ad4: the secondary GPT table is corrupt or invalid.
GEOM: ad4: using the primary only -- recovery suggested.
 
GEOM schreibt seine Metadaten by default in den letzten Block einer Platte. Könnte es sein dass du vllt. erst die GPT Partitionstabelle angelegt und schließend den Mirror angelegt hast? Denn GPT schreibt ebenfalls ein Backup der GPT Partitionstabelle an das Ende der Platte. Hast du dein System vllt. so installiert:

gpart create -s gpt $DEV_0
gpart add ...
...
gpart add ...
gmirror label $DEV_0
gmirror instert $DEV_1

Das würde erklären warum die sekundäre GPT Tabelle (teilweise) überschrieben wurde. Jede Änderung an der GPT Tabelle würde nun die geom_mirror Metadaten auf den betroffenen Datenträgern wahrscheinlich überschreiben.

Die einfachste Lösung wäre ohne geom_raid in den Singleusermode von einer Platte zu booten. Alles read only mounten und per dump / restore auf einen "Mirror" aus der anderen Platte zu kopieren. Anschließend nachdem du dir sicher bist von der richtigen Platte gebootet zu haben kannst du dem mirror die zweite Platte hinzufügen.

Das Zusammenspiel von GEOM Klassen ihren Metadaten und Partitionstabellen ist imo nirgendwo ausreichend dokumentiert um alle zu warnen, dass die Reihenfolge lebenswichtig ist. Das muss geändert werden. Meines Erachtens gehören warnungen in die Manpages sämtlicher betroffenen GEOM Klassen (mindestens raid3, mirror, stripe).
 
Hallo Crest,

vielen Dank für deine Hinweise, mit der ungünstigen Dokumentation von GEOM hast du recht, das war nie so ganz klar.

In der Zwischenzeit habe ich noch etwas "rumgespielt" und folgendes herrausgefunden.

Die Probleme standen ja him zusammenhang mit einem Systemupgrade, in dem world und kernel neu gebaut wurden. Ich habe das System mit derverbliebenen Platte im gmirror gestartet und dann mit dem alten, noch vorhandenen KERNEL gebootet, und siehe da er bootet durch.

Zum schluss habe ich mir nochmal die aktuellen Sourcen geladen und world und kernel neu gebaut, neu gestartet und siehe da, es kracht wieder. Also irgendetwas beißt sich da, bzw. hat sich geändert, bei dem ich noch nicht hintergestiegen bin.

Ich werde jedenfalls erstmal den Tip con Crest nachgehen, dann schauen wir einmal weiter.

mfg
 
Zurück
Oben