Bootvorgang bricht nach Update auf FreeBSD 11 mit Error 19 ab

Doalwa

Well-Known Member
Hallo zusammen,

ich habe heute Abend versucht, meinen HP MicroServer N40l von FreeBSD 10.3 auf FreeBSD 11 zu aktualisieren.

Habe seit Release 4.x hierzu immer den Weg über make world gewählt, bisher immer ohne große Probleme.

Nun komme ich aber leider nicht weiter: Das eigentliche Update lief wie immer ohne große Vorkommnisse durch, ich habe mich bei den einzelnen Schritten am Handbook orientiert.

Nach make installworld und mergemaster -iF im Single User Modus habe ich das System neu gestartet, hier komme ich dann nicht weiter: Ich habe auf dem Server ein GMirror-Raid aus zwei 1TB SATA-Festplatten eingerichtet.

Der Kernel müht sich während des Bootvorgangs redlich, / zu mounten.

Folgenden Meldungen entnehme ich, dass der Kernel die beiden Festplatten erkennt, scheinbar stimmt aber etwas mit Platte ada0 nicht:

GEOM_RAID: Promise : Disk ada0 state changed from NONE to ACTIVE
GEOM_RAID: Promise: Subdisk OS:0-ada0 state changed from NONE to STALE.
und
GEOM_RAID: Promise : Disk ada1 state changed from NONE to ACTIVE.
GEOM_RAID: Promise: Subdisk OS:0-ada1 state changed from STALE to ACTIVE.

Weiter geht es dann mit diesen Meldungen hier:
GEOM_RAID: Promise: Volume started.
GEOM_RAID: Promise: Volume OS state changed from STARTING to DEGRADED.
GEOM_RAID: Promise: Provider raid/r0 for volume OS created.
GEOM_PART: integrity check failed (raid/r0, MBR)

mountroot: waiting for device /dev/mirror/gm0s1a...
Mounting from ufs:/dev/mirror/gm0s1a failed with error 19.

Anschließend lande ich im mountroot Prompt und bekomme folgende verfügbaren Geräte angezeigt:

raid/r0 diskid/DISK-5YD4N8QS diskid/DISK-5YD4VLCR ada3 ada2 ada1 ada0

ada2 und ada3 sind zwei 2TB-Platten, welche in einem zpool zusammengefasst sind und nur zur Datenablage dienen.

Wenn ich am Loader-Prompt statt des neuen 11.0 Kernels den 10.3 kernel.old wähle bootet das System wieder.

Wenn ich mir dann mittels gmirror status den Zustand des RAIDs anzeigen lasse, scheint alles okay zu sein:
Name Status Components
mirror/gm0 COMPLETE ada0 (ACTIVE)
ada1 (ACTIVE)


Wäre toll wenn mir hier jemand weiter helfen könnte, bin leider erstmal mit meinem Latein am Ende.


Danke vorab,
Dominik
 
Keiner eine Idee?

Habe gestern testweise aus dem alten Kernel heraus noch mal ein Update des Systems mittels freebsd-update auf 11.0-Release durchgeführt. Aber auch hier das gleiche Problem..der neue Kernel bootet nicht, der alte schon.
 
Ich habe eine Vermutung: in 11 werden offenbar die ad0 etc. nicht mehr unterstützt. Es gibt nur noch ada0. Die Reihenfolge der Laufwerke ist bei beiden Devicebezeichnungen unterschiedlich. Ich nehme an, dass du den raid noch zu ad0-Zeiten eingerichtet hast?!
 
GEOM_PART: integrity check failed (raid/r0, MBR)
Das hier ist der offensichtliche Fehler. Er findet keine valide Partitionstabelle und kann daher die Dateisysteme nicht sehen. Nun gilt es herauszufinden, was das grundlegende Problem ist. Vom Gefühl her ist KobRheTilla auf der richtigen Spur. Daher erst einmal die ganz allgemeine Frage: Ist es ein gmirror oder ein über den Promise Controller angelegtes RAID?
 
Hi,

Danke für eure Antworten!

Welches Modul geladen ist kann ich heute Abend verifizieren, Ausgabe von kldstat werde ich posten.

Das RAID wurde jedenfalls keinesfalls über den integrierten RAID-Controller angelegt. Einen dedizierten Hardware RAID-Controller habe ich in dem System auch nicht verbaut, der Server kommmt standardmäßig mit einem AMD Chipsatz-RAID...möglich dass FreeBSD diesen als Promise-Controller erkennt..aufgrund meiner Erfahrungen mit diesen Fake-RAID Controllern hatte ich mich damals dazu entschieden, mit den Bordmitteln von FreeBSD ein einfaches Software-RAID zu erstellen.

Naja, ich frickel heute Abend noch ein wenig rum und werde meine Erkenntnisse hier posten :)
 
