| FreeBSD Handbuch | ||
|---|---|---|
| Zurück | Kapitel 9. Konfiguration des FreeBSD Kernels | Nach vorne |
Es gibt fünf Hauptfehlerquellen beim Erstellen eines angepassten Kernels:
Wenn config(8) misslingt, liegen Fehler in der Kernelkonfigurationsdatei vor. Zum Glück gibt config(8) die die Zeilennummer der Fehlerstelle an, so dass Sie diese schnell in vi finden können. Beispielsweise könnten Sie folgende Fehlermeldung sehen:
config: line 17: syntax error
Im Befehlsmodus von vi können Sie sofort zur fraglichen Stelle springen, in dem Sie 17G eingeben. Überprüfen Sie dort durch Vergleichen mit GENERIC, ob das Schlüsselwort richtig geschrieben ist.
Wenn make misslingt, liegen meistens ebenfalls Fehler in der Konfigurationsdatei vor, die aber so speziell sind, dass config(8) sie nicht findet. Überprüfen Sie wiederum Ihre Konfiguration und wenn Sie keinen Fehler entdecken können, schicken Sie eine Mail mit Ihrer Kernelkonfiguration an die Mailingliste 'Fragen und Antworten zu FreeBSD' <de-bsd-questions@de.FreeBSD.org>. Sie sollten dann schnell Hilfe erhalten.
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.
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 von 10 herunterzählt. Geben Sie dann unload ein und mit 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: Heben Sie sich immer einen GENERIC oder einen anderen Kernel, der garantiert bootet, für den Fall, dass Sie Probleme bei dem Bau des Kernels bekommen, 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, ersetzt wird, wenn Sie installieren. Kopieren Sie einen laufenden Kernel so schnell wie möglich an die richtige Stelle (/kernel), oder Kommandos wie ps(1) werden nicht richtig funktionieren. Um einen anderen Kernel an die richtige Stelle zu schieben, müssen Sie zuerst die Immutable Option von dem Kernel entfernen, den make installiert hat:
# chflags noschg /kernelWenn 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
Anmerkung: Ab FreeBSD 5.0 werden die Kernel nicht mehr mit der Immutable Option installiert. Probleme an dieser Stelle werden also nicht mehr von der fehlenden Schreibberechtigung verursacht.
Wenn Sie eine andere Version des Kernels installiert haben als die, mit der Ihre Systemwerkzeuge gebaut wurden (beispielsweise einen 4.X Kernel auf einem 3.X System), werden Programme wie ps(1) und vmstat(8) nicht mehr funktionieren. Sie müssen nun die libkvm und die entsprechenden Programme neu kompilieren. Das ist ein Grund dafür, warum man nie einen Kernel, der nicht zur Systemversion passt, benutzten sollte.
| Zurück | Zum Anfang | Nach vorne |
| Gerätedateien erstellen | Nach oben | Sicherheit |
Wenn Sie Fragen zu FreeBSD haben,
schicken Sie eine EMail an <de-bsd-questions@de.FreeBSD.org>.
Wenn Sie Fragen zu dieser Dokumentation haben, schicken Sie
eine Email an <de-bsd-translators@de.FreeBSD.org>.