Add missing section about PXE booting that didn't get noticed until now.
A big thanks goes out to Bjoern who noticed it and did the work of translating the section. Submitted by: Bjoern Heidotting Obtained from: The FreeBSD German Documentation Project
This commit is contained in:
parent
6fcf6940b2
commit
06fa643ac1
Notes:
svn2git
2020-12-08 03:00:23 +00:00
svn path=/head/; revision=44605
1 changed files with 340 additions and 1 deletions
|
@ -49,6 +49,11 @@
|
|||
können.</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>Wissen, wie man mithilfe von PXE über ein Netzwerk
|
||||
bootet und ein NFS-Root-Dateisystem einrichtet.</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>Wissen, wie man NAT (Network Address Translation)
|
||||
einrichtet.</para>
|
||||
|
@ -4810,6 +4815,340 @@ cd /usr/src/etc; make distribution</programlisting>
|
|||
</sect2>
|
||||
</sect1>
|
||||
|
||||
|
||||
<sect1 xml:id="network-pxe-nfs">
|
||||
<info>
|
||||
<title><acronym>PXE</acronym>-Boot mit einem
|
||||
<acronym>NFS</acronym>-Root-Dateisystem</title>
|
||||
|
||||
<authorgroup>
|
||||
<author>
|
||||
<personname>
|
||||
<firstname>Craig</firstname>
|
||||
<surname>Rodrigues</surname>
|
||||
</personname>
|
||||
<affiliation>
|
||||
<address>rodrigc@FreeBSD.org</address>
|
||||
</affiliation>
|
||||
<contrib>Beigetragen von </contrib>
|
||||
</author>
|
||||
</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>
|
||||
|
||||
<sect2>
|
||||
<title>Einrichtung der <command>chroot</command>-Umgebung für
|
||||
das NFS-Root-Dateisystem</title>
|
||||
|
||||
<procedure>
|
||||
<step>
|
||||
<para>Wählen Sie ein Verzeichnis welches eine
|
||||
&os;-Installation enthält und über NFS eingehangen
|
||||
werden kann. Als Beispiel kann das Verzeichnis
|
||||
<filename>/b/tftpboot/FreeBSD/install</filename>
|
||||
verwendet werden.</para>
|
||||
|
||||
<screen>&prompt.root; <userinput>export NFSROOTDIR=/b/tftpboot/FreeBSD/install</userinput>
|
||||
&prompt.root; <userinput>mkdir -p ${NFSROOTDIR}</userinput></screen>
|
||||
</step>
|
||||
|
||||
<step>
|
||||
<para>Aktivieren Sie den NFS-Server. Diese Prozedur wird
|
||||
im Kapitel <xref linkend="network-configuring-nfs"/>
|
||||
beschrieben.</para>
|
||||
|
||||
<para>Exportieren Sie das eben erstellte Verzeichnis über
|
||||
NFS, indem Sie folgende Zeile in
|
||||
<filename>/etc/exports</filename> hinzufügen:</para>
|
||||
|
||||
<programlisting>/b -ro -alldirs</programlisting>
|
||||
</step>
|
||||
|
||||
<step>
|
||||
<para>Starten Sie den NFS-Server neu:</para>
|
||||
|
||||
<screen>&prompt.root; <userinput>/etc/rc.d/nfsd restart</userinput></screen>
|
||||
</step>
|
||||
|
||||
<step>
|
||||
<para>Aktivieren Sie &man.inetd.8; wie im Kapitel <xref
|
||||
linkend="network-inetd-settings"/> beschrieben.</para>
|
||||
</step>
|
||||
|
||||
<step>
|
||||
<para>Fügen Sie folgende Zeilen in
|
||||
<filename>/etc/inetd.conf</filename> hinzu:</para>
|
||||
|
||||
<programlisting>tftp dgram udp wait root /usr/libexec/tftp tftp -l -s /b/tftpboot</programlisting>
|
||||
</step>
|
||||
|
||||
<step>
|
||||
<para>Starten Sie inetd neu:</para>
|
||||
|
||||
<screen>&prompt.root; <userinput>/etc/rc.d/inetd restart</userinput></screen>
|
||||
</step>
|
||||
|
||||
<step>
|
||||
<para><link linkend="makeworld">Erstellen Sie einen neues
|
||||
Basissystem und einen &os;-Kernel</link>:</para>
|
||||
|
||||
<screen>&prompt.root; <userinput>cd /usr/src</userinput>
|
||||
&prompt.root; <userinput>make buildworld</userinput>
|
||||
&prompt.root; <userinput>make buildkernel</userinput></screen>
|
||||
</step>
|
||||
|
||||
<step>
|
||||
<para>Installieren sie &os; in das Verzeichnis, welches
|
||||
über <acronym>NFS</acronym> eingehangen ist:</para>
|
||||
|
||||
<screen>
|
||||
&prompt.root; <userinput>make installworld DESTDIR=${NFSROOTDIR}</userinput>
|
||||
&prompt.root; <userinput>make installkernel DESTDIR=${NFSROOTDIR}</userinput>
|
||||
&prompt.root; <userinput>make distribution DESTDIR=${NFSROOTDIR}</userinput>
|
||||
</screen>
|
||||
</step>
|
||||
|
||||
<step>
|
||||
<para>Testen Sie den <acronym>TFTP</acronym>-Server und
|
||||
vergewissern Sie sich, dass Sie den Bootloader
|
||||
herunterladen können, der über <acronym>PXE</acronym>
|
||||
bereitgestellt wird:</para>
|
||||
|
||||
<screen>
|
||||
&prompt.root; <userinput>tftp localhost</userinput>
|
||||
tftp> <userinput>get FreeBSD/install/boot/pxeboot</userinput>
|
||||
Received 264951 bytes in 0.1 seconds
|
||||
</screen>
|
||||
</step>
|
||||
|
||||
<step>
|
||||
<para>Bearbeiten Sie
|
||||
<filename>${NFSROOTDIR}/etc/fstab</filename> und
|
||||
erstellen Sie einen Eintrag, um das Root-Dateisystem
|
||||
über <acronym>NFS</acronym> einzuhängen:</para>
|
||||
|
||||
<programlisting>
|
||||
# Device Mountpoint FSType Options Dump Pass
|
||||
myhost.example.com:/b/tftpboot/FreeBSD/install / nfs ro 0 0
|
||||
</programlisting>
|
||||
|
||||
<para>Ersetzen Sie
|
||||
<replaceable>myhost.example.com</replaceable> durch den
|
||||
Hostnamen oder die <acronym>IP</acronym>-Adresse Ihres
|
||||
<acronym>NFS</acronym>-Servers. In diesem Beispiel wird
|
||||
das Root-Dateisystem schreibgeschützt eingehangen, um
|
||||
ein potenzielles Löschen des Inhalts durch die
|
||||
<acronym>NFS</acronym>-Clients zu verhindern.</para>
|
||||
</step>
|
||||
|
||||
<step>
|
||||
<para>Setzen Sie das root-Passwort in der
|
||||
&man.chroot.8;-Umgebung:</para>
|
||||
|
||||
<screen>&prompt.root; <userinput>chroot ${NFSROOTDIR} </userinput>
|
||||
&prompt.root; <userinput>passwd</userinput></screen>
|
||||
|
||||
<para>Damit setzen Sie das root-Passwort für die
|
||||
Client-Maschinen, welche über <acronym>PXE</acronym>
|
||||
starten.</para>
|
||||
</step>
|
||||
|
||||
<step>
|
||||
<para>Aktivieren Sie &man.ssh.1; root-Logins für
|
||||
Client-Maschinen, die über <acronym>PXE</acronym>
|
||||
starten, indem Sie die Option
|
||||
<literal>PermitRootLogin</literal> in
|
||||
<filename>${NFSROOTDIR}/etc/ssh/sshd_config</filename>
|
||||
aktivieren. Dies ist in &man.sshd.config.5;
|
||||
dokumentiert.</para>
|
||||
</step>
|
||||
|
||||
<step>
|
||||
<para>Führen Sie weitere Anpassungen der
|
||||
&man.chroot.8;-Umgebung in ${NFSROOTDIR} durch, wie zum
|
||||
Beispiel die Installation weiterer Pakete mittels
|
||||
&man.pkg.add.1;, dass Bearbeiten der Passwortdatei mit
|
||||
&man.vipw.8;, oder &man.amd.conf.5; für den Automounter.
|
||||
Ein Beispiel:</para>
|
||||
|
||||
<screen>
|
||||
&prompt.root; <userinput>chroot ${NFSROOTDIR}</userinput>
|
||||
&prompt.root; <userinput>pkg_add -r bash</userinput></screen>
|
||||
</step>
|
||||
</procedure>
|
||||
</sect2>
|
||||
|
||||
|
||||
<sect2>
|
||||
<title>Speicher-Dateisysteme für
|
||||
<filename>/etc/rc.initdiskless</filename></title>
|
||||
|
||||
<para>Booten Sie von einem <acronym>NFS</acronym>-Root-Volume,
|
||||
so erkennt <filename>/etc/rc</filename> dies und startet
|
||||
daraufhin das <filename>/etc/rc.initdiskless</filename>
|
||||
Skript. Lesen Sie die Kommentare in diesem Skript um zu
|
||||
verstehen, was dort vor sich geht. Weil das
|
||||
<acronym>NFS</acronym>-Root-Verzeichnis schreibgeschützt ist,
|
||||
wir aber Schreibzugriff für <filename>/etc</filename> und
|
||||
<filename>/var</filename> benötigen, müssen wir diese
|
||||
Verzeichnisse über Speicher-Dateisysteme (memory backed file
|
||||
system) einbinden.</para>
|
||||
|
||||
<screen>
|
||||
&prompt.root; <userinput>chroot ${NFSROOTDIR}</userinput>
|
||||
&prompt.root; <userinput>mkdir -p conf/base</userinput>
|
||||
&prompt.root; <userinput>tar -c -v -f conf/base/etc.cpio.gz --format cpio
|
||||
--gzip etc</userinput>
|
||||
&prompt.root; <userinput>tar -c -v -f conf/base/var.cpio.gz --format cpio
|
||||
--gzip var</userinput></screen>
|
||||
|
||||
<para>Bei Starten werden die Speicher-Dateisysteme für
|
||||
<filename>/etc</filename> und <filename>/var</filename>
|
||||
erstellt und eingehangen und der Inhalt der
|
||||
<filename>cpio.gz</filename>-Dateien in diese hinein
|
||||
kopiert.</para>
|
||||
</sect2>
|
||||
|
||||
<sect2>
|
||||
<title>Einrichtung des DHCP-Servers</title>
|
||||
|
||||
<para><acronym>PXE</acronym> benötigt für die Einrichtung einen
|
||||
<acronym>TFTP</acronym>-Server und einen
|
||||
<acronym>DHCP</acronym>-Server. Der
|
||||
<acronym>DHCP</acronym>-Server muss nicht unbedingt auf der
|
||||
gleichen Maschine laufen wie der
|
||||
<acronym>TFTP</acronym>-Server, aber er muss in Ihrem Netzwerk
|
||||
erreichbar sein.</para>
|
||||
|
||||
<procedure>
|
||||
<step>
|
||||
<para>Installieren Sie den <acronym>DHCP</acronym>-Server,
|
||||
indem Sie den Anweisungen in <xref
|
||||
linkend="network-dhcp-server"/> folgen. Stellen Sie
|
||||
sicher, dass <filename>/etc/rc.conf</filename> und
|
||||
<filename>/usr/local/etc/dhcpd.conf</filename> richtig
|
||||
konfiguriert sind.</para>
|
||||
</step>
|
||||
|
||||
<step>
|
||||
<para>Konfigurieren Sie in
|
||||
<filename>/usr/local/etc/dhcpd.conf</filename> die
|
||||
<literal>next-server</literal>,
|
||||
<literal>filename</literal> und <literal>option
|
||||
root-path</literal> Einstellungen, um die
|
||||
<acronym>IP</acronym>-Adresse des
|
||||
<acronym>TFTP</acronym>-Servers, den Pfad zu
|
||||
<filename>/boot/pxeboot</filename> in
|
||||
<acronym>TFTP</acronym> und den Pfad zum
|
||||
<acronym>NFS</acronym>-Root-Dateisystem zu bestimmen.
|
||||
Hierzu ein Beispiel für
|
||||
<filename>/usr/local/etc/dhcpd.conf</filename>:</para>
|
||||
|
||||
<programlisting>
|
||||
subnet 192.168.0.0 netmask 255.255.255.0 {
|
||||
range 192.168.0.2 192.168.0.3;
|
||||
option subnet-mask 255.255.255.0;
|
||||
option routers 192.168.0.1;
|
||||
option broadcast-address 192.168.0.255;
|
||||
option domain-name-server 192.168.35.35 192.168.35.36;
|
||||
option domain-name "example.com";
|
||||
|
||||
# IP address of TFTP server
|
||||
next-server 192.168.0.1;
|
||||
|
||||
# path of boot loader obtained
|
||||
# via tftp
|
||||
filename "FreeBSD/install/boot/pxeboot";
|
||||
|
||||
# pxeboot boot loader will try to NFS mount this directory for root FS
|
||||
option root-path "192.168.0.1:/b/tftpboot/FreeBSD/install/";
|
||||
|
||||
}
|
||||
</programlisting>
|
||||
</step>
|
||||
</procedure>
|
||||
</sect2>
|
||||
|
||||
<sect2>
|
||||
<title>Konfiguration des <acronym>PXE</acronym>-Clients und
|
||||
Fehlersuche bei Verbindungsproblemen</title>
|
||||
|
||||
<procedure>
|
||||
<step>
|
||||
<para>Sobald die Client-Maschine startet, gehen Sie in die
|
||||
<acronym>BIOS</acronym>-Einstellungen und konfigurieren
|
||||
Sie den Start über das Netzwerk (boot from network). Sind
|
||||
Ihre bisherigen Konfigurationsschritte korrekt, sollte
|
||||
alles funktionieren.</para>
|
||||
</step>
|
||||
|
||||
<step>
|
||||
<para>Benutzen Sie den <filename
|
||||
role="package">net/wireshark</filename> Port zur
|
||||
Fehlersuche im Netzwerkverkehr von <acronym>DHCP</acronym>
|
||||
und <acronym>TFTP</acronym>.</para>
|
||||
</step>
|
||||
|
||||
<step>
|
||||
<para>Stellen Sie sicher, dass Sie die
|
||||
<filename>pxeboot</filename>-Datei über
|
||||
<acronym>TFTP</acronym> herunterladen können. Schauen Sie
|
||||
in <filename>/var/log/xferlog</filename> auf Ihrem
|
||||
<acronym>TFTP</acronym>-Server und vergewissern Sie sich,
|
||||
dass die <filename>pxeboot</filename>-Datei von der
|
||||
richtigen Adresse heruntergeladen wurde. Um die obige
|
||||
Konfiguration von <filename>dhcpd.conf</filename> zu
|
||||
testen, geben Sie folgendes ein:</para>
|
||||
|
||||
<screen>&prompt.root; <userinput>tftp 192.168.0.1</userinput>
|
||||
tftp> <userinput>get FreeBSD/install/boot/pxeboot</userinput>
|
||||
Received 264951 bytes in 0.1 seconds</screen>
|
||||
|
||||
<para>Weitere Informationen finden Sie in &man.tftpd.8; und
|
||||
&man.tftp.1;. Die <literal>BUGS</literal>-Sektionen dieser
|
||||
Seiten dokumentieren einige Einschränkungen von
|
||||
<acronym>TFTP</acronym>.</para>
|
||||
</step>
|
||||
|
||||
<step>
|
||||
<para>Achten Sie darauf, dass Sie das Root-Dateisystem über
|
||||
<acronym>NFS</acronym> einhängen können. Auch hier können
|
||||
Sie Ihre Einstellungen aus <filename>dhcpd.conf</filename>
|
||||
wie folgt testen:</para>
|
||||
|
||||
<screen>&prompt.root; <userinput>mount -t nfs 192.168.0.1:/b
|
||||
/tftpboot/FreeBSD/install /mnt</userinput></screen>
|
||||
</step>
|
||||
</procedure>
|
||||
</sect2>
|
||||
</sect1>
|
||||
|
||||
<sect1 xml:id="network-isdn">
|
||||
<title>ISDN – diensteintegrierendes digitales Netzwerk</title>
|
||||
|
||||
|
@ -6433,7 +6772,7 @@ route_hostD="192.168.173.4 hatm0 0 102 llc/snap ubr"</programlisting>
|
|||
<info><title>CARP - Common Address Redundancy Protocol</title>
|
||||
<authorgroup>
|
||||
<author><personname><firstname>Tom</firstname><surname>Rhodes</surname></personname><contrib>Beigetragen von </contrib></author>
|
||||
<author><personname><firstname>Allan</firstname><surname>Jude</surname></personname><contrib>Aktualisiert von</contrib></author>
|
||||
<author><personname><firstname>Allan</firstname><surname>Jude</surname></personname><contrib>Aktualisiert von </contrib></author>
|
||||
</authorgroup>
|
||||
</info>
|
||||
|
||||
|
|
Loading…
Reference in a new issue