oder schlicht und voll auf doof :): statt geom_mirror -> geom_raid geladen?!
was sagt: kldstat

Bin leider erst heute dazu gekommen, noch mal nach dem Server zu schauen.
Wenn ich vom alten Kernel boote, gibt mir kldstat folgende geladenen Module aus:

kernel, geom_mirror.ko,zfs.ko, opensolaris.ko

Ich weiß leider nicht, wie ich raus bekomme welche Module vom neuen Kernel geladen werden...bis zu einem Shell-Prompt gelange ich ja leider nicht.

Würde mich aber auch deiner Hypothese anschließen, dass hier beim Bootvorgang statt geom_mirror geom_raid geladen wird..

In der /boot/loader.conf steht zumindest nur

geom_mirror_load="YES"

Wertet der neue Kernel diese Direktive nicht aus? An welcher Stelle kann ich sonst noch Einfluß darauf nehmen, welches RAID-Modul geladen wird?

Ich muss noch anfügen, dass ich bereits beim Bau des Kernels ein Problem hatte. Ich benutze einen Custom-Kernel der sich bisher mit jedem Release bauen ließ.
Beim Versuch, diesen Kernel unter FreeBSD 11 zu bauen bekam ich eine make-Fehlermeldung, laut derer die Devices ixgbe und faith unknown wären.

Ich habe mir nichts weiter dabei gedacht und stattdessen einen Generic-Kernel kompiliert. Zu Zeiten als ich diesen Server noch als Router laufen hatte, hatte ich der Kernel-Config
die Options IPFIREWALL und IPDIVERT hinzugefügt.
Da ich diese Optionen nicht mehr benötige, habe ich das nicht weiter verfolgt.

So langsam vermute ich, dass ich mittels svn vielleicht nicht die kompletten Sourcen gezogen habe? Zumindest eine Man-Page gibt es für den Treiber ja nach wie vor.

Ich werde jetzt /usr/src noch mal komplett löschen, die Sourcen noch einmal komplett neu ziehen und noch einmal ein neues make buildworld und make buildkernel versuchen.

Damit wird die Kiste vermutlich die Nacht über beschäftigt sein...werde morgen mal posten was heraus gekommen ist.

Wenn bis dahin noch jemand einen Tipp hat: Nur her damit :-)
 
Guck mal ins Handbuch https://www.freebsd.org/doc/de_DE.ISO8859-1/books/handbook/geom-mirror.html unter 18.3.4. Fehlerbehebung ...
Dort ist
Code:
Andere Probleme, die error 19 verursachen können, sind nur mit mehr Aufwand zu
beheben.
Obwohl das System von ada0 booten sollte, wird ein weiterer Prompt erscheinen,
wenn /etc/fstab fehlerhaft ist. Geben Sie am Loader-Prompt ufs:/dev/ada0s1a ein
und drücken Sie Enter. Machen Sie die Änderungen an /etc/fstab rückgängig und
hängen Sie anstelle des Spiegels die originale Festplatte (ada0) ein. Starten Sie
dann das System neu und versuchen Sie den Vorgang erneut.
unter anderem für dich vielleicht interessant. Die Platte "normal" mounten und dann der Sache auf die Spur kommen.

PS: die Idee mit kldstat war natürlich hohl, wenn du nicht in den singlemode kommst... sorry ;)
 
Zuletzt bearbeitet:
Ich würde erstmal ganz einfach geom_raid aus dem Weg räumen. Dazu am Loader-Prompt:
Code:
set kern.geom.raid.enable=0
boot -s

Idealerweise schafft er es dann in den Single User Mode.
 
Ich würde erstmal ganz einfach geom_raid aus dem Weg räumen. Dazu am Loader-Prompt:
Code:
set kern.geom.raid.enable=0
boot -s

Idealerweise schafft er es dann in den Single User Mode.

Oh mein Gott, ich hatte die Kiste schon fast abgeschrieben, war schon dabei einen HP DL380 G6 vorzubereiten der vor ein paar Wochen bei einem Kunden vom Laster gefallen ist!

Tatsächlich bootet die Maschine, nachdem ich am Loader-Prompt geom_raid deaktiviere! Muss jetzt nur noch heraus finden, wie ich dieses Setting permanent hin bekomme..aber das ist jetzt das kleinste Problem!

Danke, Danke, Danke Yamagi! Solltest du je in der Gegend um Marburg unterwegs sein ist dir mindestens ein Bier auf meine Kosten sicher :)

Auch dir vielen Dank, Elwood! Du scheinst in der Tat gemäß deines Avatars im Auftrag des Herrn unterwegs zu sein! :)
 
Einfach in die /boot/loader.conf:
Code:
kern.geom.raid.enable=0

Bleibt die Frage, wieso graid dort Metadaten eines AMD / Promise-RAID sieht. Aber vielleicht wird man das nicht mehr nachvollziehen können.
 
Zurück
Oben