Update to r44623:

Editorial review of boot stages.
Format loader built-in commands as a table.
This commit is contained in:
Bjoern Heidotting 2016-07-28 20:56:28 +00:00
parent bca27aabd7
commit aa882aab59
Notes: svn2git 2020-12-08 03:00:23 +00:00
svn path=/head/; revision=49189

View file

@ -5,7 +5,7 @@
$FreeBSD$
$FreeBSDde: de-docproj/books/handbook/boot/chapter.xml,v 1.63 2012/04/22 20:05:15 bcr Exp $
basiert auf: r44622
basiert auf: r44623
-->
<chapter xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" version="5.0" xml:id="boot">
<info><title>&os;s Bootvorgang</title>
@ -192,17 +192,12 @@
<primary>Master Boot Record (<acronym>MBR</acronym>)</primary>
</indexterm>
<para>Der Code im <acronym>MBR</acronym> oder im Boot-Manager
<para>Der Boot-Manager Code im <acronym>MBR</acronym>
wird manchmal auch als <emphasis>stage zero</emphasis> des
Boot-Prozesses bezeichnet. Dieser Abschnitt beschreibt zwei
Boot-Manager: <application>boot0</application> und
<application>LILO</application>.</para>
Boot-Prozesses bezeichnet. In der Voreinstellung verwendet
&os; den <application>boot0</application> Boot-Manager.</para>
<formalpara>
<title>Der <application>boot0</application>
Boot-Manager:</title>
<para>Der vom &os;-Installationsprogramm oder &man.boot0cfg.8;
<para>Der vom &os;-Installationsprogramm
in der Voreinstelung installierte <acronym>MBR</acronym>
basiert auf <filename>/boot/boot0</filename>. Die Größe und
Leistungsfähigkeit von <application>boot0</application> ist
@ -213,7 +208,6 @@
<application>boot0</application> und mehrere Betriebssysteme
installiert sind, wird beim Starten des Computers eine
Anzeige ähnlich der folgenden zu sehen sein:</para>
</formalpara>
<example xml:id="boot-boot0-example">
<title><filename>boot0</filename>-Screenshot</title>
@ -224,7 +218,7 @@ F2 FreeBSD
Default: F2</screen>
</example>
<para>Diverse Betriebssysteme, insbesondere &windows;,
<para>Diverse Betriebssysteme
überschreiben den existierenden <acronym>MBR</acronym>, wenn
sie nach &os; installiert werden. Falls dies passiert, kann
mit folgendem Kommando der momentane <acronym>MBR</acronym>
@ -241,34 +235,6 @@ Default: F2</screen>
für die erste <acronym>SCSI</acronym>-Festplatte. Um eine
angepasste Konfiguration des <acronym>MBR</acronym> zu
erstellen, lesen Sie &man.boot0cfg.8;.</para>
<formalpara>
<title>Der LILO-Boot-Manager:</title>
<para>Damit dieser Boot-Manager auch &os; booten kann, starten
Sie zuerst Linux und fügen danach folgende Zeilen in die
Konfigurationsdatei <filename>/etc/lilo.conf</filename>
ein:</para>
</formalpara>
<programlisting>other=/dev/hdXY
table=/dev/hdX
loader=/boot/chain.b
label=FreeBSD</programlisting>
<para>Dabei muss die primäre Partition von &os;
sowie dessen Platte im Linux-Format angeben werden. Dazu wird
<replaceable>X</replaceable> durch die Linux-Bezeichnung der
Platte und <replaceable>Y</replaceable> durch die von Linux
verwendete Partitionsnummer ersetzt. Für ein
<acronym>SCSI</acronym>-Laufwerk wird
<replaceable>/dev/sd</replaceable> anstelle von
<replaceable>/dev/hd</replaceable> verwendet. Die Zeile
<option>loader=/boot/chain.b</option> kann weggelassen werden,
wenn beide Betriebssysteme auf der gleichen Platte installiert
sind. Geben Sie danach <command>/sbin/lilo -v</command>
ein, um die Änderungen zu übernehmen. Achten Sie
dabei besonders auf etwaige Fehlermeldungen.</para>
</sect2>
<sect2 xml:id="boot-boot1">
@ -279,36 +245,34 @@ label=FreeBSD</programlisting>
Festplatte. Aufgrund von Speicherplatz-Beschränkungen
wurden sie in zwei Teile aufgeteilt, welche jedoch immer
zusammen installiert werden. Beide werden entweder vom
Installer oder von &man.bsdlabel.8; aus
&os;-Installationsprogramm oder <command>bsdlabel</command> aus
der kombinierten <filename>/boot/boot</filename>
kopiert.</para>
<para>Beide Phasen befinden sich außerhalb des Dateisystems
im Bootsektor des Boot-Slices, wo boot0 (<xref
linkend="boot-boot0"/>) oder ein anderer Boot-Manager
im Bootsektor des Boot-Slices, wo
<application>boot0</application> 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
<filename>/boot/boot</filename> bestimmt.</para>
durchführen kann.</para>
<para><filename>boot1</filename> ist ein sehr einfaches
Programm, da es nur 512&nbsp;Bytes groß sein darf, und es
besitzt gerade genug Funktionalität, um &os;s
<para>Die erste Phase, <filename>boot1</filename>, ist ein sehr
einfaches Programm, da es nur 512&nbsp;Bytes groß sein darf.
Es besitzt gerade genug Funktionalität, um &os;s
<firstterm>bsdlabel</firstterm>, das Informationen über
den Slice enthält, auszulesen, und um
<filename>boot2</filename> zu finden und
auszuführen.</para>
<para><filename>boot2</filename> ist schon ein wenig
<para>Die zweite Phase, <filename>boot2</filename>, ist schon ein wenig
umfangreicher und besitzt genügend Funktionalität, um
Dateien in &os;s Dateisystem zu finden. Außerdem hat es
eine einfache Schnittstelle, die es ermöglicht, den zu
ladenden Kernel oder Loader auszuwählen.</para>
<para>Da der &man.loader.8; einen weitaus größeren
Funktionsumfang hat und eine einfach zu bedienende
Boot-Konfigurations-Schnittstelle zur Verfügung stellt, wird
er gewöhnlich von <filename>boot2</filename> gestartet.</para>
Dateien in &os;s Dateisystem zu finden. Es kann eine einfache
Schnittstelle bereitstellen, die es ermöglicht, den zu
ladenden Kernel oder Loader auszuwählen. Es lädt den
<application>loader</application>, der einen weitaus größeren
Funktionsumfang bietet und eine Konfigurationsdatei
zur Verfügung stellt. Wenn der Boot-Prozess während der
zweiten Phase unterbrochen wird, erscheint der folgende
Bildschrim:</para>
<example xml:id="boot-boot2-example">
<title><filename>boot2</filename>-Screenshot</title>
@ -318,26 +282,26 @@ Default: 0:ad(0,a)/boot/loader
boot:</screen>
</example>
<para>&man.bsdlabel.8; kann dazu verwendet werden, dass
installierte <filename>boot1</filename> und
<filename>boot2</filename> zu ersetzen:</para>
<para>Um das installierte <filename>boot1</filename> und
<filename>boot2</filename> zu ersetzen, benutzen Sie
<command>bsdlabel</command>, wobei
<replaceable>diskslice</replaceable> das Laufwerk und die
Slice darstellt, von dem gebootet wird, beispielsweise
<filename>ad0s1</filename> für die erste Slice auf der ersten
<acronym>IDE</acronym>-Festplatte:</para>
<screen>&prompt.root; <userinput>bsdlabel -B <replaceable>diskslice</replaceable></userinput></screen>
<para>Wobei <replaceable>diskslice</replaceable> das Laufwerk
und die Slice darstellt, von dem gebootet wird, beispielsweise
<filename>ad0s1</filename> für die erste Slice
auf der ersten <acronym>IDE</acronym>-Festplatte.</para>
<warning>
<title>Dangerously Dedicated Mode</title>
<para>Wenn man nur den Festplatten-Namen, also
z.B. <filename>ad0</filename> benutzt, wird &man.bsdlabel.8;
eine "dangerously dedicated disk" erstellen, ohne Slices.
<para>Wenn man nur den Festplatten-Namen benutzt,
beispielsweise <filename>ad0</filename>, wird
<command>bsdlabel</command> eine
<quote>dangerously dedicated disk</quote> erstellen, ohne
Slices.
Das ist ein Zustand, den man meistens nicht
hervorrufen möchte. Aus diesem Grund sollte man das
<replaceable>diskslice</replaceable> von &man.bsdlabel.8;
<replaceable>diskslice</replaceable>
noch einmal prüfen, bevor <keycap>Return</keycap> gedrückt
wird.</para>
</warning>
@ -347,26 +311,29 @@ boot:</screen>
<title>Phase Drei</title>
<indexterm><primary>boot-loader</primary></indexterm>
<para>Der boot-loader ist der letzte von drei Schritten im
Bootstrap-Prozess und kann im Dateisystem normalerweise unter
<filename>/boot/loader</filename> gefunden werden.</para>
<para>Der Loader soll eine interaktive
<para>Der <application>loader</application> ist der letzte von
drei Schritten im Bootstrap-Prozess. Er kann im Dateisystem
normalerweise als <filename>/boot/loader</filename> gefunden
werden.</para>
<para>Der <application>loader</application> soll eine interaktive
Konfigurations-Schnittstelle mit eingebauten Befehlssatz
sein, ergänzt durch einen umfangreichen Interpreter mit einem
komplexeren Befehlssatz.</para>
<para>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.</para>
<para>Der <application>loader</application> 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.</para>
<indexterm><primary>loader</primary></indexterm>
<indexterm><primary>loader Konfiguration</primary></indexterm>
<para>Danach liest der Loader die Datei
<filename>/boot/loader.rc</filename> aus, welche ihn
<para>Danach liest der <application>loader</application> die Datei
<filename>/boot/loader.rc</filename>, welche ihn
standardmäßig anweist
<filename>/boot/defaults/loader.conf</filename> zu lesen, wo
sinnvolle Standardeinstellungen für diverse Variablen
@ -378,7 +345,7 @@ boot:</screen>
und lädt die ausgewählten Module und den
gewünschten Kernel.</para>
<para>In der Voreinstellung wartet der Loader
<para>In der Voreinstellung wartet der <application>loader</application>
10&nbsp;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
@ -386,158 +353,129 @@ boot:</screen>
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.</para>
oder neu zu booten.</para>
<sect3 xml:id="boot-loader-commands">
<table xml:id="boot-loader-commands" frame="none" pgwide="1">
<title>Die eingebauten Befehle des Loaders</title>
<para>Dies sind nur die gebräuchlichsten Befehle.
Eine vollständige Beschreibung aller verfügbaren Befehle
finden Sie in &man.loader.8;.</para>
<tgroup cols="2">
<thead>
<row>
<entry>Variable</entry>
<entry>Beschreibung</entry>
</row>
</thead>
<variablelist>
<varlistentry>
<term>autoboot <replaceable>Sekunden</replaceable></term>
<tbody>
<row>
<entry>autoboot <replaceable>Sekunden</replaceable></entry>
<entry>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&nbsp;Sekunden, wird ein Countdown angezeigt.</entry>
</row>
<listitem>
<para>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&nbsp;Sekunden, wird ein Countdown angezeigt.</para>
</listitem>
</varlistentry>
<row>
<entry>boot
<optional><replaceable>-Optionen</replaceable></optional>
<optional><replaceable>Kernelname</replaceable></optional></entry>
<entry>Bewirkt das sofortige Booten des Kernels mit
allen gegebenen Optionen, oder dem angegebenen
Kernelnamen. Das übergeben eines Kernelnamens ist nur
nach einem <command>unload</command> anwendbar,
andernfalls wird der zuvor verwendete Kernel
benutzt.</entry>
</row>
<varlistentry>
<term>boot
<optional><replaceable>-options</replaceable></optional>
<optional><replaceable>Kernelname</replaceable></optional></term>
<row>
<entry>boot-conf</entry>
<entry>Bewirkt die automatische Konfiguration der
Module, abhängig von den entsprechenden Variablen
(üblicherweise <envar>kernel</envar>). Dies nur dann
sinnvoll, wenn zuvor <command>unload</command> benutzt
wurde.</entry>
</row>
<listitem>
<para>Bewirkt das sofortige Booten des Kernels mit allen
gegebenen Optionen, oder dem angegebenen Kernelnamen.
Das übergeben eines Kernelnamens ist nur nach einem
<emphasis>unload</emphasis>-Befehl anwendbar,
andernfalls wird der zuvor verwendete Kernel
benutzt.</para>
</listitem>
</varlistentry>
<row>
<entry>help
<optional><replaceable>Thema</replaceable></optional></entry>
<entry>Zeigt die Hilfe an, die zuvor aus der Datei
<filename>/boot/loader.help</filename> gelesen wird.
Falls <literal>index</literal> als Thema angegeben
wird, wird die Liste der zur Verfügung stehenden
Hilfe-Themen angezeigt.</entry>
</row>
<varlistentry>
<term>boot-conf</term>
<row>
<entry>include <replaceable>Dateiname</replaceable>
&hellip;</entry>
<entry>Das Einlesen und Interpretieren der angegebenen
Datei geschieht Zeile für Zeile und wird im Falle
eines Fehlers umgehend unterbrochen.</entry>
</row>
<listitem>
<para>Bewirkt die automatische Konfiguration der Module,
abhängig von den entsprechenden Variablen (üblicherweise
<envar>kernel</envar>). Dies nur dann sinnvoll, wenn
zuvor <command>unload</command> benutzt wurde.</para>
</listitem>
</varlistentry>
<row>
<entry>load <optional>-t
<replaceable>Typ</replaceable></optional>
<replaceable>Dateiname</replaceable></entry>
<entry>Lädt den Kernel, das Kernel-Modul, oder die Datei
des angegebenen Typs. Optionen, die auf
<replaceable>Dateinamen</replaceable> folgen, werden
der Datei übergeben.</entry>
</row>
<varlistentry>
<term>help
<optional><replaceable>Thema</replaceable></optional></term>
<row>
<entry>ls <optional>-l</optional>
<optional><replaceable>Pfad</replaceable></optional></entry>
<entry>Listet die Dateien im angegebenen Pfad auf, oder
das Root-Verzeichnis, falls kein Pfad angegeben wurde.
Die Option <option>-l</option> bewirkt, dass die
Dateigrößen ebenfalls angezeigt werden.</entry>
</row>
<listitem>
<para>Zeigt die Hilfe an, die zuvor aus der Datei
<filename>/boot/loader.help</filename> gelesen
wird. Falls <literal>index</literal> als Thema angegeben
wird, wird die Liste der zur Verfügung stehenden
Hilfe-Themen angezeigt.</para>
</listitem>
</varlistentry>
<row>
<entry>lsdev <optional>-v</optional></entry>
<entry>Listet alle Geräte auf, für die Module geladen
werden können. Die Option <option>-v</option> bewirkt
eine ausführliche Ausgabe.</entry>
</row>
<varlistentry>
<term>include <replaceable>Dateiname</replaceable>
&hellip;</term>
<row>
<entry>lsmod <optional>-v</optional></entry>
<entry>Listet alle geladenen Module auf. Die Option
<option>-v</option> bewirkt eine ausführliche
Ausgabe.</entry>
</row>
<listitem>
<para>Verarbeitet die angegebene Datei. Das Einlesen und
Interpretieren geschieht Zeile für Zeile und wird im Falle eines
Fehlers umgehend unterbrochen.</para>
</listitem>
</varlistentry>
<varlistentry>
<term>load <optional>-t
<replaceable>Typ</replaceable></optional>
<replaceable>Dateiname</replaceable></term>
<row>
<entry>more <replaceable>Dateiname</replaceable></entry>
<entry>Zeigt den Dateinhalt der angegebenen Datei an,
wobei eine Pause alle <varname>LINES</varname> Zeilen
gemacht wird.</entry>
</row>
<listitem>
<para>Lädt den Kernel, das Kernel-Modul, oder die Datei
des angegebenen Typs. Optionen, die auf
<replaceable>Dateinamen</replaceable> folgen, werden
der Datei übergeben.</para>
</listitem>
</varlistentry>
<varlistentry>
<term>ls <optional>-l</optional>
<optional><replaceable>Pfad</replaceable></optional></term>
<row>
<entry>reboot</entry>
<entry>Bewirkt einen umgehenden Neustart des
Systems.</entry>
</row>
<listitem>
<para>Listet die Dateien im angegebenen Pfad auf, oder das
root-Verzeichnis(/), falls kein Pfad angegeben
wurde. Die Option <option>-l</option> bewirkt, dass die
Dateigrößen ebenfalls angezeigt werden.</para>
</listitem>
</varlistentry>
<varlistentry>
<term>lsdev <optional>-v</optional></term>
<row>
<entry>set <replaceable>Variable</replaceable>, set
<replaceable>Variable</replaceable>=<replaceable>Wert</replaceable></entry>
<entry>Setzt die angegebenen Umgebungsvariablen.</entry>
</row>
<listitem>
<para>Listet alle Geräte auf, für die Module geladen
werden können. Die Option <option>-v</option> bewirkt
eine detailreichere Ausgabe.</para>
</listitem>
</varlistentry>
<row>
<entry>unload</entry>
<entry>Entlädt sämtliche geladenen Module.</entry>
</row>
</tbody>
</tgroup>
</table>
</sect2>
<varlistentry>
<term>lsmod <optional>-v</optional></term>
<listitem>
<para>Listet alle geladenen Module auf. Die Option
<option>-v</option> bewirkt eine detailreichere
Ausgabe.</para>
</listitem>
</varlistentry>
<varlistentry>
<term>more <replaceable>Dateiname</replaceable></term>
<listitem>
<para>Zeigt den Dateinhalt der angegebenen Datei an, wobei
eine Pause alle <varname>LINES</varname> Zeilen gemacht
wird.</para>
</listitem>
</varlistentry>
<varlistentry>
<term>reboot</term>
<listitem>
<para>Bewirkt einen umgehenden Neustart des Systems.</para>
</listitem>
</varlistentry>
<varlistentry>
<term>set <replaceable>Variable</replaceable></term>
<term>set
<replaceable>Variable</replaceable>=<replaceable>Wert</replaceable></term>
<listitem>
<para>Setzt die Umgebungsvariablen des Loaders.</para>
</listitem>
</varlistentry>
<varlistentry>
<term>unload</term>
<listitem>
<para>Entlädt sämtliche geladenen Module.</para>
</listitem>
</varlistentry>
</variablelist>
</sect3>
<sect3 xml:id="boot-loader-examples">
<sect2 xml:id="boot-loader-examples">
<title>Beispiele für die Loader Bedienung</title>
<para>Hier ein paar praktische Beispiele für die Bedienung
@ -585,7 +523,6 @@ boot:</screen>
<screen><userinput>load -t userconfig_script <replaceable>/boot/kernel.conf</replaceable></userinput></screen>
</listitem>
</itemizedlist>
</sect3>
</sect2>
<sect2 xml:id="boot-kernel">