Add the "boot" chapter, based on English rev 1.30.
Translated by: Hans-Christian Ebke <hans-christian_ebke@gmx.de>. Obtained from: FreeBSD German Documentation Project
This commit is contained in:
parent
b254804c72
commit
4f2ad6d62b
Notes:
svn2git
2020-12-08 03:00:23 +00:00
svn path=/head/; revision=11916
1 changed files with 714 additions and 0 deletions
714
de_DE.ISO8859-1/books/handbook/boot/chapter.sgml
Normal file
714
de_DE.ISO8859-1/books/handbook/boot/chapter.sgml
Normal file
|
@ -0,0 +1,714 @@
|
|||
<!--
|
||||
The FreeBSD Documentation Project
|
||||
The FreeBSD German Documentation Project
|
||||
|
||||
Original version 1.30
|
||||
$FreeBSD$
|
||||
$FreeBSDde: de-docproj/books/handbook/boot/chapter.sgml,v 1.2 2002/01/20 23:32:27 mheinen Exp $
|
||||
-->
|
||||
|
||||
<chapter id="boot">
|
||||
<title>FreeBSDs Bootvorgang</title>
|
||||
|
||||
<sect1 id="boot-synopsis">
|
||||
<title>Übersicht</title>
|
||||
<indexterm><primary>booting</primary></indexterm>
|
||||
<indexterm><primary>bootstrap</primary></indexterm>
|
||||
|
||||
<para>Das Starten des Computers und das Laden des Betriebssystems
|
||||
wird im Allgemeinen als <quote>bootstrap Vorgang</quote>
|
||||
bezeichnet, oder einfach als <quote>Booten</quote>. FreeBSDs
|
||||
Bootvorgang ermöglicht große Flexibilität, was
|
||||
das Anpassen dessen anbelangt, was passiert, wenn das System
|
||||
gestartet wird. Es kann zwischen verschiedenen Betriebssystemen,
|
||||
die auf demselben Computer installiert sind oder verschiedenen
|
||||
Versionen des selben Betriebssystems oder installierten Kernels
|
||||
gewählt werden.</para>
|
||||
|
||||
|
||||
<para>Dieses Kapitel zeigt die zur Verfügung stehenden Konfigurationsmöglichkeiten und
|
||||
wie man den Bootvorgang anpasst. Dies schließt alles ein, bis
|
||||
der Kernel gestartet worden ist, der dann alle Geräte
|
||||
gefunden hat und &man.init.8; gestartet hat. Falls Sie sich
|
||||
nicht ganz sicher sind, wann dies passiert: Es passiert, wenn
|
||||
die Farbe des Textes während des Bootvorgangs von weiß zu
|
||||
Hellgrau wechselt.</para>
|
||||
|
||||
<para>Dieses Kapitel informiert über folgende Punkte:</para>
|
||||
|
||||
<itemizedlist>
|
||||
<listitem>
|
||||
<para>Die Komponenten des FreeBSD Bootstraps und deren Interaktion.</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>Die Optionen, die die Komponenten im FreeBSD Bootstrap zum Kontrollieren des Bootvorgangs nehmen.</para>
|
||||
</listitem>
|
||||
</itemizedlist>
|
||||
|
||||
<note>
|
||||
<title>nur x86</title>
|
||||
|
||||
<para>Dieses Kapitel erklärt den Bootvorgang von FreeBSD auf
|
||||
Intel X86 Plattformen.</para>
|
||||
</note>
|
||||
</sect1>
|
||||
|
||||
<sect1 id="boot-introduction">
|
||||
<title>Das Problem des Bootens</title>
|
||||
|
||||
<para>Wenn der Computer Eingeschaltet wird und das Betriebssystem gestartet
|
||||
werden soll, entsteht ein interessantes Dilemma, denn der
|
||||
Computer weiß per Definition nicht, wie er irgendetwas tut, bis
|
||||
das Betriebssystem gestartet wurde. Das schließt das Starten von
|
||||
Programmen, die sich auf der Festplatte befinden, ein. Wenn nun
|
||||
der Computer kein Programm von der Festplatte starten kann, sich
|
||||
das Betriebssystem aber dummerweise genau dort befindet, wie
|
||||
wird es dann gestartet?</para>
|
||||
|
||||
<para>Dieses Problem ähnelt einer Geschichte des Barons von
|
||||
Münchhausen. Dort war eine Person in einen Sumpf gefallen
|
||||
und hat sich selbst an den Riemen seiner Stiefel (engl.:
|
||||
bootstrap) herausgezogen. In den jungen Jahren des
|
||||
Computerzeitalters wurde mit dem Begriff bootstrap dann die
|
||||
Technik das Betriebssystem zu laden bezeichnet und wurde
|
||||
hinterher mit booten abgekürzt.</para>
|
||||
|
||||
<para>Auf x86 Plattformen ist das BIOS (Basic Input/Output System)
|
||||
dafür verantwortlich das Betriebssystem zu laden. Dazu
|
||||
liest das BIOS den Master Bootsektor (MBR; Master Boot Record)
|
||||
aus, der sich an einer bestimmten Stelle auf der
|
||||
Festplatte/Diskette befinden muss. Das BIOS kann den MBR
|
||||
selbstständig laden und ausführen und geht davon aus,
|
||||
dass der die restlichen Dinge, die für das Laden des
|
||||
Betriebssystems notwendig sind, selber erledigen kann. </para>
|
||||
|
||||
<indexterm>
|
||||
<primary>BIOS</primary>
|
||||
<secondary>Basic Input/Output System</secondary>
|
||||
</indexterm>
|
||||
|
||||
<para>Falls nur ein Betriebssystem installiert ist, ist der
|
||||
standard MBR ausreichend. Dieser MBR sucht nach dem ersten
|
||||
bootbaren slice auf dem Laufwerk und fürt ihn aus, um das
|
||||
restliche Betriebssystem zu laden.</para>
|
||||
|
||||
<para>Falls mehrere Betriebssysteme installiert sind, sollte
|
||||
man einen anderen MBR installieren, der eine Liste der
|
||||
verfügbaren Betriebssysteme anzeigt und einen wählen
|
||||
lässt, welches man booten möchte. FreeBSD liegt ein
|
||||
solcher MBR bei und andere Hersteller bieten Alternativen
|
||||
an.</para>
|
||||
|
||||
<para>Das Restliche FreeBSD bootstrap System ist in drei Phasen
|
||||
unterteilt. Die erste Phase wird vom MBR durchgeführt, der
|
||||
gerade genug Funktionalität besitzt um den Computer in
|
||||
einen bestimmten Status zu verhelfen und die zweite Phase zu
|
||||
starten. Die zweite Phase führt ein wenig mehr Operationen
|
||||
durch und startet schließlich die dritte Phase, die das Laden
|
||||
des Betriebssystems abschließt. Der ganze Prozess wird in drei
|
||||
Phasen durchgeführt, weil der PC Standard die Größe
|
||||
der Programme, die in Phase eins und zwei ausgeführt
|
||||
werden, limitiert. Durch das Verketten der durchzuführenden
|
||||
Aufgaben wird es FreeBSD möglich ein sehr flexibles
|
||||
Ladeprogramm zu besitzen.</para>
|
||||
|
||||
<indexterm><primary>kernel</primary></indexterm>
|
||||
<indexterm><primary><command>init</command></primary></indexterm>
|
||||
|
||||
<para>Als nächstes wird der Kernel gestartet, der zunächst nach
|
||||
Geräten sucht und sie für den Gebrauch
|
||||
initialisiert. Nach dem Booten des Kernels übergibt dieser
|
||||
die Kontrolle an den Benutzer Prozess &man.init.8;, der erst
|
||||
sicherstellt, dass alle Laufwerke benutzbar sind und die
|
||||
Ressourcen Konfiguration auf Benutzer Ebene startet. Diese
|
||||
wiederum mountet Dateisysteme, macht die Netzwerkkarten für
|
||||
die Kommunikation mit dem Netzwerk bereit und startet generell
|
||||
alle Prozesse, die auf einem FreeBSD System normalerweise beim
|
||||
Hochfahren gestartet werden.</para>
|
||||
</sect1>
|
||||
|
||||
<sect1 id="boot-blocks">
|
||||
<title>Der MBR, und die Boot-Phasen Eins, Zwei und Drei</title>
|
||||
|
||||
<sect2 id="boot-boot0">
|
||||
<title>Der MBR, <filename>/boot/boot0</filename></title>
|
||||
<indexterm><primary>Master Boot Record (MBR)</primary></indexterm>
|
||||
|
||||
<para>Der MBR von FreeBSD befindet sich im Verzeichnis
|
||||
<filename>/boot/boot0</filename>. Allerdings ist dies nur eine
|
||||
<emphasis>Kopie</emphasis> des MBR, da der eigentliche MBR auf
|
||||
einem Teil des Laufwerks gespeichert sein muss, der außerhalb
|
||||
von FreeBSDs benutzbaren Bereich ist.</para>
|
||||
|
||||
<para><filename>boot0</filename> ist ein ziemlich simples
|
||||
Programm, und zwar aus dem einfachen Grund, dass der MBR nur
|
||||
512 bytes groß sein darf. Falls Sie den FreeBSD MBR
|
||||
installiert haben und sich mehrere Betriebssysteme auf Ihrer
|
||||
Festplatte befinden, werden Sie beim Starten des Computers
|
||||
eine Anzeige sehen, ähnlich der Folgenden:</para>
|
||||
|
||||
|
||||
<example id="boot-boot0-example">
|
||||
<title><filename>boot0</filename> Screenshot</title>
|
||||
|
||||
<screen>F1 DOS
|
||||
F2 FreeBSD
|
||||
F3 Linux
|
||||
F4 ??
|
||||
F5 Drive 1
|
||||
|
||||
Default: F2</screen>
|
||||
</example>
|
||||
|
||||
<para>Diverse Betriebssysteme, insbesondere Windows 95 und
|
||||
Nachfolger, ü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:</para>
|
||||
|
||||
<screen>&prompt.root; <userinput>fdisk -B -b /boot/boot0 <replaceable>Gerät</replaceable></userinput></screen>
|
||||
|
||||
<para>Wobei <replaceable>Gerät</replaceable> das Gerät ist, von
|
||||
dem gebootet wird, also z.B. <devicename>ad0</devicename>
|
||||
für die erste IDE Festplatte,
|
||||
<devicename>ad2</devicename> für die erste IDE Festplatte
|
||||
am zweiten IDE Controller, <devicename>da0</devicename>
|
||||
für die erste SCSI Festplatte, usw.</para>
|
||||
</sect2>
|
||||
|
||||
<sect2 id="boot-boot1">
|
||||
<title>Phase Eins, <filename>/boot/boot1</filename> und Phase Zwei,
|
||||
<filename>/boot/boot2</filename></title>
|
||||
|
||||
<para>Im Prinzip sind die erste und die zweite Phase Teile des
|
||||
selben Programms, im selben Bereich auf der
|
||||
Festplatte. Aufgrund von Speicherplatz-Beschränkungen
|
||||
wurden sie aufgeteilt, aber man installiert sie eigentlich
|
||||
generell zusammen.</para>
|
||||
|
||||
<para>Sie befinden sich beide auf im Bootsektor des Boot-Slices,
|
||||
wo <link linkend="boot-boot0">boot0</link> und jedes andere
|
||||
Programm im <abbrev>MBR</abbrev> das Programm erwartet, das
|
||||
den weiteren Bootvorgang durchführt. Die Dateien im
|
||||
Verzeichnis <filename>/boot</filename> sind nur Kopien der
|
||||
eigentlichen Dateien, die sich außerhalb FreeBSDs Dateisystems
|
||||
befinden.</para>
|
||||
|
||||
<para><filename>boot1</filename> ist ebenfalls ein sehr simples
|
||||
Programm, da es auch nur 512 byte groß sein darf, und es
|
||||
besitzt gerade genug Funktionalität um FreeBSDs
|
||||
<firstterm>disklabel</firstterm>, das Informationen über
|
||||
den Slice enthält, auszulesen um
|
||||
<filename>boot2</filename> zu finden und
|
||||
auszuführen.</para>
|
||||
|
||||
<para><filename>boot2</filename> 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.</para>
|
||||
|
||||
<para>Da der <link linkend="boot-loader">loader</link> einen
|
||||
weitaus größeren Funktionsumfang hat und eine schöne
|
||||
und einfach zu bedienende Boot-Konfigurations-Schnitstelle zur
|
||||
Verfügung stellt, wird er gewöhnlich von
|
||||
<filename>boot2</filename> anstatt des Kernels
|
||||
gestartet. Früher war es jedoch dazu da den Kernel direkt
|
||||
zu starten.</para>
|
||||
|
||||
<example id="boot-boot2-example">
|
||||
<title><filename>boot2</filename> Screenshot</title>
|
||||
|
||||
<screen>>> FreeBSD/i386 BOOT
|
||||
Default: 0:ad(0,a)/kernel
|
||||
boot:</screen>
|
||||
</example>
|
||||
|
||||
<para>Um das installierte
|
||||
<filename>boot1</filename> und <filename>boot2</filename> zu
|
||||
ersetzen, benutzt man &man.disklabel.8;:</para>
|
||||
|
||||
<screen>&prompt.root; <userinput>disklabel -B <replaceable>Slice</replaceable></userinput></screen>
|
||||
|
||||
<para>Wobei <replaceable>Slice</replaceable> Laufwerk und Slice
|
||||
darstellt, von dem gebootet wird, also
|
||||
z.B. <devicename>ad0s1</devicename> für den ersten Slice
|
||||
auf der ersten IDE Festplatte.</para>
|
||||
|
||||
<warning>
|
||||
<title>Dangerously Dedicated Mode</title>
|
||||
|
||||
<para>Wenn man nur den Festplatten-Namen, also
|
||||
z.B. <devicename>ad0</devicename>, in &man.disklabel.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
|
||||
&man.disklabel.8; Kommando noch einmal prüfen, bevor
|
||||
man <keycap>Return</keycap> betätigt.</para>
|
||||
</warning>
|
||||
</sect2>
|
||||
|
||||
<sect2 id="boot-loader">
|
||||
<title>Phase drei, <filename>/boot/loader</filename></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 Benutzerfreundliche
|
||||
Konfigurations-Schnittstelle sein mit einem einfach zu
|
||||
bedienenden eingebauten Befehlssatz, ergänzt durch einen
|
||||
umfangreichen Interpreter mit einem komplexeren
|
||||
Befehlssatz.</para>
|
||||
|
||||
<sect3 id="boot-loader-flow">
|
||||
<title>Loader Ablauf</title>
|
||||
|
||||
<para>Der Loader sucht während seiner Initialisierung
|
||||
nach Konsolen und Laufwerke, 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
|
||||
standardmäßig anweist
|
||||
<filename>/boot/defaults/loader.conf</filename> zu lesen, wo
|
||||
sinnvolle Standardeinstellungen für diverse Variablen
|
||||
festgelegt werden und wiederum
|
||||
<filename>/boot/loader.conf</filename> für lokale
|
||||
Änderungen an diesen Variablen ausgelesen
|
||||
wird. Anschließend arbeitet dann
|
||||
<filename>loader.rc</filename> entsprechend dieser Variablen
|
||||
und lädt die ausgewählten Module und den
|
||||
gewünschten Kernel.</para>
|
||||
|
||||
<para>Abschließend wartet der Loader standardmäßig 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.</para>
|
||||
|
||||
</sect3>
|
||||
|
||||
<sect3 id="boot-loader-commands">
|
||||
<title>Die eingebauten Befehle des Loaders</title>
|
||||
|
||||
<para>Hier werden nur die gebräuchlichsten Befehle
|
||||
bearbeitet. Für eine erschöpfende Diskussion aller
|
||||
verfügbaren Befehle konsultieren Sie bitte
|
||||
&man.loader.8;.</para>
|
||||
|
||||
<variablelist>
|
||||
<varlistentry>
|
||||
<term>autoboot <replaceable>Sekunden</replaceable></term>
|
||||
|
||||
<listitem>
|
||||
<para>Es wird mit dem Booten des Kernels fortgefahren,
|
||||
falls keine Taste in der gegebenen Zeitspanne
|
||||
betätigt wurde. Es wird ein Countdown angezeigt und
|
||||
die standardmässige Zeitspanne ist 10
|
||||
Sekunden.</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term>boot
|
||||
<optional><replaceable>-options</replaceable></optional>
|
||||
<optional><replaceable>Kernelname</replaceable></optional></term>
|
||||
|
||||
<listitem>
|
||||
<para>Bewirkt das sofortige booten des Kernels mit den
|
||||
gegebenen Optionen, falls welche angegeben wurden, und
|
||||
mit den angegebenen Kernel, falls denn einer angegeben
|
||||
wurde.</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term>boot-conf</term>
|
||||
|
||||
<listitem>
|
||||
<para>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
|
||||
<command>unload</command> benutzt wurde und Variablen
|
||||
(gewöhnlich <envar>kernel</envar>) verändert
|
||||
wurden.</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term>help
|
||||
<optional><replaceable>Thema</replaceable></optional></term>
|
||||
|
||||
<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>
|
||||
|
||||
<varlistentry>
|
||||
<term>include <replaceable>Dateiname</replaceable>
|
||||
…</term>
|
||||
|
||||
<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><option>-t</option>
|
||||
<replaceable>Typ</replaceable></optional>
|
||||
<replaceable>Dateiname</replaceable></term>
|
||||
|
||||
<listitem>
|
||||
<para>Lädt den Kernel, das Kernel-Modul, oder die Datei
|
||||
des angegebenen Typs. Optionen, die auf den Dateinamen folgen, werden
|
||||
der Datei übergeben.</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term>ls <optional><option>-l</option></optional>
|
||||
<optional><replaceable>Pfad</replaceable></optional></term>
|
||||
|
||||
<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össen ebenfalls angezeigt werden.</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term>lsdev <optional><option>-v</option></optional></term>
|
||||
|
||||
<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>
|
||||
|
||||
<varlistentry>
|
||||
<term>lsmod <optional><option>-v</option></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 id="boot-loader-examples">
|
||||
<title>Beispiele für die Loader Bedienung.</title>
|
||||
|
||||
<para>Hier ein paar praktische Beispiele für die Bedienung des Loaders.</para>
|
||||
|
||||
<itemizedlist>
|
||||
<indexterm><primary>Single-User Modus</primary></indexterm>
|
||||
<listitem>
|
||||
<para>Um den gewöhnlichen Kernel im Single-User Modus zu
|
||||
starten:</para>
|
||||
|
||||
<screen><userinput>boot -s</userinput></screen>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>Um alle gewöhnlichen Kernelmodule zu entladen und dann
|
||||
nur den alten (oder jeden beliebigen anderen) Kernel zu
|
||||
laden:</para>
|
||||
<indexterm>
|
||||
<primary><filename>kernel.old</filename></primary>
|
||||
</indexterm>
|
||||
|
||||
<screen><userinput>unload</userinput>
|
||||
<userinput>load <replaceable>kernel.old</replaceable></userinput></screen>
|
||||
|
||||
<para>Es kann <filename>kernel.GENERIC</filename> verwendet
|
||||
werden, um den allgemeinen, Kernel zu bezeichnen, der
|
||||
vorinstalliert wird. <filename>kernel.old</filename>
|
||||
bezeichnet den Kernel, der vor dem aktuellen installiert
|
||||
war (falls man einen neuen Kernel compiliert und
|
||||
installiert hat, zum Beispiel).</para>
|
||||
<note>
|
||||
<para>Der folgende Befehl lädt die gewöhnlichen Module mit
|
||||
einem anderen Kernel:</para>
|
||||
|
||||
<screen><userinput>unload</userinput>
|
||||
<userinput>set kernel="<replaceable>kernel.old</replaceable>"</userinput>
|
||||
<userinput>boot-conf</userinput></screen></note>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>Folgendes lädt ein Kernel-Konfigurations-Skript (ein
|
||||
automatisiertes Skript, dass das Selbe tut, was der
|
||||
Benutzer normalerweise von Hand an der Eingabeaufforderung
|
||||
durchführen würde):</para>
|
||||
|
||||
<screen><userinput>load -t userconfig_script <replaceable>/boot/kernel.conf</replaceable></userinput></screen>
|
||||
</listitem>
|
||||
</itemizedlist>
|
||||
</sect3>
|
||||
</sect2>
|
||||
</sect1>
|
||||
|
||||
<sect1 id="boot-kernel">
|
||||
<title>Kernel Interaktion während des Bootprozesses</title>
|
||||
<indexterm>
|
||||
<primary>kernel</primary>
|
||||
<secondary>boot interaction</secondary>
|
||||
</indexterm>
|
||||
|
||||
<para>Wenn der Kernel einmal geladen ist, entweder durch den <link
|
||||
linkend="boot-loader">Loader</link> (die Standardmethode) oder
|
||||
durch <link linkend="boot-boot1">boot2</link> (den Loader
|
||||
umgehend), verhält sich gemäß seiner Boot-Flags, falls es
|
||||
welche gibt.</para>
|
||||
|
||||
<sect2 id="boot-kernel-bootflags">
|
||||
<indexterm>
|
||||
<primary>kernel</primary>
|
||||
<secondary>bootflags</secondary>
|
||||
</indexterm>
|
||||
<title>Kernel Boot-Flags</title>
|
||||
|
||||
<para>Es folgt eine Auflistung der gebräuchlichsten
|
||||
Boot-Flags:</para>
|
||||
|
||||
<variablelist id="boot-kernel-bootflags-list">
|
||||
<varlistentry>
|
||||
<term><option>-a</option></term>
|
||||
|
||||
<listitem>
|
||||
<para>Bewirkt, dass der Benutzer während der
|
||||
Kernel-Initialisierung gefragt wird, welches Gerät als
|
||||
Root-Dateisystem gemounted werden soll.</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term><option>-C</option></term>
|
||||
|
||||
<listitem>
|
||||
<para>Es wird von CDROM gebootet.</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term><option>-c</option></term>
|
||||
|
||||
<listitem>
|
||||
<para>UserConfig, das Boot-Zeit Konfigurationsprogramm,
|
||||
wird gestartet.</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term><option>-s</option></term>
|
||||
|
||||
<listitem>
|
||||
<para>Bewirkt den Start des Single-User Modus.</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term><option>-v</option></term>
|
||||
|
||||
<listitem>
|
||||
<para>Zeigt mehr Informationen während des Starten des
|
||||
Kernels an.</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
</variablelist>
|
||||
|
||||
<note>
|
||||
<para>Für Informationen über weitere Boot-Flags konsultieren
|
||||
Sie bitte &man.boot.8;.</para></note>
|
||||
</sect2>
|
||||
|
||||
<!-- <sect2 id="boot-kernel-userconfig">
|
||||
<title>UserConfig: Das Boot-Zeit Konfigurationsprogramm</title>
|
||||
|
||||
<para> </para>
|
||||
</sect2> -->
|
||||
</sect1>
|
||||
|
||||
<sect1 id="boot-init">
|
||||
<indexterm>
|
||||
<primary><command>init</command></primary>
|
||||
</indexterm>
|
||||
<title>Init: Initialisierung der Prozess-Kontrolle</title>
|
||||
|
||||
<para>Nachdem der Kernel den Bootprozess abgeschlossen hat
|
||||
übergibt er die Kontrolle an den Benutzer-Prozess
|
||||
<command>init</command>. Dieses Programm befindet sich in
|
||||
<filename>/sbin/init</filename>, oder dem Pfad, der durch die
|
||||
Variable <envar>init_path</envar> im <command>Loader</command>
|
||||
spezifiziert wird.</para>
|
||||
|
||||
<sect2 id="boot-autoreboot">
|
||||
<title>Der automatische Reboot-Vorgang</title>
|
||||
|
||||
<para>Der automatische Reboot-Vorgang stellt sicher, dass alle
|
||||
Dateisysteme des Systems konsistent sind. Falls dies nicht der
|
||||
Fall ist und die Inkonsistenz nicht durch
|
||||
<command>fsck</command> behebbar ist, schaltet
|
||||
<command>init</command> das System in den <link
|
||||
linkend="boot-singleuser">Single-User Modus</link>, damit der
|
||||
Systemadministrator sich des Problems annehmen kann.</para>
|
||||
</sect2>
|
||||
|
||||
<sect2 id="boot-singleuser">
|
||||
<title>Der Single-User Modus</title>
|
||||
<indexterm><primary>Single-User Mode</primary></indexterm>
|
||||
<indexterm><primary>console</primary></indexterm>
|
||||
|
||||
<para>Das Schalten in diesen Modus kann erreicht werden durch <link
|
||||
linkend="boot-autoreboot">den automatischen
|
||||
Reboot-Vorgang</link>, durch das Booten mit der Option
|
||||
<option>-s</option> oder das Setzen der
|
||||
<envar>boot_single</envar> Variable in
|
||||
<command>Loader</command>.</para>
|
||||
|
||||
<para>Weiterhin kann der Single-User Modus aus dem <link
|
||||
linkend="boot-multiuser">Multi-User Modus</link> heraus durch
|
||||
den Befehl <command>shutdown</command> ohne die reboot
|
||||
(<option>-r</option>) oder halt (<option>-h</option>) Option
|
||||
erreicht werden.
|
||||
|
||||
<para>Falls die System-Konsole (<literal>console</literal>) in
|
||||
<filename>/etc/ttys</filename> auf <literal>insecure</literal>
|
||||
(dt.: unsicher) gesetzt ist fordert das System allerdings zur
|
||||
Eingabe des root Passworts auf, bevor es den Single-User Modus
|
||||
aktiviert.</para>
|
||||
|
||||
<example id="boot-insecure-console">
|
||||
<title>Auf Insecure gesetzte Konsole in /etc/ttys</title>
|
||||
|
||||
<programlisting># name getty type status comments
|
||||
#
|
||||
# This entry needed for asking password when init goes to single-user mode
|
||||
# If you want to be asked for password, change "secure" to "insecure" here
|
||||
console none unknown off insecure</programlisting>
|
||||
</example>
|
||||
|
||||
<note>
|
||||
<para>Eine Konsole sollte auf <literal>insecure</literal>
|
||||
gesetzt sein, wenn die physikalische Sicherheit der Konsole
|
||||
nicht gegeben ist und sichergestellt werden soll, dass nur
|
||||
Personen, die das root-Passwort kennen den Single-User Modus
|
||||
benutzen können. Es bedeutet nicht, dass die Konsole
|
||||
"unsicher" laufen wird. Daher sollte man
|
||||
<literal>insecure</literal> wählen, wenn man auf Sicherheit
|
||||
bedacht ist, nicht <literal>secure</literal>.</para>
|
||||
</note>
|
||||
</sect2>
|
||||
|
||||
<sect2 id="boot-multiuser">
|
||||
<title>Multi-User Mode</title>
|
||||
<indexterm><primary>Multi-User Mode</primary></indexterm>
|
||||
|
||||
<para>Stellt <command>init</command> fest, dass das Dateisystem
|
||||
in Ordnung ist, oder der Benutzer den <link
|
||||
linkend="boot-singleuser">Single-User Modus</link> beendet,
|
||||
schaltet das System in den Multi-User Modus, in dem dann die
|
||||
Ressourcen Konfiguration des Systems gestartet wird.</para>
|
||||
|
||||
<sect3 id="boot-rc">
|
||||
<indexterm><primary>rc Dateien</primary></indexterm>
|
||||
<title>Ressourcen Konfiguration (engl.: resource configuration, rc)</title>
|
||||
|
||||
<para>Das Ressourcen Konfigurationssystem liest seine
|
||||
Standardkonfiguration von
|
||||
<filename>/etc/defaults/rc.conf</filename> und
|
||||
System-spezifische Details von
|
||||
<filename>/etc/rc.conf</filename>. Dann mountet es das
|
||||
Dateisystem gemäß <filename>/etc/fstab</filename>, startet
|
||||
die Netzwerkdienste, diverse System Daemons und führt
|
||||
schließlich die Startup-Skripte der lokal installierten
|
||||
Programmpakete (packages) aus.</para>
|
||||
|
||||
<para>Die &man.rc.8; Handbuch Seite ist eine gute Quelle für
|
||||
Informationen über das Ressourcen Konfigurationssystem und
|
||||
ebenso über die Skripte ansich.</para>
|
||||
</sect3>
|
||||
</sect2>
|
||||
</sect1>
|
||||
|
||||
<sect1 id="boot-shutdown">
|
||||
<title>Der Shutdown Vorgang</title>
|
||||
<indexterm>
|
||||
<primary><command>shutdown</command></primary>
|
||||
</indexterm>
|
||||
|
||||
<para>Im Falle eines kontrollierten herunterfahrens durch
|
||||
<command>shutdown</command> führt init das
|
||||
<filename>/etc/rc.shutdown</filename> Skript aus, sendet dann
|
||||
sämtlichen Prozessen ein <literal>TERM</literal> Signal und
|
||||
schließlich ein <literal>KILL</literal> Signal an alle Prozesse,
|
||||
die sich nicht schnell genug beendet haben.</para>
|
||||
</sect1>
|
||||
</chapter>
|
||||
|
||||
<!--
|
||||
Local Variables:
|
||||
mode: sgml
|
||||
sgml-declaration: "../chapter.decl"
|
||||
sgml-indent-data: t
|
||||
sgml-omittag: nil
|
||||
sgml-always-quote-attributes: t
|
||||
sgml-parent-document: ("../book.sgml" "part" "chapter")
|
||||
End:
|
||||
-->
|
Loading…
Reference in a new issue