Der Code im MBR oder im Boot-Manager wird manchmal auch als stage zero des Boot-Prozesses bezeichnet. Dieser Abschnitt beschreibt zwei der weiter oben erwähnten Boot-Manager: boot0 sowie LILO.
Der boot0 Boot-Manager: Der vom FreeBSD-Installationsprogramm oder boot0cfg(8)
in der Voreinstelung installierte Master Boot Record (MBR)
basiert auf /boot/boot0
.
Bei boot0 handelt es sich um ein
sehr einfaches Programm, da im MBR lediglich
446 Bytes verfügbar sind, weil der restliche Platz
für die Partitionstabelle sowie den
0x55AA
-Identifier
am Ende des MBRs benötigt wird. Falls Sie
boot0 verwenden und mehrere
Betriebssysteme auf Ihrer Festplatte installiert haben, werden
Sie beim Starten des Computers eine Anzeige ähnlich der
folgenden sehen:
Diverse Betriebssysteme, insbesondere Windows®, überschreiben den MBR ungefragt mit ihrem eigenen. Falls einem dies passiert sein sollte, kann man mit folgendem Kommando den momentanen MBR durch den FreeBSD-MBR ersetzen:
#
fdisk -B -b /boot/boot0 Gerät
Bei Gerät
handelt es sich
um das Gerät, von dem gebootet wird, also beispielsweise
ad0
für die erste IDE-Festplatte,
ad2
für die erste IDE-Festplatte
am zweiten IDE-Controller, da0
für die erste SCSI-Festplatte, usw. Diese Einstellungen
können aber über boot0cfg(8) angepasst
werden.
Der LILO-Boot-Manager: Damit dieser Boot-Manager auch FreeBSD booten kann, starten
Sie zuerst Linux und fügen danach folgende Zeilen in die
Konfigurationsdatei /etc/lilo.conf
ein:
Dabei müssen Sie die primäre Partition von FreeBSD
sowie dessen Platte im Linux-Format angeben. Dazu ersetzen Sie
X
durch die Linux-Bezeichnung der
Platte und Y
durch die von Linux
verwendete Partitionsnummer. Wenn Sie ein
SCSI-Laufwerk verwenden, müssen Sie
/dev/sd
anstelle von
/dev/hd
verwenden. Die Zeile
loader=/boot/chain.b
kann weggelassen werden,
wenn beide Betriebssysteme auf der gleichen Platte installiert
sind. Geben Sie danach /sbin/lilo -v
ein, um Ihre Änderungen zu übernehmen. Achtung Sie
dabei besonders auf etwaige Fehlermeldungen.
Im Prinzip sind die erste und die zweite Phase Teile
desselben Programms, im selben Bereich auf der
Festplatte. Aufgrund von Speicherplatz-Beschränkungen
wurden sie aufgeteilt, aber man installiert sie eigentlich
generell zusammen. Beide werden entweder vom Installer oder
von bsdlabel aus der kombinierten
Datei /boot/boot
kopiert.
Beide Phasen befinden sich außerhalb des Dateisystems
im Bootsektor des Boot-Slices, wo boot0 oder ein anderer Boot-Manager
ein Programm erwarten, das den weiteren Bootvorgang
durchführen kann. Die Anzahl der dabei verwendeten
Sektoren wird durch die Größe von
/boot/boot
bestimmt.
boot1
ist ein sehr einfaches
Programm, da es nur 512 Bytes groß sein darf, und es
besitzt gerade genug Funktionalität, um FreeBSDs
bsdlabel, das Informationen über
den Slice enthält, auszulesen, und um
boot2
zu finden und
auszuführen.
boot2
ist schon ein wenig
umfangreicher und besitzt genügend Funktionalität, um
Dateien in FreeBSDs Dateisystem zu finden. Außerdem hat es
eine einfache Schnittstelle, die es ermöglicht, den zu
ladenden Kernel oder Loader auszuwählen.
Da der Loader einen
weitaus größeren Funktionsumfang hat und eine schöne
und einfach zu bedienende Boot-Konfigurations-Schnittstelle zur
Verfügung stellt, wird er gewöhnlich von
boot2
anstatt des Kernels
gestartet. Früher war es jedoch dazu da den Kernel direkt
zu starten.
Um das installierte
boot1
und boot2
zu
ersetzen, benutzt man bsdlabel(8):
#
bsdlabel -B diskslice
Wobei Slice
das Laufwerk und die Slice
darstellt, von dem gebootet wird, beispielsweise
ad0s1
für die erste Slice
auf der ersten IDE-Festplatte.
Wenn man nur den Festplatten-Namen, also
z.B. ad0
, in bsdlabel(8)
benutzt wird eine "dangerously dedicated disk" erstellt,
ohne Slices. Das ist ein Zustand, den man meistens nicht
hervorrufen möchte. Aus diesem Grund sollte man ein
bsdlabel(8)-Kommando noch einmal prüfen, bevor
man Return betätigt.
Der boot-loader ist der letzte von drei Schritten im
Bootstrap-Prozess und kann im Dateisystem normalerweise unter
/boot/loader
gefunden werden.
Der Loader soll eine benutzerfreundliche Konfigurations-Schnittstelle sein mit einem einfach zu bedienenden eingebauten Befehlssatz, ergänzt durch einen umfangreichen Interpreter mit einem komplexeren Befehlssatz.
Der Loader sucht während seiner Initialisierung nach Konsolen und Laufwerken, findet heraus, von welchem Laufwerk er gerade bootet, und setzt dementsprechend bestimmte Variablen. Dann wird ein Interpreter gestartet, der Befehle interaktiv oder von einem Skript empfangen kann.
Danach liest der Loader die Datei
/boot/loader.rc
aus, welche ihn
standardmäßig anweist
/boot/defaults/loader.conf
zu lesen, wo
sinnvolle Standardeinstellungen für diverse Variablen
festgelegt werden und wiederum
/boot/loader.conf
für lokale
Änderungen an diesen Variablen ausgelesen
wird. Anschließend arbeitet dann
loader.rc
entsprechend dieser Variablen
und lädt die ausgewählten Module und den
gewünschten Kernel.
In der Voreinstellung wartet der Loader 10 Sekunden lang auf eine Tastatureingabe und bootet den Kernel, falls keine Taste betätigt wurde. Falls doch eine Taste betätigt wurde wird dem Benutzer eine Eingabeaufforderung angezeigt. Sie nimmt einen einfach zu bedienenden Befehlssatz entgegen, der es dem Benutzer erlaubt, Änderungen an Variablen vorzunehmen, Module zu laden, alle Module zu entladen oder schließlich zu booten bzw. neu zu booten.
Hier werden nur die gebräuchlichsten Befehle bearbeitet. Für eine erschöpfende Diskussion aller verfügbaren Befehle konsultieren Sie bitte loader(8).
Sekunden
Es wird mit dem Booten des Kernels fortgefahren, falls keine Taste in der gegebenen Zeitspanne betätigt wurde. In der gegebenen Zeitspanne, Vorgabe sind 10 Sekunden, wird ein Countdown angezeigt.
-options
]
[Kernelname
]Bewirkt das sofortige Booten des Kernels mit den gegebenen Optionen, falls welche angegeben wurden, und mit den angegebenen Kernel, falls denn einer angegeben wurde. Das übergeben eines Kernelnamens ist nur nach einem unload-Befehl anwendbar, andernfalls wird der zuvor verwendete Kernel benutzt.
Bewirkt die automatische Konfiguration der Module,
abhängig von den entsprechenden Variablen. Dieser
Vorgang ist identisch zu dem Vorgang, den der Bootloader
ausführt und daher nur sinnvoll, wenn zuvor
unload
benutzt wurde und Variablen
(gewöhnlich kernel
) verändert
wurden.
Thema
]Zeigt die Hilfe an, die zuvor aus der Datei
/boot/loader.help
gelesen
wird. Falls index
als Thema angegeben
wird, wird die Liste der zur Verfügung stehenden
Hilfe-Themen angezeigt.
Dateiname
…Verarbeitet die angegebene Datei. Das Einlesen und Interpretieren geschieht Zeile für Zeile und wird im Falle eines Fehlers umgehend unterbrochen.
-t
Typ
]
Dateiname
Lädt den Kernel, das Kernel-Modul, oder die Datei des angegebenen Typs. Optionen, die auf den Dateinamen folgen, werden der Datei übergeben.
-l
]
[Pfad
]Listet die Dateien im angegebenen Pfad auf, oder das
root-Verzeichnis(/), falls kein Pfad angegeben
wurde. Die Option -l
bewirkt, dass die
Dateigrössen ebenfalls angezeigt werden.
-v
]Listet alle Geräte auf, für die Module geladen
werden können. Die Option -v
bewirkt
eine detailreichere Ausgabe.
-v
]Listet alle geladenen Module auf. Die Option
-v
bewirkt eine detailreichere
Ausgabe.
Dateiname
Zeigt den Dateinhalt der angegebenen Datei an, wobei
eine Pause alle LINES
Zeilen gemacht
wird.
Bewirkt einen umgehenden Neustart des Systems.
Variable
, set
Variable
=Wert
Setzt die Umgebungsvariablen des Loaders.
Entlädt sämtliche geladenen Module.
Hier ein paar praktische Beispiele für die Bedienung des Loaders.
Um den gewöhnlichen Kernel im Single-User Modus zu starten:
boot -s
Um alle gewöhnlichen Kernelmodule zu entladen und dann nur den alten (oder jeden beliebigen anderen) Kernel zu laden:
unload
load kernel.old
Es kann kernel.GENERIC
verwendet
werden, um den allgemeinen Kernel zu bezeichnen, der
vorinstalliert wird. kernel.old
bezeichnet den Kernel, der vor dem aktuellen installiert
war (falls man einen neuen Kernel kompiliert und
installiert hat zum Beispiel).
Der folgende Befehl lädt die gewöhnlichen Module mit einem anderen Kernel:
unload
set kernel="kernel.old
"
boot-conf
Folgendes lädt ein Kernelkonfigurations-Skript (ein automatisiertes Skript, dass dasselbe tut, was der Benutzer normalerweise von Hand an der Eingabeaufforderung durchführen würde):
load -t userconfig_script /boot/kernel.conf
Die Willkommmensbildschirme erzeugen einen visuell viel ansprechenderen Bootvorgang im Vergleich zu den herkömmlichen Bootmeldungen. Diese Bildschirme werden entweder bis zu einem Konsolen-Login-Prompt oder dem eines X-Display Managers angezeigt.
Es existieren zwei grundlegende Umgebungen in FreeBSD. Die erste
ist die altbekannte, auf virtuellen Konsolen basierte Kommandozeile.
Nachdem das System den Bootvorgang abgeschlossen hat, wird ein
Anmeldebildschirm auf der Konsole anzeigt. Die zweite Umgebung
ist die graphische X11-Desktop Umgebung. Nachdem X11 und eine der Graphischen Oberflächen, wie
GNOME, KDE, oder
XFce installiert wurden, kann der
X11-Desktop über das Kommando startx
gestartet werden.
Manche Benutzer ziehen den graphischen Anmeldebildschirm von X11 dem traditionellen, textbasierten Anmeldeprompt vor. Display-Manager wie XDM für Xorg, gdm für GNOME und kdm für KDE (und viele weitere aus der Ports-Sammlung) bieten einen graphischen statt dem konsolenbasierten Anmeldebildschirm. Nach einer erfolgreichen Anmeldung kann der Benutzer die graphische Oberfläche verwenden.
In der Kommandozeilen-Umgebung würde der Willkommensbildschirm alle Erkennungsmeldungen des Bootvorgangs und die Startmeldungen von Diensten verstecken, bevor der Anmeldebildschirm erscheint. In der X11-Umgebung erhalten die Anwender einen klareren visuellen Eindruck des Startvorgangs, ähnlich zu dem, den Microsoft® Windows® (oder ein nicht-Unix-artiger Systemtyp) zur Verfügung stellt.
Die Willkommensbildschirm-Funktionalität unterstützt
nur 256-Farben Bitmaps (.bmp
), ZSoft
PCX (.pcx
) oder
TheDraw (.bin
) Dateien.
Zusätzlich muss die Willkommensbildschirm-Datei eine
Auflösung von 320 mal 200 Pixeln oder weniger besitzen, damit
Standard-VGA Geräte damit arbeiten können.
Um grössere Bilder bis zu einer maximalen Auflösung
von 1024 mal 768 Pixeln zu verwenden, muss Unterstützung
für VESA in FreeBSD enthalten sein. Dies kann
durch das Laden des VESA-Moduls während
des Systemstarts geschehen, oder durch Hinzufügen der
VESA
-Kernelkonfigurationsoption und
anschliessendem Bau des Kernels (Lesen Sie dazu Kapitel 9, Konfiguration des FreeBSD-Kernels). Die
VESA-Unterstützung ermöglicht es den
Benutzern, Willkommensbildschirme als Vollbild anzuzeigen, die den
gesamten Bildschirm ausfüllen.
Wenn der Willkommensbildschirm beim Bootvorgang angezeigt wird, kann dieser jederzeit mit einem beliebigen Tastendruck ausgeschaltet werden.
Der Willkommensbildschirm ist standardmässig so
eingestellt, dass er als Bildschirmschoner ausserhalb von X11
verwendet wird. Nach einer bestimmten Zeit der Untätigkeit
wird der Willkommensbildschirm angezeigt und wechselt durch
verschiedene Stufen der Intensität von hell zu einem
sehr dunklen Bild und wieder zurück. Dieses Verhalten des
Standard-Willkommensbildschirms (Screen-Saver) kann durch
hinzufügen einer saver=
-Zeile in
/etc/rc.conf
geändert werden. Die Option
saver=
besitzt mehrere eingebaute Screen-Saver,
aus denen man wählen kann, und deren komplette Liste in der
splash(4)-Manualpage enthalten ist. Der Standard-Screen-Saver
ist „warp“. Beachten Sie, dass sich die
saver=
-Option in
/etc/rc.conf
nur auf virtuelle Konsolen
bezieht. Sie hat keinen Effekt auf X11-Display-Manager.
Ein paar Nachrichten des Bootloaders und ganz besonders das Menü mit den Bootoptionen und dem Warte-Countdown werden zur Bootzeit angezeigt, selbst wenn der Willkommensbildschirm aktiviert ist.
Dateien mit Beispiel-Willkommensbildschirmen können von
der Galerie auf http://artwork.freebsdgr.orgb heruntergeladen werden.
Durch die Installation des Ports sysutils/bsd-splash-changer
können
Willkommensbildschirme von einer zufällig ausgewählten
Sammlung von Bildern bei jedem Neustart angezeigt werden.
Die Willkommensbildschirm-Datei (.bmp
,
.pcx
oder .bin
) muss
im Wurzelverzeichnis, z.B. /boot
abgelegt werden.
Für die Standard-Auflösung (256-Farben, 320 mal
200 Pixel oder weniger) beim Booten bearbeiten Sie die Datei
/boot/loader.conf
, so dass diese die
folgenden Zeilen enthält:
/boot/splash.bmp
"Für grössere Video-Auflösungen bis zum Maximum
von 1024 mal 768 Pixeln ändern Sie die Datei
/boot/loader.conf
, damit diese die folgenden
Zeilen enthält:
/boot/splash.bmp
"Das Beispiel oben nimmt an, dass
als Willkommensbildschirm verwendet wird. Wenn eine
PCX-Datei verwendet werden soll, benutzen Sie
die folgenden Zeilen, inklusive der
/boot/splash.bmp
vesa_load="YES"
-Zeile, abhängig von der
Auflösung.
/boot/splash.pcx
"In der Version 8.3 kann als weitere Option ascii-Kunst im TheDraw Format verwendet werden.
/boot/splash.bin
"Wie das Beispiel oben demonstriert, ist der Dateiname nicht auf
„splash“ beschränkt. Es ist beliebig, so lange
es den Dateityp BMP oder PCX
besitzt, z.B.
oder
splash_640x400
.bmp
.blue_wave
.pcx
Weitere interessante Optionen für
loader.conf
sind:
beastie_disable="YES"
Diese Option verhindert die Anzeige des Menüs mit den Bootoptionen, aber der Countdown ist immer noch aktiv. Selbst wenn das Bootmenü deaktiviert ist, kann während des Countdowns eine der korrespondierenden Optionen ausgewählt werden.
loader_logo="beastie"
Dies ersetzt die Standardanzeige des Wortes „FreeBSD“. Stattdessen wird wie in der Vergangenheit auf der rechten Seite des Bootmenüs das bunte Beastie-Logo angezeigt.
Für weitere Informationen lesen Sie die Manualpages splash(4), loader.conf(5) und vga(4).
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>.