8.6. Wenn etwas schiefgeht

Es gibt fünf Hauptfehlerquellen beim Erstellen eines angepassten Kernels:

config verursacht Fehler:

Wenn config(8) misslingt, liegen Fehler in der Kernelkonfigurationsdatei vor. Zum Glück gibt config(8) die die Zeilennummer der Fehlerstelle an, sodass Sie den Fehler schnell finden können. Beispielsweise könnten Sie folgende Fehlermeldung sehen:

config: line 17: syntax error

Vergleichen Sie die angegebene Zeile mit GENERIC und stellen Sie sicher, dass das Schlüsselwort richtig geschrieben ist.

make verursacht Fehler:

Wenn make misslingt, liegen meistens Fehler in der Konfigurationsdatei vor, die aber nicht schwerwiegend genug für config(8) waren. Überprüfen Sie wiederum Ihre Konfiguration und wenn Sie keinen Fehler entdecken können, schicken Sie eine E-Mail mit Ihrer Kernelkonfiguration an die Mailingliste 'Fragen und Antworten zu FreeBSD' . Sie sollten dann schnell Hilfe erhalten.

Der neue Kernel lässt sich nicht installieren:

Wenn das Übersetzen des Kernels geklappt hat aber die Installation nicht, weil make install oder make installkernel fehlgeschlagen ist, sollten Sie zuerst überprüfen, ob Ihr System in der Sicherheitsstufe 1 (engl. secure level) läuft (siehe init(8)). Ihr alter Kernel ist durch die Immutable-Option vor Veränderungen geschützt und die Installationsprozedur versucht, diese Option vom alten Kernel zu entfernen und auf den neuen Kernel zu setzen. Da in der Sicherheitsstufe 1 die Immutable-Option nicht gesetzt werden kann, muss die Installation des Kernels in der Sicherheitsstufe 0 oder einer niedrigeren stattfinden.

Der obige Absatz gilt nur für FreeBSD 4.X und frühere Versionen. Ab FreeBSD 5.X wird der Kernel nicht mit der Immutable-Option installiert. Wenn sich der Kernel nicht installieren lässt, zeigt dies wahrscheinlich ein mehr grundsätzliches Problem an.

Der Kernel bootet nicht:

Wenn der Kernel nicht booten will, ist das noch lange kein Grund zur Panik. Denn FreeBSD besitzt exzellente Mechanismen zur Wiederherstellung nach dem Einsatz inkompatibler Kernel. Den Kernel, mit dem Sie booten wollen, können Sie sich im FreeBSD Boot-Loader aussuchen. In den Loader gelangen Sie, in dem Sie einfach eine Taste außer Enter drücken, wenn das System im Boot-Menü von 10 herunterzählt. Geben Sie dann unload ein und mit boot /boot/kernel.old booten Sie den alten Kernel. Sie können hier natürlich auch den Dateinamen eines anderen Kernels, der sauber bootet angeben. Für alle Fälle sollten Sie immer einen Kernel, der garantiert bootet, bereit halten.

Nun können Sie die Konfiguration noch einmal überprüfen und den Kernel neu kompilieren. Dazu ist /var/log/messages sehr nützlich, da hier sämtliche Kernelmeldungen von jedem erfolgreichen Bootvorgang gespeichert werden. dmesg(8) gibt Ihnen die Kernelmeldungen vom letzten Bootvorgang aus.

Anmerkung: Für den Fall, dass Sie Probleme bei dem Kernelbau bekommen, heben Sie sich immer einen GENERIC oder einen anderen Kernel, der garantiert bootet, auf. Der Name dieses Kernels sollte so gewählt sein, dass er beim nächsten Bau nicht überschrieben wird. Sie können sich nicht auf kernel.old verlassen, da dieser Kernel durch den zuletzt installierten Kernel, der vielleicht schon kaputt war, während der Installation ersetzt wird. Kopieren Sie den funktionierenden Kernel so schnell wie möglich in das richtige Verzeichnis (/boot/kernel). Ansonsten funktionieren Kommandos wie ps(1) nicht. Benennen Sie dazu einfach das Verzeichnis des funktionierenden Kernels um:

# mv /boot/kernel /boot/kernel.bad
# mv /boot/kernel.good /boot/kernel

Vor FreeBSD 5.X müssen Sie zuerst die Immutable-Option vom installierten Kernel entfernen, bevor Sie den funktionierenden Kernel zuäck kopieren können:

# chflags noschg /kernel

Wenn Sie den Befehl nicht ausführen können, befinden Sie sich in einer höheren Sicherheitsstufe als 0. Setzen Sie in /etc/rc.conf die Variable kern_securelevel auf -1 und booten Sie danach. Wenn der neue Kernel funktioniert, können Sie die Variable wieder auf Ihren alten Wert zurücksetzen.

Wenn Sie den neuen Kernel, oder allgemein eine Datei, mit der Immutable-Option versehen wollen, um sie vor Veränderungen zu schützen, führen Sie folgenden Befehl aus:

# chflags schg /kernel
Der Kernel ist in Ordnung, aber ps geht nicht mehr:

Wenn Sie eine andere Version des Kernels installiert haben als die, mit der Ihre Systemwerkzeuge gebaut wurden (beispielsweise einen 5.X Kernel auf einem 4.X System), werden Programme wie ps(1) und vmstat(8) nicht mehr funktionieren. Sie sollten nun das komplette System neu bauen und installieren. Achten Sie darauf, dass die Quellen, aus denen Sie das System bauen, zum installierten Kernel passen. Das ist ein Grund dafür, warum man nie einen Kernel, der nicht zur Systemversion passt, benutzen sollten.

Wenn Sie Fragen zu FreeBSD haben, schicken Sie eine E-Mail an <de-bsd-questions@de.FreeBSD.org>.
Wenn Sie Fragen zu dieser Dokumentation haben, schicken Sie eine E-Mail an <de-bsd-translators@de.FreeBSD.org>.

Hosting by: Hurra Communications GmbH
Generated: 2007-01-26 17:56:55