Wenn Ihr Rechner mit einem Netzwerk (Local Area Network, LAN) verbunden ist, sind Sie vielleicht in der Lage, über das Netzwerk per TFTP von einem anderen Rechner aus zu booten. Wenn Sie dies vorhaben, müssen die Boot-Dateien in speziellen Verzeichnissen auf diesem entfernten Rechner abgelegt werden und der Rechner muss für das Booten speziell Ihrer Maschine konfiguriert werden.
Sie müssen einen TFTP-Server einrichten und in vielen Fällen auch einen DHCP-Server.
Das Dynamic-Host-Configuration-Protocol (DHCP) ist eine flexiblere, rückwärts-kompatible Erweiterung von BOOTP. Einige Systeme können nur per DHCP konfiguriert werden.
Das Trivial-File-Transfer-Protocol (TFTP) wird benutzt, um dem Client das Boot-Image zur Verfügung zu stellen. Theoretisch könnte jeder Server auf jeder Plattform benutzt werden, der diese Protokolle implementiert hat. In den Beispielen in diesem Abschnitt geben wir Kommandos für SunOS 4.x, SunOS 5.x (a.k.a. Solaris) und GNU/Linux an.
Ein Free-Software-DHCP-Server ist der ISC-dhcpd.
Für Debian GNU/Linux wird das dhcp3-server
-Paket empfohlen.
Hier eine beispielhafte Konfigurationsdatei (siehe
/etc/dhcp3/dhcpd.conf
):
option domain-name "example.com"; option domain-name-servers ns1.example.com; option subnet-mask 255.255.255.0; default-lease-time 600; max-lease-time 7200; server-name "servername"; subnet 192.168.1.0 netmask 255.255.255.0 { range 192.168.1.200 192.168.1.253; option routers 192.168.1.1; } host clientname { filename "/tftpboot/tftpboot.img"; server-name "servername"; next-server servername; hardware ethernet 01:23:45:67:89:AB; fixed-address 192.168.1.90; }
In diesem Beispiel gibt es einen Server servername
,
der alle Aufgaben von DHCP-Server, TFTP-Server und Netzwerk-Gateway
übernimmt. Sie müssen natürlich die Domain-Namen-Einträge ändern wie
auch den Servernamen und die Hardware-Adresse der Clients. Der Eintrag
filename
sollte der Name der Datei sein,
die per TFTP abgerufen wird.
Nachdem Sie die Konfigurationsdatei des dhcpd
verändert haben, starten Sie ihn mit
/etc/init.d/dhcpd3-server restart
neu.
Um den TFTP-Server einzurichten, sollten Sie als Erstes sicherstellen,
dass tftpd aktiv ist. Dies können Sie mit einer Zeile
wie der folgenden in /etc/inetd.conf
erreichen:
tftp dgram udp wait nobody /usr/sbin/tcpd in.tftpd /tftpboot
Die Debian-Pakete richten dies generell standardmäßig korrekt ein, wenn sie installiert werden.
Früher haben TFTP-Server das Verzeichnis /tftpboot
genutzt, um Images bereitzustellen. Allerdings verwenden Server aus
Debian GNU/Linux-Paketen unter Umständen andere Verzeichnisse, um den
Filesystem Hierarchy Standard
(Festlegungen, an welcher Stelle im Dateisystem bestimmte Daten abgespeichert
werden sollten) zu erfüllen. Zum Beispiel nutzt tftpd-hpa
standardmäßig /var/lib/tftpboot
. Sie müssen also
eventuell die Konfigurationsbeispiele aus diesem Kapitel entsprechend an
Ihre Situation anpassen.
Schauen Sie sich die Datei /etc/inetd.conf
an und merken
Sie sich das Verzeichnis, das als Argument hinter in.tftpd
eingetragen ist[2]; Sie werden es später benötigen.
Wenn Sie /etc/inetd.conf
ändern mussten, ist es nötig,
dem laufenden inetd-Prozess mitzuteilen, dass sich die
Konfigurationsdatei geändert hat. Auf einem Debian-Rechner erledigen Sie das
mit /etc/init.d/inetd reload
; auf anderen Maschinen
müssen Sie die Prozess-ID von inetd herausfinden und
kill -HUP
ausführen.
Prozess-ID
Wenn Sie vorhaben, Debian auf einer SGI-Maschine zu installieren, und Ihr TFTP-Server ist ein GNU/Linux-Rechner mit Linux 2.4, müssen Sie auf dem Server Folgendes ausführen
# echo 1 > /proc/sys/net/ipv4/ip_no_pmtu_disc
um „Path MTU discovery“ auszuschalten, andernfalls kann der PROM des SGI den Kernel nicht herunterladen. Außerdem müssen Sie sicherstellen, dass TFTP-Pakete von einem Quellport nicht größer als 32767 verschickt werden, sonst wird der Download nach dem ersten Paket stoppen. Es ist wieder der Linux-Kernel 2.4.x, der diesen Fehler im PROM auslöst, aber Sie können dies vermeiden, indem Sie
# echo "2048 32767" > /proc/sys/net/ipv4/ip_local_port_range
ausführen; dies stellt den Bereich der Quellports ein, den der Linux-TFTP-Server benutzt.
Als nächstes legen Sie die TFTP-Boot-Images, die Sie benötigen und die Sie wie in Abschnitt 4.2.1, „Wo Sie die Installations-Images finden“ beschrieben bekommen können, im tftpd-Boot-Image-Verzeichnis ab. Sie müssen unter Umständen einen Link von diesem Image auf die Datei anlegen, die tftpd benutzt, um einen speziellen Client zu booten. Bedauerlicherweise hängt der Name dieser Datei von dem TFTP-Client ab und es gibt dabei keine festen Standards.
Auf SGI-Maschinen können Sie sich auf den bootpd-Dienst
verlassen, um den Namen der TFTP-Datei festzulegen. Er wird entweder als
Wert für bf=
in /etc/bootptab
oder als Angabe für filename=
in
/etc/dhcpd.conf
angegeben.
[2]
Alle in Debian verfügbaren in.tftpd-Alternativen
sollten standardmäßig Protokolleinträge aller TFTP-Anfragen in das
System-Log schreiben. Einige unterstützen das Argument
-v
, um die Ausführlichkeit der Einträge zu
erhöhen. Es wird empfohlen, im Falle von Boot-Problemen diese Logeinträge
zu kontrollieren; sie sind ein guter Anfang, um der Fehlerursache
auf die Spur zu kommen.