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. Auf VMEbus-Systemen existiert noch eine andere Möglichkeit: die IP-Adresse kann manuell im Boot-ROM eingestellt werden. 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. Im Gegensatz zu OpenFirmware auf Sparc- und PowerPC-Maschinen kann die SRM-Konsole RARP nicht nutzen, um eine IP-Adresse zu beziehen; deswegen müssen Sie BOOTP verwenden, wenn Sie Ihren Alpha-Rechner per Netzwerk booten wollen Alpha-Systeme können auch per Netzwerk gebootet werden, indem man das DECNet MOP (Maintenance-Operations-Protocol) benutzt, aber dies wird hier nicht behandelt. Wahrscheinlich wird ein OpenVMS-Service vor Ort Sie gerne unterstützen, wenn Sie Probleme haben, Linux mit MOP auf Ihrem Alpha-Rechner zu booten. Sie können ebenfalls die IP-Konfiguration für Netzwerk-Schnittstellen direkt in der SRM-Konsole eingeben. 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. Um die Pre-Boot-Execution-Environment-Methode (PXE) von TFTP zu nutzen, benötigen Sie einen TFTP-Server mit Unterstützung für tsize. Auf einem &debian;-Server sind dies atftpd und tftpd-hpa; wir empfehlen, tftpd-hpa zu verwenden. &tftp-rarp.xml; &tftp-bootp.xml; &tftp-dhcp.xml; Den TFTP-Server aktivieren 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;-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 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. ; 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 Prozess-ID ausführen. 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 Alpha-Systemen Auf Alpha-Systemen müssen Sie den Dateinamen angeben (als relative Pfadangabe zum Boot-Image-Verzeichnis), indem Sie entweder den SRM-boot-Befehl mit dem Parameter -file benutzen, oder Sie setzen die Umgebungsvariable BOOT_FILE. Alternativ können Sie auch den Dateinamen per BOOTP übergeben (benutzen Sie im ISC dhcpd die Anweisung filename). Im Unterschied zu OpenFirmware gibt es auf SRM keinen Standard-Dateinamen, Sie müssen also mit einer dieser Methoden einen Dateinamen angeben. 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 BVM-/Motorola-Systemen Auf BVM- und Motorola VMEbus-Systemen kopieren Sie die Dateien &bvme6000-tftp-files; nach /tftpboot/. Als nächstes konfigurieren Sie Ihr Boot-ROM oder Ihren BOOTP-Server, so dass zunächst die Datei tftplilo.bvme bzw. tftplilo.mvme vom TFTP-Server geladen wird. Lesen Sie die tftplilo.txt-Datei für Ihre Unterarchitektur, falls Sie zusätzliche Informationen zur Konfiguration benötigen. 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.