Lassen Sie uns in diesem Artikel darüber diskutieren, wie man tftpboot einrichtet, einschließlich der Installation notwendiger Pakete und tftpboot-Konfigurationen.
Der TFTP-Startdienst wird hauptsächlich verwendet, um die Betriebssysteminstallation auf einem Remotecomputer durchzuführen, für den Sie keinen physischen Zugriff haben. Um die Installation des Betriebssystems erfolgreich durchzuführen, sollte es eine Möglichkeit geben, den Remote-Server neu zu starten – entweder mit Wakeonlan oder jemandem, der ihn manuell neu startet, oder auf andere Weise.
In diesen Szenarien können Sie die tftpboot-Dienste entsprechend einrichten und die Installation des Betriebssystems aus der Ferne durchführen (Sie benötigen die Autoyast-Konfigurationsdatei, um die Installationsschritte des Betriebssystems zu automatisieren).
Ein Schritt-für-Schritt-Verfahren wird vorgestellt in diesem Artikel für SLES10-SP3 in 64-Bit-Architektur. Diese Schritte sind jedoch denen anderer Linux-Distributionen ziemlich ähnlich.
Erforderliche Pakete
Die folgenden Pakete müssen für das tftpboot-Setup installiert werden.
- DHCP-Dienstpakete:dhcp-3.0.7-7.5.20.x86_64.rpm und dhcp-server-3.0.7-7.5.20.x86_64.rpm
- tftpboot-Paket:tftp-0.48-1.6.x86_64.rpm
- pxeboot-Paket:syslinux-3.11-20.14.26.x86_64.rpm
Paketinstallation
Installieren Sie die Pakete für die DHCP-Serverdienste:
$ rpm -ivh dhcp-3.0.7-7.5.20.x86_64.rpm Preparing... ########################################### [100%] 1:dhcp ########################################### [100%] $ rpm -ivh dhcp-server-3.0.7-7.5.20.x86_64.rpm Preparing... ########################################### [100%] 1:dhcp ########################################### [100%] $ rpm -ivh tftp-0.48-1.6.x86_64.rpm $ rpm -ivh syslinux-3.11-20.14.26.x86_64.rpm
Nach der Installation des syslinux-Pakets wird die Datei pxelinux.0 im Verzeichnis /usr/share/pxelinux/ erstellt. Dies ist erforderlich, um Installationskernel- und Initrd-Images auf dem Client-Rechner zu laden.
Überprüfen Sie, ob die Pakete erfolgreich installiert wurden.
$ rpm -qa | grep dhcp $ rpm -qa | grep tftp
Laden Sie den entsprechenden tftpserver aus dem Repository Ihrer jeweiligen Linux-Distribution herunter.
Schritte zum Einrichten von tftpboot
Schritt 1:Verzeichnis /tftpboot erstellen
Erstellen Sie das tftpboot-Verzeichnis im Stammverzeichnis ( / ), wie unten gezeigt.
# mkdir /tftpboot/
Schritt 2:Kopieren Sie das pxelinux-Image
Das PXE-Linux-Image ist verfügbar, sobald Sie das syslinux-Paket installiert haben. Kopieren Sie dies wie unten gezeigt in den /tftpboot-Pfad.
# cp /usr/share/syslinux/pxelinux.0 /tftpboot
Schritt 3:Mountpunkt für ISO erstellen und ISO-Image mounten
Nehmen wir an, wir installieren die Linux-Distribution SLES10 SP3 auf einem Remote-Server. Wenn Sie die SUSE10-SP3-DVD haben, legen Sie sie in das Laufwerk ein oder mounten Sie das ISO-Image, das Sie haben. Hier wurde das ISO-Image wie folgt gemountet:
# mkdir /tftpboot/sles10_sp3 # mount -o loop SLES-10-SP3-DVD-x86_64.iso /tftpboot/sles10_sp3
Weitere Informationen finden Sie in unserem früheren Artikel zum Mounten und Anzeigen von ISO-Dateien.
Schritt 4:Kopieren Sie die vmlinuz- und initrd-Images nach /tftpboot
Kopieren Sie die initrd wie unten gezeigt in das tftpboot-Verzeichnis.
# cd /tftpboot/sles10_sp3/boot/x86_64/loader # cp initrd linux /tftpboot/
Schritt 5:pxelinux.cfg-Verzeichnis erstellen
Erstellen Sie das Verzeichnis pxelinux.cfg unter /tftpboot und definieren Sie die pxe-Boot-Definitionen für den Client.
# mkdir /tftpboot/pxelinux.cfg # cat >/tftpboot/pxelinux.cfg/default default linux label linux kernel linux append initrd=initrd showopts instmode=nfs install=nfs://192.168.1.101/tftpboot/sles10_sp3/
Die folgenden Optionen werden für verwendet,
- kernel – gibt an, wo der Linux-Installationskernel auf dem TFTP-Server zu finden ist.
- install – gibt Boot-Argumente an, die an den Installationskernel übergeben werden.
Gemäß den obigen Einträgen wird der nfs-Installationsmodus zum Bereitstellen von Installations-RPMs und Konfigurationsdateien verwendet. Lassen Sie also das NFS-Setup auf diesem Computer mit dem /tftpboot-Verzeichnis in der exportierten Liste. Sie können die „autoyast“-Option mit der autoyast-Konfigurationsdatei hinzufügen, um die Installationsschritte des Betriebssystems zu automatisieren, andernfalls müssen Sie die Installationsschritte manuell ausführen.
Schritt 6:Ändern Sie den Eigentümer und die Berechtigung für das /tftpboot-Verzeichnis
Weise niemand:nobody dem Verzeichnis /tftpboot zu.
# chown nobody:nobody /tftpboot # chmod 777 /tftpboot
Schritt 7:Ändern Sie /etc/dhcpd.conf
Ändern Sie /etc/dhcpd.conf wie unten gezeigt.
# cat /etc/dhcpd.conf ddns-update-style none; default-lease-time 14400; filename "pxelinux.0"; # IP address of the dhcp server nothing but this machine. next-server 192.168.1.101; subnet 192.168.1.0 netmask 255.255.255.0 { # ip distribution range between 192.168.1.1 to 192.168.1.100 range 192.168.1.1 192.168.1.100; default-lease-time 10; max-lease-time 10; }
Geben Sie die Schnittstelle in /etc/syslinux/dhcpd an, um DHCP-Anfragen von Clients abzuhören.
# cat /etc/syslinux/dhcpd | grep DHCPD_INTERFACE DHCPD_INTERFACE=”eth1”;
Hier hat dieser Computer die IP-Adresse 192.168.1.101 auf dem eth1-Gerät. Geben Sie also eth1 für DHCPD_INTERFACE an, wie oben gezeigt.
Beachten Sie in diesem Zusammenhang unseren früheren Artikel über 7 Beispiele zur Konfiguration der Netzwerkschnittstelle mit ifconfig.
Schritt 8:Ändern Sie /etc/xinetd.d/tftp
Ändern Sie die Datei /etc/xinetd.d/tftp, um Folgendes widerzuspiegeln. Standardmäßig ist der Wert für den Deaktivierungsparameter „yes“, stellen Sie bitte sicher, dass Sie ihn auf „no“ ändern, und Sie müssen den server_args-Eintrag auf -s /tftpboot ändern.
# cat /etc/xinetd.d/tftp service tftp { socket_type = dgram protocol = udp wait = yes user = root server = /usr/sbin/in.tftpd server_args = -s /tftpboot disable = no }
Schritt 9:Keine Änderungen in /etc/xinetd.conf
Die Datei etc/xinetd.conf muss nicht geändert werden. Verwenden Sie die in der Datei xinetd.conf angegebenen Standardwerte.
Schritt 10:Starten Sie die xinetd-, dhcpd- und nfs-Dienste neu
Starten Sie diese Dienste wie unten gezeigt neu.
# /etc/init.d/xinetd restart # /etc/init.d/dhcpd restart # /etc/init.d/nfsserver restart
Nach dem Neustart der NFS-Dienste können Sie die exportierte Verzeichnisliste (/tftpboot) mit dem folgenden Befehl anzeigen:
# showmount -e
Schließlich ist das tftpboot-Setup fertig und jetzt kann der Client-Rechner gebootet werden, nachdem das erste Boot-Gerät als „Netzwerk“ in den BIOS-Einstellungen geändert wurde.
Wenn Sie auf einen tftp-Fehler stoßen, können Sie die Fehlerbehebung durchführen, indem Sie einige Dateien über den tftpd-Dienst abrufen.
Rufen Sie eine Datei vom TFTP-Server ab, um sicherzustellen, dass der TFTP-Dienst mit dem TFTP-Client ordnungsgemäß funktioniert. Nehmen wir an, dass die Datei sample.txt im Verzeichnis /tftpboot vorhanden ist.
$ tftp -v 192.168.1.101 -c get sample.txt