Wie verwaltet man den FreeBSD-Bootprozess?
Der Vorgang, einen Computer zu starten und das Betriebssystem zu laden, wird als "Booten" oder "Bootstrap-Prozess" bezeichnet. Der Bootprozess von FreeBSD bietet eine große Auswahl an Anpassungsoptionen dafür, was beim Start des Systems geschieht, wie zum Beispiel die Möglichkeit, zwischen mehreren auf derselben Maschine installierten Betriebssystemen, verschiedenen Versionen desselben Betriebssystems oder einem anderen Kernel zu wählen.
Dieses Kapitel beschreibt die verfügbaren Einrichtungsmöglichkeiten. Es wird erklärt, wie der FreeBSD-Bootprozess modifiziert werden kann, einschließlich allem, was vor dem Start des FreeBSD-Kernels, dem Erkennen von Geräten und dem Starten von init
geschieht. Dies geschieht, wenn die Schriftfarbe der Boot-Nachrichten von strahlendem Weiß zu Grau wechselt.
Nach dem Lesen dieses Tutorials werden Sie in der Lage sein, Folgendes zu identifizieren:
-
Die Komponenten und Interaktionen des FreeBSD-Bootstrap-Systems.
-
Optionen, die den FreeBSD-Bootstrap-Komponenten zur Beeinflussung des Bootvorgangs bereitgestellt werden.
-
Die Grundlagen der Konfiguration von Gerätevorschlägen.
-
Wie man ein FreeBSD-System im Einzel- und Mehrbenutzermodus startet und es ordnungsgemäß herunterfährt.
Was ist der Boot-Prozess von FreeBSD?
Das Problem, das sich beim Einschalten eines Computers und dem Starten des Betriebssystems stellt, ist faszinierend. Die Maschine ist nicht in der Lage, irgendwelche Aufgaben zu erledigen, bis das Betriebssystem aktiviert ist. Dies beinhaltet die Ausführung von Anwendungen von einer Diskette. Wie wird das Betriebssystem gestartet, wenn der Computer ohne das Betriebssystem kein Programm von der Festplatte ausführen kann und die Betriebssystemprogramme auf der Festplatte sind?
In den frühen Tagen der Computer wurde der Prozess zum Laden des Betriebssystems als bootstrap
bezeichnet. Seitdem wird es auf "Booten" abgekürzt.
Das Basic Input/Output System (BIOS) ist dafür verantwortlich, das Betriebssystem auf x86-Hardware zu laden. Das BIOS durchsucht die Festplatte nach dem Master Boot Record (MBR), der sich an einem bestimmten Ort befinden muss. Das BIOS hat ausreichende Informationen, um den MBR zu laden und auszuführen, und denkt, dass der MBR die verbleibenden Aktivitäten zum Laden des Betriebssystems mit Unterstützung des BIOS abschließt.
FreeBSD unterstützt sowohl den älteren MBR-Standard als auch die modernere GUID-Partitionstabelle (GPT) zum Booten. Die GPT-Partitionierung wird häufig auf Maschinen verwendet, die die Unified Extensible Firmware Interface (UEFI) nutzen. FreeBSD kann dennoch von GPT-Partitionen auf Geräten mit nur einem Legacy-BIOS booten, wenn gptboot
installiert ist. Es wird daran gearbeitet, das direkte UEFI-Booten zu ermöglichen.
Wenn der Code im MBR mit dem Benutzer interagiert, wird er oft als Boot-Manager bezeichnet. Typischerweise enthält der Boot-Manager zusätzlichen Code auf der ersten Spur der Festplatte oder im Dateisystem. Der grundlegende FreeBSD-Boot-Manager boot0
, oft als Boot Easy bekannt, und GNU GRUB, der von mehreren Linux-Varianten verwendet wird, sind Beispiele für Boot-Manager.
Wenn nur ein Betriebssystem geladen wird, sucht der MBR nach der ersten bootfähigen (aktiven) Partition der Festplatte und führt dann den Code auf dieser Partition aus, um den Rest des Betriebssystems zu laden. Wenn mehrere Betriebssysteme verfügbar sind, kann ein separater Boot-Manager installiert werden, um eine Auswahl von Betriebssystemen bereitzustellen, aus denen der Benutzer wählen kann.
Das verbleibende FreeBSD-Bootstrap-System besteht aus drei Schritten. Die erste Stufe hat gerade genug Wissen, um den Computer in einen bestimmten Zustand zu versetzen und den zweiten Schritt auszuführen. Bevor die dritte Phase gestartet wird, kann die zweite Phase noch ein wenig mehr erreichen. Die dritte Phase schließt das Laden des Betriebssystems ab. Die Aufgabe wird in drei Teile unterteilt, da der MBR Größenbeschränkungen für Programme auferlegt, die in den ersten beiden Phasen ausgeführt werden dürfen. Durch die Verbindung der Aufgaben kann FreeBSD einen Loader mit mehr Flexibilität anbieten.
Der Kernel wird anschließend gestartet und sucht nach Geräten und initialisiert diese. Der Kernel übergibt dann die Kontrolle an den Benutzerprozess init
, der überprüft, ob die Festplatten in einem benutzbaren Zustand sind, beginnt mit der Konfiguration der Benutzerressourcen, die Dateisysteme einbindet, konfiguriert Netzwerkkarten für die Kommunikation über das Netzwerk und startet die Prozesse, die für den Start konfiguriert wurden.
Dieser Abschnitt erläutert diese Schritte und erklärt, wie man mit dem FreeBSD-Bootverfahren interagiert.
Was ist der Boot-Manager?
Der FreeBSD 'boot0' Boot-Manager ermöglicht es dem Benutzer, die Festplatte und Partition anzugeben, von der ein i386-Computer (PC) gebootet wird.
Ein Boot-Manager befindet sich normalerweise im Sektor 0 einer Festplatte, auch bekannt als Master Boot Record (MBR), auf Personal Computern. Der MBR enthält sowohl Code (auf den das PC-BIOS die Kontrolle überträgt) als auch Daten (eine integrierte Tabelle der angegebenen Partitionen).
Der im MBR enthaltene Boot-Manager-Code wird auch als Stufe Null des Bootvorgangs bezeichnet. FreeBSD verwendet standardmäßig den boot0
Boot-Manager.
Basierend auf /boot/boot0
wird der MBR vom FreeBSD-Installer installiert. Aufgrund der Slice-Tabelle und der 0x55AA
-Kennung am Ende des MBR ist boot0
auf eine Größe und Funktionalität von 446 Bytes beschränkt. Wenn boot0
und mehrere Betriebssysteme installiert sind, erscheint eine Boot-Nachricht, die der folgenden ähnlich ist:
F1 Windows
F2 FreeBSD
Default: F2
Wenn andere Betriebssysteme nach FreeBSD installiert werden, ersetzen sie den MBR. Sie können den folgenden Befehl ausführen, falls dies eintritt, oder um den aktuellen MBR durch den FreeBSD MBR zu ersetzen:
fdisk -B -b /boot/boot0 device
Hier ist das Gerät die Boot-Disk, wie ad0
für die erste IDE-Disk, ad2
für die erste IDE-Disk auf einem zweiten IDE-Controller oder da0
für die erste SCSI-Disk.
Die boot0cfg-Software installiert optional den 'boot0'-Bootmanager auf der gewählten Festplatte und ermöglicht die Konfiguration verschiedener Betriebseinstellungen.
Um ein benutzerdefiniertes MBR-Setup zu erstellen, können Sie das Installations-/Konfigurationstool des Bootmanagers, boot0cfg
, verwenden. Die Syntax der Verwendung des boot0cfg
-Dienstprogramms ist unten angegeben:
boot0cfg [-Bv] [-b boot0] [-d drive] [-e bell character] [-f file]
[-i volume-id] [-m mask] [-o options] [-s slice] [-t ticks] disk
Was sind die 1. und 2. Stufe des Bootvorgangs?
Die erste und zweite Phase sind konzeptionell Teil desselben Programms im selben Sektor der Festplatte. Sie wurden aus Platzgründen in zwei Teile geteilt, werden jedoch immer zusammengefügt. Der FreeBSD-Installer oder bsdlabel kopiert sie aus dem zusammengeführten Verzeichnis /boot/boot
.
Diese beiden Phasen befinden sich außerhalb der Dateisysteme, beginnend mit dem ersten Sektor auf der ersten Spur des Boot-Slices. Hier erwartet boot0
oder ein anderer Boot-Manager, eine ausführbare Anwendung zu finden, die den Bootvorgang fortsetzt.
Der erste Schritt, boot1
, ist ziemlich einfach, da seine Größe auf 512 Bytes begrenzt ist. Es versteht gerade genug über das FreeBSD bsdlabel
, das slice-spezifische Informationen verwaltet, um boot2
zu lokalisieren und auszuführen.
Die zweite Stufe, boot2
, ist deutlich fortschrittlicher und hat ausreichendes Wissen über das FreeBSD-Dateisystem, um Dateien zu finden. Es kann eine einfache Schnittstelle zum Auswählen des auszuführenden Kernels oder Loaders bereitstellen. Es führt den Loader aus, der viel komplexer ist, und gibt eine Boot-Konfigurationsdatei aus. Wenn die zweite Phase des Bootvorgangs gestoppt wird, wird die folgende interaktive Schnittstelle angezeigt:
>> FreeBSD/i386 BOOT
Default: 0:ad(0,a)/boot/loader
boot:
Um die installierten boot1 und boot2 zu ersetzen, können Sie das bsdlabel
-Dienstprogramm verwenden und den folgenden Befehl ausführen, wobei diskslice
die Festplatte und den Slice angibt, von dem gebootet werden soll, wie ad0s1
für den ersten Slice auf der ersten IDE-Festplatte:
bsdlabel -B diskslice
Wenn nur der Name der Festplatte, wie ad0
, angegeben wird, erstellt bsdlabel
die Festplatte im "dangerously devoted mode", ohne Partitionen. Überprüfen Sie die Festplattenscheibe noch einmal, bevor Sie die Eingabetaste drücken, da dies wahrscheinlich nicht die beabsichtigte Operation ist.
Was ist die 3. Phase des Bootvorgangs?
Der Loader ist die dritte und letzte Phase des Kernel-Bootstrap-Verfahrens von FreeBSD. Es wird oft im Dateisystem als /boot/loader
gefunden.
Der Loader soll ein interaktiver Ansatz zur Konfiguration sein, mit einem integrierten Befehlsatz, der von einem leistungsfähigeren Interpreter mit komplizierteren Befehlen unterstützt wird. Es enthält eine Skriptsprache zur Automatisierung von Prozessen, zur Durchführung von Vorkonfigurationen und zur Unterstützung bei Wiederherstellungsverfahren. Diese Skriptsprache besteht hauptsächlich aus zwei Komponenten. Die kleinere Komponente ist eine Sammlung von Befehlen, die für die direkte Verwendung durch den Gelegenheitsbenutzer gedacht sind, früher bekannt als "eingebaute Befehle". Die Hauptmotivation hinter diesen Anweisungen ist die Benutzerfreundlichkeit. Die größere Komponente ist John Sadlers ANS Forth-kompatibler Forth-Interpreter, der auf FICL basiert.
Beim Start untersucht der Lader die Konsole und die Festplatten, um zu bestimmen, von welcher Festplatte er booten soll. Es initialisiert die Variablen entsprechend und startet einen Interpreter, in dem Benutzeranweisungen interaktiv oder aus einem Skript eingegeben werden.
Der Lader wird dann /boot/loader.rc
lesen, das standardmäßig /boot/defaults/loader.conf
liest, welches geeignete Standardwerte für Variablen festlegt, und /boot/loader.conf
für lokale Änderungen an diesen Variablen liest. loader.rc
lädt dann die angegebenen Module und den Kernel basierend auf diesen Werten.
Schließlich wartet der Loader standardmäßig 10 Sekunden auf Tasteneingaben, bevor der Kernel gebootet wird, wenn keine Unterbrechungen auftreten. Wenn unterbrochen, erhält der Benutzer eine Eingabeaufforderung, die den Befehlssatz versteht, an der Stelle kann der Benutzer Variablen bearbeiten, alle Module entladen, Module laden, neu starten oder booten.
Loader-Befehle sind eine Sammlung der beliebtesten Loader-Befehle. Beziehen Sie sich auf den Loader für einen umfassenden Überblick über alle möglichen Befehle.
-
autoboot seconds: Versucht, den Kernel zu starten, wenn er nicht innerhalb der angegebenen Zeitspanne in Sekunden unterbrochen wird. Der Standardzeitraum für den angezeigten Countdown beträgt 10 Sekunden.
-
boot [-optionen] [kernelname]: Startet sofort den Kernel mit allen angegebenen Einstellungen oder dem angegebenen Kernel-Namen. Nachdem ein Entladebefehl gesendet wurde, kann ein Kernelname in der Befehlszeile angegeben werden. Andernfalls wird der zuvor geladene Kernel verwendet. Wenn kernelname nicht qualifiziert ist, werden
/boot/kernel
und/boot/modules
durchsucht. -
boot-conf: Konfiguriert automatisch Module abhängig von den bereitgestellten Variablen, oft dem Kernel. Dies macht nur Sinn, wenn das Entladen vor der Änderung von Variablen ausgeführt wird.
-
hilfe [Thema]: Zeigt Hilfemeldungen an lesen Sie den Inhalt von
/boot/loader.help
. Wenn das angegebene Themaindex
ist, wird die Liste der verfügbaren Themen angezeigt. -
Dateiname einfügen: Liest und analysiert die bereitgestellte Datei zeilenweise. Ein Fehler beendet die Einbindung sofort.
-
load [-t type] dateiname: Lädt den Kernel, das Kernel-Modul oder die Datei des angegebenen Typs mit dem angegebenen Dateinamen. Alle nachfolgenden Parameter werden an die Datei gesendet. Wenn
filename
nicht qualifiziert ist, werden/boot/kernel
und/boot/modules
durchsucht. -
ls [-l] [Pfad]: Zeigt eine Liste der Dateien im angegebenen Pfad an, oder das Wurzelverzeichnis, wenn kein Pfad angegeben ist. Wenn die
-l
-Option angegeben ist, werden auch die Dateigrößen angezeigt. -
lsdev [-v]: Listet alle Geräte auf, von denen es möglich ist, Module zu laden. Wenn -v angegeben ist, werden weitere Informationen ausgegeben.
-
lsmod [-v]: Zeigt Informationen über geladene Module an. Wenn -v angegeben ist, werden mehr Informationen angezeigt.
-
more dateiname: Zeigt die angegebenen Dateien mit einer Verzögerung zwischen jeder
ZEILE
an. -
neustarten: startet das System sofort neu.
-
set variable, set variable=value: Setzt die angegebenen Umgebungsvariablen.
-
unload: Entfernt alle geladenen Module.
Um den Standardkernel im Einzelbenutzermodus zu starten, können Sie den folgenden Befehl ausführen:
boot -s
Um den regulären Kernel und die Module zu entladen und dann den vorherigen oder einen anderen Kernel zu laden, führen Sie den folgenden Befehl aus:
unload
load /path/to/kernelfile
Verwenden Sie /boot/GENERIC/kernel
, um auf den Kernel zu verweisen, der mit einer Installation geliefert wird, und /boot/kernel.old/kernel
, um auf den Kernel zu verweisen, der vor einem Systemupdate oder vor der Festlegung eines benutzerdefinierten Kernels installiert wurde.
Verwenden Sie die folgenden Befehle, um Standardmodule mit einem anderen Kernel zu laden. Beachten Sie, dass in diesem Fall der qualifizierte Name optional ist:
unload
set kernel="mykernel"
boot-conf
Sie können den folgenden Befehl ausführen, um ein automatisiertes Kernel-Konfigurationsskript zu laden:
load -t userconfig_script /boot/kernel.conf
Was ist die letzte Phase des Bootvorgangs?
Sobald der Kernel entweder von loader
oder boot2
, das den Loader umgeht, geladen wird, überprüft er alle Boot-Flags und ändert sein Verhalten nach Bedarf. Sie finden unten eine Liste der häufigsten Boot-Flags.
Option | Beschreibung |
---|---|
-a | Fordern Sie den Kernel auf, das Gerät beim Start als Root-Dateisystem zu mounten. |
-C | Booten Sie das Root-Dateisystem von einer CDROM. |
-s | Im Einzelbenutzermodus starten. |
-v | Sei während des Kernel-Starts ausführlicher. |
Tabelle 1. FreeBSD Kernel-Boot-Optionen
Sobald der Kernel den Bootvorgang abgeschlossen hat, übergibt er die Kontrolle an den Benutzerprozess init
, der sich in /sbin/init
oder im im Loader angegebenen Programmpfad befindet. Dies ist der letzte Schritt beim Starten.
Der Bootvorgang stellt sicher, dass die Dateisysteme des Systems alle gleich sind. Wenn ein UFS-Dateisystem inkonsistent ist und fsck
es nicht reparieren kann, versetzt init
das System in den Einbenutzermodus, damit der Systemadministrator es direkt reparieren kann. Das System startet im Mehrbenutzermodus, wenn das nicht passiert.
Was ist der Einzelbenutzermodus?
Dieser Modus kann durch Booten mit der -s
-Option oder durch Ändern der Boot-Variable single
im loader
eingestellt werden. Sie können auch aus dem Mehrbenutzermodus dorthin gelangen, indem Sie shutdown now eingeben. Diese Nachricht erscheint zu Beginn des Einbenutzermodus:
Enter full pathname of shell or RETURN for /bin/sh:
Für /bin/sh
können Sie den vollständigen Pfadnamen der Shell eingeben oder RETURN drücken. Die Standard-Bourne-Shell wird gestartet, wenn Sie die Eingabetaste drücken. Geben Sie den vollständigen Pfad zu einer anderen Shell ein, um sie zu ändern.
Meistens wird der Einbenutzermodus verwendet, um ein System zu reparieren, das aufgrund eines beschädigten Dateisystems oder eines Fehlers in einer Bootkonfigurationsdatei nicht bootet. Es wird verwendet, um das Root-Passwort zu ändern, falls man es nicht mehr weiß. Der Single-User-Modus bietet vollen lokalen Zugriff auf das System und seine Konfigurationsdateien, sodass diese Dinge möglich sind. In diesem Modus kannst du dich nicht mit anderen Personen verbinden.
Der Einzelbenutzermodus ist hilfreich, um einen Computer zu reparieren, aber er ist nicht sicher, es sei denn, der Computer befindet sich an einem sicheren Ort. Nach dem Booten im Einzelbenutzermodus hat standardmäßig jeder Benutzer, der physischen Zugang zu einem System hat, die volle Kontrolle über dieses System.
Wenn die Konsoleneinstellung in /etc/ttys
auf "insecure" geändert wird, fragt das System nach dem Root-Passwort, bevor es in den Einbenutzermodus wechselt. Dies macht das System etwas sicherer, aber es macht es unmöglich, das Root-Passwort zurückzusetzen, falls es vergessen wird.
Sie können eine unsichere Konsole konfigurieren, indem Sie die Datei /etc/ttys
wie unten angegeben bearbeiten:
# name getty type status comments
#
# If console is marked "insecure", then init will ask for the root password
# when going to single-user mode.
console none unknown off insecure
Eine unsichere Konsole bedeutet, dass die physische Sicherheit der Konsole nicht gut ist, sodass der Einzelbenutzermodus nur von jemandem verwendet werden kann, der das Root-Passwort kennt.
Was ist der Mehrbenutzermodus?
Wenn init
feststellt, dass die Dateisysteme funktionieren, oder wenn der Benutzer seine Befehle im Einbenutzermodus abgeschlossen hat und exit
eingegeben hat, um den Einbenutzermodus zu verlassen, wechselt das System in den Mehrbenutzermodus und beginnt mit der Einrichtung der Systemressourcen.
Das Ressourcen-Konfigurationssystem liest Konfigurationsstandards aus /etc/defaults/rc.conf
und system-spezifische Informationen aus /etc/rc.conf
. Dann mountet es die Dateisysteme, die in /etc/fstab
aufgeführt sind. Es startet Netzwerkdienste, verschiedene System-Daemons und dann die Startskripte der lokal installierten Pakete.
Was sind Device Hints?
Wenn das System kurz davor ist, zu starten, liest der Bootloader die Datei device.hints und sendet deren Inhalt an den Kernel. Es hat verschiedene Variablen, die steuern, wie der Kernel bootet. Meistens sind diese Variablen "Geräteeinstellungen", aber sie können auch jeden einstellbaren Kernel-Wert sein.
Jede Zeile in der Datei hat eine Variable. Zeilen, die mit einem #
beginnen, werden Kommentare genannt, und der Bootloader ignoriert sie.
Am Stage 3-Bootloader-Prompt können auch Gerätehinweise gegeben werden. Nachdem der Bootloader die Datei gelesen hat, können Sie die Variablen mit dem Befehl show
anzeigen und die Befehle set
und unset
verwenden, um eine neue Variable hinzuzufügen, eine vorhandene zu ändern oder eine Variable zu löschen. Sie können auch Variablen ändern, die in /boot/device.hints
gesetzt sind. Geräthinweise, die Sie im Bootloader eingeben, sind nicht dauerhaft, daher werden sie beim nächsten Neustart nicht verwendet.
Nachdem das System läuft, können Sie den Befehl kenv
verwenden, um diese Variablen auszugeben.
Gerätetreiber richten das Gerät mit Hilfe von Gerätehinweisvariablen ein.
Die meisten ISA-Gerätetreiber verwenden sie, um anzugeben, wo sie nach den richtigen Geräten suchen und welche Ressourcen sie zu nutzen versuchen.
Eine Gerätehinweiszeile sieht wie folgt aus:
hint.driver.unit.keyword="value"
wo
-
driver
ist der Name des Fahrers -
unit
ist die Nummer der Einheit -
keyword
ist das Schlüsselwort des Hinweises.
Sie können die folgenden Optionen für den keyword
-Parameter verwenden:
-
at
benennt den Bus, mit dem das Gerät verbunden ist. -
port
gibt dem Gerät die Startadresse der I/O-Ports, die es verwenden wird. -
portsize
zeigt Ihnen, wie viele Ports ein Gerät hat. -
irq
ist die Nummer der zu verwendenden Interrupt-Leitung. -
drq
ist die Nummer des DMA-Kanals. -
maddr
sagt dem Gerät, welche physische Speicheradresse verwendet werden soll. -
msize
sagt dem Gerät, wie viel physischer Speicher es hat. -
flags
sagt dem Gerät, wie es mit verschiedenen Flaggenbits umgehen soll. -
Das Feld
disabled
kann auf "1" gesetzt werden, um das Gerät zu deaktivieren.
Die Syntax für den Stage 3 Bootloader ist unten angegeben:
set hint.driver.unit.keyword=value
Der folgende Code zeigt, wie man den ISA-Bus für den uart
-Treiber einrichtet:
hint.uart.0.at="isa"
hint.uart.0.port="0x3F8"
hint.uart.0.flags="0x10"
hint.uart.0.irq="4"
Das folgende Beispiel deaktiviert den ACPI-Treiber:
hint.acpi.0.disabled="1"
Um eine einstellbare Variable festzulegen, können Sie die folgende Option verwenden:
vm.pmap.pg_ps_enabled=1
Was ist die Shutdown-Sequenz?
Wenn Sie shutdown
verwenden, um ein kontrolliertes Herunterfahren durchzuführen, versucht init
, das Skript /etc/rc.shutdown
auszuführen. Es sendet dann das TERM-Signal an alle Prozesse und das KILL-Signal an diejenigen, die nicht rechtzeitig enden.
Auf Architekturen und Systemen, die Energiemanagement unterstützen, verwenden Sie den folgenden Befehl, um die Stromversorgung sofort auf einer FreeBSD-Maschine abzuschalten:
shutdown -p now
Sie können den folgenden Befehl auf einem FreeBSD-System ausführen, um es neu zu starten:
shutdown -r now
Um den Shutdown-Befehl auszuführen, müssen Sie root oder Mitglied der Operator-Gruppe sein.
Sie können auch den folgenden Befehl verwenden, um Ihr FreeBSD-System herunterzufahren:
halt
Sie können auch den folgenden Befehl verwenden, um Ihr FreeBSD-System neu zu starten:
reboot
Was ist ein Splash Screen?
Im Vergleich zu den ursprünglichen Boot-Nachrichten lässt der Splash-Bildschirm den Boot-Bildschirm besser aussehen. Dieser Bildschirm wird angezeigt, bis eine Anmeldeaufforderung auf der Konsole oder vom X-Display-Manager erscheint.
FreeBSD hat zwei grundlegende Umgebungen, die verwendet werden können. Das erste ist die Standard-Befehlszeilenumgebung für die alte virtuelle Konsole. Wenn das System den Startvorgang abgeschlossen hat, wird eine Konsolen-Anmeldeaufforderung angezeigt. Die zweite Umgebung ist eine grafische namens X11 Desktop. Nach der Installation von X11 und einer der grafischen Desktop-Umgebungen wie GNOME, KDE oder XFce kann der Befehl startx verwendet werden, um den X11-Desktop zu starten.
Einige Benutzer bevorzugen den grafischen X11-Login-Bildschirm gegenüber der textbasierten Login-Eingabeaufforderung. Display-Manager wie XDM für Xorg, gdm für GNOME und kdm für KDE sowie alle anderen aus der Ports Collection ersetzen im Grunde genommen die Konsolen-Login-Eingabeaufforderung durch einen grafischen Login-Bildschirm. Nachdem der Benutzer sich erfolgreich angemeldet hat, zeigen sie ihm oder ihr einen grafischen Desktop.
Bevor die Eingabeaufforderung angezeigt wurde, verbarg der Splash-Screen in der Befehlszeilenumgebung alle Boot-Probe-Nachrichten und Task-Startnachrichten. In einer X11-Umgebung würden die Benutzer einen klareren Systemstart sehen, der eher dem entspricht, was sie auf einem Microsoft Windows oder einem anderen Nicht-Unix-System sehen würden.
Wie funktioniert der Splash Screen?
Nur 256-Farben-Bitmap-Dateien (.bmp) oder ZSoft PCX-Dateien (.pcx) können für die Splashscreen-Funktion verwendet werden. Damit Standard-VGA-Adapter funktionieren, müssen die Splash-Bilddateien eine Auflösung von 320 mal 200 Pixel oder weniger haben. Aktivieren Sie die VESA-Unterstützung, die mit FreeBSD geliefert wird, um größere Bilder mit einer Auflösung von bis zu 1024 mal 768 Pixeln zu verwenden. Dies geschieht durch das Laden des VESA-Moduls beim Systemstart oder durch das Hinzufügen einer VESA-Kernel-Konfigurationsoption und den Bau eines benutzerdefinierten Kernels. Mit VESA-Unterstützung können Benutzer einen Splash-Bildschirm anzeigen, der den gesamten Bildschirm einnimmt.
Während des Bootvorgangs wird der Splashscreen angezeigt. Sie können es jederzeit ausschalten, indem Sie eine beliebige Taste auf der Tastatur drücken.
Außerhalb von X11 ist der Startbildschirm als Bildschirmschoner eingestellt. Nach einer bestimmten Zeit der Nichtbenutzung wechselt der Bildschirm zum Splash-Bildschirm und durchläuft Schritte, bei denen die Helligkeit des Bildes von sehr hell zu sehr dunkel und wieder zurück wechselt. Sie können ändern, wie der Startbildschirm (Bildschirmschoner) funktioniert, indem Sie eine saver=
-Zeile zu /etc/rc.conf
hinzufügen. Die splash
-Man-Seite enthält eine vollständige Liste aller Bildschirmschoner, die mit der saver=
-Option geliefert werden. "Warp" ist der Name des Standardbildschirmschoners. Beachten Sie, dass die saver=
-Option in der /etc/rc.conf
nur mit virtuellen Konsolen funktioniert. Es ändert nichts für X11-Display-Manager.
Selbst wenn der Splash-Bildschirm aktiviert ist, werden einige Bootloader-Nachrichten, wie das Boot-Optionsmenü und ein Countdown-Timer, beim Booten angezeigt.
Wie aktiviert man die Splash-Screen-Funktion?
Die Splashscreen-Datei (.bmp oder .pcx) muss auf der Root-Partition abgelegt werden, zum Beispiel im Verzeichnis /boot
.
Ändern Sie /boot/loader.conf
, sodass es die folgenden Zeilen enthält:
splash_bmp_load="YES"
bitmap_load="YES"
bitmap_name="/boot/splash.bmp"
Für Videoauflösungen größer als 1024 mal 768 Pixel ändern Sie /boot/loader.conf, um Folgendes einzuschließen:
vesa_load="YES"
splash_bmp_load="YES"
bitmap_load="YES"
bitmap_name="/boot/splash.bmp"
Das vorherige Beispiel basiert auf der Idee, dass der Splash-Bildschirm /boot/splash.bmp
ist. Wenn Sie eine PCX-Datei möchten, verwenden Sie die folgenden Anweisungen, plus die Zeile vesa_load="YES"
, wenn die Auflösung hoch genug ist.
splash_pcx_load="YES"
bitmap_load="YES"
bitmap_name="/boot/splash.pcx"
Der Name der Datei muss nicht "splash" sein, wie oben gezeigt. Es kann irgendetwas sein, solange der Typ BMP oder PCX ist. Es gibt einige andere Optionen in loader.conf
:
beastie_disable="YES"
Dies wird verhindern, dass das Boot-Optionsmenü angezeigt wird, aber der Countdown-Hinweis für die zeitgesteuerte Wartezeit wird weiterhin vorhanden sein. Selbst wenn das Boot-Optionsmenü nicht angezeigt wird, wird die entsprechende Boot-Option verwendet, wenn Sie eine Auswahl bei der Countdown-Aufforderung eingeben.
loader_logo="beastie"
Dies wird die Worte "FreeBSD" ändern, die standardmäßig rechts im Boot-Optionsmenü angezeigt werden, in das farbige Beastie-Logo, wie es ältere Versionen hatten.