Update to r44132:

Clarifications and reorganizations in the PXE-boot section.

Submitted by:	    Bjoern Heidotting
Obtained from:	    The FreeBSD German Documentation Project
This commit is contained in:
Benedict Reuschling 2014-07-29 20:31:32 +00:00
parent 995f0b4820
commit fa841c7b1b
Notes: svn2git 2020-12-08 03:00:23 +00:00
svn path=/head/; revision=45380

View file

@ -5,7 +5,7 @@
$FreeBSD$
$FreeBSDde:$
basiert auf: r44131
basiert auf: r44132
-->
<chapter xmlns="http://docbook.org/ns/docbook"
xmlns:xlink="http://www.w3.org/1999/xlink" version="5.0"
@ -4220,196 +4220,69 @@ DHCP"</programlisting>
<primary>plattenloser Betrieb</primary>
</indexterm>
<para>&os; kann über ein Netzwerk starten und arbeiten, ohne
eine lokale Festplatte zu verwenden, indem es Dateisysteme eines
<acronym>NFS</acronym>-Servers in den eigenen Verzeichnisbaum
einhängt. Dazu sind, von den Standardkonfigurationsdateien
abgesehen, keine Systemänderungen nötig. Ein solches
System kann leicht installiert werden, da alle notwendigen
Elemente bereits vorhanden sind:</para>
<para>Das &intel; Preboot eXecution Environment
(<acronym>PXE</acronym>) erlaubt es dem Betriebssystem über das
Netzwerk zu starten. Zum Beispiel kann ein &os;-System, ohne
lokale Festplatte, über das Netzwerk gestartet und betrieben
werden. Die Dateisysteme werden dabei über einen
<acronym>NFS</acronym>-Server eingehangen.
<acronym>PXE</acronym>-Unterstützung steht in der Regel im
<acronym>BIOS</acronym> zur Verfügung. Um
<acronym>PXE</acronym> beim Systemstart zu verwenden, müssen Sie
im <acronym>BIOS</acronym> des Rechners die Option <literal>Über
das Netzwerk starten</literal> aktivieren. Alternativ können
Sie während der PC-Initialisierung auch eine Funktionstaste
drücken.</para>
<itemizedlist>
<listitem>
<para><acronym>PXE</acronym>: Das
<quote>Preboot eXecution Environment System</quote> von
&intel; ist eine Art intelligentes Boot-ROM, das in
einigen Netzwerkkarten oder Hauptplatinen verwendet wird.
Weitere Informationen finden Sie in &man.pxeboot.8;.
</para>
</listitem>
<listitem>
<para>Das Beispielskript
<filename>/usr/share/examples/diskless/clone_root</filename>
erleichtert die Erzeugung und die Wartung des
root-Dateisystems auf dem Server. Das Skript muss
wahrscheinlich angepasst werden, dennoch werden Sie schnell zu
einem Ergebnis kommen.</para>
</listitem>
<listitem>
<para>Die Startdateien, die einen plattenlosen Systemstart
erkennen und unterstützen, sind nach der Installation
in <filename>/etc</filename> vorhanden.</para>
</listitem>
<listitem>
<para>Dateiauslagerungen können sowohl via
<acronym>NFS</acronym> als auch auf die lokale Platte
erfolgen.</para>
</listitem>
</itemizedlist>
<para>Um <acronym>PXE</acronym> beim Systemstart zu verwenden,
müssen Sie im <acronym>BIOS</acronym> des Rechner die
Option <literal>Über das Netzwerk starten</literal>
aktivieren. Alternativ können Sie während der
PC-Initialisierung auch eine Funktionstaste drücken.</para>
<para>Es gibt verschiedene Wege, einen plattenlosen Rechner
einzurichten. Viele Elemente sind daran beteiligt, die fast
immer an den persönlichen Geschmack angepasst werden
können. Im folgenden Abschnitt wird die Installation
eines kompletten Systems beschrieben, wobei der
Schwerpunkt auf Einfachheit und Kompatibilität zu den
Standardstartskripten von &os; liegt. Das beschriebene
System hat folgende Eigenschaften:</para>
<itemizedlist>
<listitem>
<para>Die plattenlosen Rechner haben ein gemeinsames
<filename>/</filename>- sowie ein gemeinsames
<filename>/usr</filename>-Dateisystem, die jeweils
schreibgeschützt sind.</para>
</listitem>
<listitem>
<para>Das root-Dateisystem ist eine Kopie
eines Standardwurzelverzeichnisses von &os;
(üblicherweise das des Servers), bei dem einige
Konfigurationsdateien durch für den plattenlosen
Betrieb geeignete Versionen ersetzt wurden.</para>
</listitem>
<listitem>
<para>Für die Bereiche des root-Dateisystems, die
beschreibbar sein müssen, werden mit &man.md.4;
virtuelle Dateisysteme erzeugt. Dies bedeutet aber auch, dass
alle Veränderungen verloren gehen, wenn das System neu
gestartet wird.</para>
</listitem>
<listitem>
<para>Der Kernel wird, in Abhängigkeit von der jeweiligen
Situation, entweder von <application>Etherboot</application>
oder von <acronym>PXE</acronym> transferiert und geladen.
</para>
</listitem>
</itemizedlist>
<caution><para>Das hier beschriebene System ist nicht sicher. Es
sollte nur in einem gesicherten Bereich eines Netzwerks verwendet
werden und für andere Rechner nicht erreichbar sein.</para>
</caution>
<sect2>
<title>Hintergrundinformationen</title>
<para>Bei der Einrichtung von plattenlosen Rechnern
müssen verschiedene Operationen durchgeführt werden, um
das System erfolgreich zu starten:</para>
<para>Um die notwendigen Dateien für ein Betriebssystem für den
Start über das Netzwerk bereitzustellen, benötigt ein
<acronym>PXE</acronym>-Setup einen richtig konfigurierten
<acronym>DHCP</acronym>-, <acronym>TFTP</acronym>- und
<acronym>NFS</acronym>-Server, wobei:</para>
<itemizedlist>
<listitem>
<para>Der Rechner benötigt einige Startparameter, wie
seine IP-Adresse, die Namen ausführbarer Dateien, den
Servernamen sowie den root-Pfad. Für die
Übermittlung dieser Informationen wird entweder das
<acronym>DHCP</acronym>- oder das BOOTP-Protokoll verwendet.
Bei <acronym>DHCP</acronym> handelt es sich um eine
abwärtskompatible Erweiterung von BOOTP, die die
gleichen Portnummern und das gleiche Paketformat verwendet.
</para>
<para>Es ist möglich, das System so zu konfigurieren,
dass es nur BOOTP verwendet. Das Serverprogramm
&man.bootpd.8; ist bereits im &os;-Basissystem enthalten.
</para>
<para><acronym>DHCP</acronym> hat im Vergleich zu BOOTP
allerdings mehrere Vorteile (bessere Konfigurationsdateien,
die Möglichkeit zur Verwendung von
<acronym>PXE</acronym>, sowie viele andere, die nicht in
direktem Zusammenhang mit dem plattenlosen Betrieb stehen).
Dieser Abschnitt beschreibt die Konfiguration mittels
<acronym>DHCP</acronym>. Wenn möglich, werden aber
entsprechende Beispiele für &man.bootpd.8;
angeführt. Die Beispielkonfiguration nutzt das
Softwarepaket <application>ISC DHCP</application>.</para>
</listitem>
<listitem>
<para>Der Rechner muss den Loader über
<acronym>TFTP</acronym> starten.</para>
</listitem>
<listitem>
<para>Das Root-Dateisystem muss über
<acronym>NFS</acronym> geladen werden.</para>
<para>Die initialen Parameter, wie
<acronym>IP</acronym>-Adresse, Dateiname und Speicherort
der ausführbaren Bootdateien, Servername sowie Root-Pfad
vom <acronym>DHCP</acronym>-Server bezogen werden.</para>
</listitem>
<listitem>
<para>Die möglichen Bootstrap-Programme und der Kernel
müssen initialisiert und ausgeführt werden. Dabei
gibt es zwei Möglichkeiten:</para>
<itemizedlist>
<listitem>
<para><acronym>PXE</acronym> lädt &man.pxeboot.8;.
Dabei handelt es sich um eine modifizierte Version des
&os;-Loaders der Boot-Phase drei. Der &man.loader.8;
beschafft alle für den Systemstart notwendigen
Parameter, und hinterlegt diese in der Kernelumgebung,
bevor er die Kontrolle übergibt. Es ist hier
möglich, den <filename>GENERIC</filename>-Kernel
zu verwenden.</para>
</listitem>
<listitem>
<para><application>Etherboot</application> lädt den
Kernel hingegen direkt. Dafür müssen Sie
allerdings einen Kernel mit spezifischen Optionen
erzeugen.</para>
</listitem>
</itemizedlist>
<para><acronym>PXE</acronym> und
<application>Etherboot</application> sind zwar im
Großen und Ganzen gleichwertig, da der Kernel
aber viele Aufgaben an &man.loader.8; übergibt, sollte
bevorzugt <acronym>PXE</acronym> eingesetzt werden.</para>
<para>Wenn Ihr <acronym>BIOS</acronym> und Ihre Netzwerkkarten
<acronym>PXE</acronym> unterstützen, sollten Sie es
auch verwenden.</para>
<para>Der Loader für das Betriebssystem über
<acronym>TFTP</acronym> gestartet wird.</para>
</listitem>
<listitem>
<para>Zuletzt muss der Rechner auf seine Dateisysteme
zugreifen können. Dafür wird stets
<acronym>NFS</acronym> verwendet.</para>
</listitem>
<listitem>
<para>Die Dateisysteme über
<acronym>NFS</acronym> geladen werden.</para>
</listitem>
</itemizedlist>
<para>Sie können das Verzeichnis
<filename>/tftpboot</filename> an einem beliebigen Ort auf
dem Server ablegen. Stellen Sie aber sicher, dass Sie
diesen Ort sowohl in <filename>/etc/inetd.conf</filename>
als auch in <filename>/usr/local/etc/dhcpd.conf</filename>
eingetragen haben.</para>
<para>Sobald das Gastsystem startet, erhält es vom
<acronym>DHCP</acronym>-Server Informationen, wo der initiale
Bootloader per <acronym>TFTP</acronym> zu bekommen ist.
Nachdem das Gastsystem diese Informationen erhalten hat, lädt
es den Bootloader über <acronym>TFTP</acronym> herunter und
führt diesen anschließend aus. In &os; ist
<filename>/boot/pxeboot</filename> der Bootloader. Nachdem
<filename>/boot/pxeboot</filename> ausgeführt und der
&os;-Kernel geladen wurde, wird mit dem Rest der
&os;-Bootsequenz, wie in <xref linkend="boot"/> beschrieben,
fortgefahren.</para>
<para>Weitere Informationen finden Sie in &man.diskless.8;.</para>
</sect2>
<para>Dieser Abschnitt beschreibt, wie Sie diese Dienste auf
einem &os;-System so konfigurieren, sodass andere Systeme &os;
über <acronym>PXE</acronym> starten können. Weitere
Informationen finden Sie in &man.diskless.8;.</para>
<caution>
<para>Wie beschrieben, ist das System, welches diese Dienste
bereitstellt, unsicher. Daher sollte es in einem
geschützten Bereich des Netzwerks aufgestellt und von
anderen Hosts als nicht vertrauenswürdig eingestuft
werden.</para>
</caution>
<sect2 xml:id="network-pxe-nfs">
<info>
@ -4430,33 +4303,6 @@ DHCP"</programlisting>
</authorgroup>
</info>
<para>Das &intel; Preboot eXecution Environment
(<acronym>PXE</acronym>) erlaubt es, ein Betriebssystem über das
Netzwerk zu starten. <acronym>PXE</acronym>-Unterstützung wird
von modernen Mainboards über das <acronym>BIOS</acronym>
bereitgestellt, wo Sie es bei den Einstellungen zum Starten über
das Netzwerk aktivieren können. Ein voll funktionsfähiges
<acronym>PXE</acronym>-Setup erfordert zusätzlich einen richtig
konfigurierten <acronym>DHCP</acronym>- und
<acronym>TFTP</acronym>-Server.</para>
<para>Sobald das Gastsystem startet, erhält es vom
<acronym>DHCP</acronym>-Server Informationen, wo der initiale
Bootloader per <acronym>TFTP</acronym> zu bekommen ist. Nachdem
das Gastsystem diese Informationen erhält, lädt es den
Bootloader über <acronym>TFTP</acronym> herunter und führt
diesen anschließend aus. Dieses Verfahren ist in Sektion 2.2.1
der <link
xlink:href="http://download.intel.com/design/archives/wfm/downloads/pxespec.pdf">Preboot
Execution Environment (PXE) Specification</link> dokumentiert.
In &os; ist <filename>/boot/pxeboot</filename> der Bootloader,
der während des <acronym>PXE</acronym>-Vorgangs abgerufen wird.
Nachdem <filename>/boot/pxeboot</filename> ausgeführt und der
&os;-Kernel geladen wurde, wird mit dem Rest der
&os;-Bootsequenz fortgefahren. Weitere Informationen über den
Bootvorgang unter &os; finden Sie in <xref
linkend="boot"/>.</para>
<procedure>
<step>
<para>Wählen Sie ein Verzeichnis welches eine
@ -4467,6 +4313,13 @@ DHCP"</programlisting>
<screen>&prompt.root; <userinput>export NFSROOTDIR=/b/tftpboot/FreeBSD/install</userinput>
&prompt.root; <userinput>mkdir -p ${NFSROOTDIR}</userinput></screen>
<para>Sie können <filename>tftpboot</filename> an einer
beliebigen Stelle auf dem Server plazieren. Stellen Sie
aber sicher, dass Sie diesen Ort sowohl in
<filename>/etc/inetd.conf</filename> als auch in
<filename>/usr/local/etc/dhcpd.conf</filename> eingetragen
haben.</para>
</step>
<step>