Dateien vorbereiten für TFTP-Netzwerk-Boot
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 oder einen
RARP-Server oder einen
BOOTP-Server.
Das Reverse-Address-Resolution-Protocol (RARP)
ist eine Möglichkeit, dem Client mitzuteilen, welche IP-Adresse er selbst
verwenden soll. Ein anderer Weg wäre, das BOOTP-Protokoll zu verwenden.
BOOTP ist ein IP-Protokoll, das einem
Computer seine IP-Adresse mitteilt und wo er im Netzwerk ein Boot-Image
findet.
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.
Auf PowerPCs, wenn Sie einen NewWorld-PowerMac haben, ist es eine
gute Idee, DHCP statt BOOTP zu benutzen. Einige der Maschinen der letzten
Generationen können nicht per BOOTP starten.
Einige ältere HPPA-Maschinen (wie z.B. 715/75) funktionieren eher
mit RBOOTD als mit BOOTP. Ein rbootd-Paket ist in
Debian verfügbar.
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.
Für einen &debian-gnu;-Server empfehlen wir tftpd-hpa.
Es wurde vom gleichen Autor geschrieben wie der
syslinux-Bootloader und daher ist die Wahrscheinlichkeit,
dass er Probleme verursacht, hierbei wohl am geringsten. Eine gute Alternative
ist atftpd.
&tftp-rarp.xml;
&tftp-dhcp.xml;
&tftp-bootp.xml;
Den TFTP-Server aktivieren
Um den TFTP-Server einzurichten, sollten Sie als Erstes sicherstellen,
dass tftpd aktiv ist.
Im Falle von tftpd-hpa gibt es zwei Wege, auf dem
der Dienst zum Laufen gebracht werden kann. Er kann bei Bedarf vom
inetd-Daemon des Systems gestartet werden oder er
kann eingerichtet werden, als eigenständiger Daemon zu laufen. Welche der
beiden Methoden verwendet wird, wird bei der Installation des Pakets ausgewählt
und kann später geändert werden, indem das Paket rekonfiguriert wird.
Früher haben TFTP-Server das Verzeichnis /tftpboot
genutzt, um Images bereitzustellen. Allerdings verwenden Server aus
&debian-gnu;-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.
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.
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.
Die TFTP-Images an ihren Platz befördern
Als nächstes legen Sie die TFTP-Boot-Images, die Sie benötigen und die Sie
wie in 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 NewWorld-PowerMacs müssen Sie den yaboot-Bootloader
als TFTP-Boot-Image einstellen. Yaboot wird dann
selbst das Kernel- und RAM-Disk-Image per TFTP abrufen. Sie müssen die
folgenden Dateien aus dem netboot/-Verzeichnis
herunterladen:
vmlinux
initrd.gz
yaboot
yaboot.conf
boot.msg
Alles was Sie benötigen, um per PXE zu booten, ist bereits in dem
netboot/netboot.tar.gz-Tarball eingerichtet.
Entpacken Sie den Tarball einfach in das
tftpd-Boot-Image-Verzeichnis. Stellen Sie sicher, dass
der DHCP-Server konfiguriert ist, pxelinux.0 als
zu bootende Datei zum tftpd weiterzuleiten.
Um per PXE zu booten, müssen Sie nur den
netboot/netboot.tar.gz-Tarball einrichten.
Entpacken Sie den Tarball einfach in das
tftpd-Boot-Image-Verzeichnis. Stellen Sie sicher, dass
der DHCP-Server konfiguriert ist, /debian-installer/ia64/elilo.efi
als zu bootende Datei zum tftpd weiterzuleiten.
TFTP-Boot von SPARC-Systemen
Einige SPARC-Architekturen fügen die Namen der Unterarchitekturen
wie SUN4M
oder SUN4C
zum Dateinamen hinzu;
Wenn Sie also ein System der Unterarchitektur SUN4C haben und die IP-Adresse
ist 192.168.1.3, wäre der Dateiname C0A80103.SUN4C.
Allerdings gibt es auch Unterarchitekturen, wo die Datei, nach der der
Client sucht, einfach client-ip-in-hex ist. Ein
einfacher Weg den Hexadezimal-Code für die IP-Adresse herauszufinden ist,
den folgenden Befehl in eine Shell einzugeben (angenommen, die IP-Adresse
der Maschine wäre 10.0.0.4):
$ printf '%.2x%.2x%.2x%.2x\n' 10 0 0 4
Um den korrekten Dateinamen zu bekommen, müssen Sie alle Buchstaben
in Großbuchstaben ändern und falls nötig den Namen der Unterarchitektur
hinzufügen.
Wenn Sie all dies korrekt erledigt haben, sollte der Befehl
boot net unter OpenPROM das Image laden. Falls das
Image nicht gefunden werden kann, versuchen Sie, die Protokolle auf Ihrem
tftp-Server zu kontrollieren, um herauszufinden, welcher Image-Name
angefordert wurde.
Manche Sparc-Systeme kann man zwingen, nach einem bestimmten Dateinamen
zu suchen, indem man ihn ans Ende des OpenPROM-Boot-Befehls anhängt, z.B.
boot net my-sparc.image. Die Datei muss dabei immer
in dem Verzeichnis liegen, in dem der TFTP-Server sucht.
TFTP-Boot von SGI-Systemen
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.