PXE Booten vom Netzwerk (DHCP, TFTP, NFS, Samba, FTP, HTTP) - Linux ServerDas Booten vom Netzwerk wird anhand von Beispielkonfigurationen gezeigt. Alle gezeigten Konfigurationen funktionieren und können verwendet werden. Wenn Sie das Konzept verstanden haben, dann können Sie Ihre eigenen Servereinstellungen und Verzeichnisstrukturen verwenden. Alles ist flexibel aufgebaut. Sie können funktionierendes ein Beispiel mit der kompletten Verzeichnisstruktur herunterladen: netboot-sample.tar.gz, für ISO netboot-sample-iso.tar.gz Die Download Links in der Beschreibung verweisen auf die 64-Bit Version. Für die Erstellung einer 32-Bit Version laden Sie die entsprechende Datei aus dem Download Bereich herunter. Die Mindestvoraussetzungen für das Booten vom Netzwerk sind ein DHCP Server und ein TFTP Server. Die Plop Linux Dateien werden via NFS Share, Samba Share, TFTP, FTP oder HTTP geladen bzw. zugegriffen. Das Konfigurieren wird anhand eines Beispiels erklärt. Die Voraussetzungen sind
Es funktioniert aber auch mit anderen IP Adressen! Hier sind die Konfigurationsdateien in einem Archiv zum downloaden: pxeconfs.tar.gz
1. Setup1.1. Entpacken der Plop Linux DateienEntpacken Sie die Datei ploplinux-pxeboot.tar.gz in Ihr Hauptverzeichnis. tar xfz ploplinux-pxeboot.tar.gz -C / Jetzt haben sie die Grundlegende Verzeichnisstruktur und die PXE Basisdateien in '/tftpboot'. Entpacken Sie die Datei ploplinux-24.2-x86_64.tar.gz nach '/tmp'. tar xfz ploplinux-24.2-x86_64.tar.gz -C /tmp Verschieben Sie die Dateien nach '/tftpboot/ploplinux-netboot/'. mv /tmp/ploplinux-24.2/* /tftpboot/ploplinux-netboot/ Nun sollten Sie folgende Verzeichnisse und Dateien haben /tftpboot/ /ploplinux-netboot/ /boot.msg /memtest /menu.c32 /spash.png /vesamenu.c32 /pxelinux.0 /ploplinux/ /bin/ /bin.sqfs /etc.tgz /lib.sqfs /opt/ /ploplinux.version /pxelinux.cfg/ /default /syslinux/ /kernel/ /bzImage /initramfs.gz /plop/ /plpbt.bin /plpinstc.com 1.2. Setup des DHCP ServersSie benötigen die DHCP Server Software. Sollte Ihre Distribution keine zur Verfügung stellen, dann können Sie dhcp-4.4.3.tar.gz (oder die neueste Version aus dem Internet) verwenden. Sie brauchen jedoch Erfahrung mit kompilieren und installieren von Programmen.
Hier ist eine Beispiel DHCP Server Konfiguration. Dateiname: /etc/dhcp/dhcpd.conf subnet 10.0.0.0 netmask 255.255.255.0 { option routers 10.0.0.1; } allow booting; allow bootp; # Standard configuration directives... option domain-name "plop"; option subnet-mask 255.255.255.0; option broadcast-address 10.0.0.255; option domain-name-servers 10.0.0.1; option routers 10.0.0.1; # Group the PXE bootable hosts together group { # PXE-specific configuration directives... next-server 10.0.0.1; filename "/ploplinux-netboot/pxelinux.0"; # You need an entry like this for every host # unless you're using dynamic addresses host testpc { hardware ethernet 00:0C:6E:A6:1A:E6; fixed-address 10.0.0.250; } } den Server starten Sie mit 'dhcpd'. Hinweis: Mit 'dhcpd -f' starten Sie den DHCP Server im Vordergrund und erhalten Debuginformationen. Hinweis: Um eine andere TFTP Server IP Adresse zu verwenden, ändern Sie die IP Adresse in der Zeile mit 'next-server'. 1.3. Setup des TFTP ServersLaden Sie die neueste Version des TFTP Servers von ftp://www.kernel.org/pub/software/network/tftp/ herunter und installieren Sie den Server mit './configure --prefix=/usr && make && make install'. Wir starten den TFTP Server mittels Xinetd. Hier ist die Grundkonfiguration für Xinetd. Dateiname: /etc/xinetd.conf # # Simple configuration file for xinetd # # Some defaults, and include /etc/xinetd.d/ defaults { log_type = SYSLOG daemon info log_on_success = PID HOST DURATION log_on_failure = HOST instances = 100 per_source = 20 } includedir /etc/xinetd.d
Hier ist die Konfiguration für den TFTP Server. # default: off # description: The tftp server serves files using the trivial # file transfer \ # protocol. The tftp protocol is often used to boot diskless \ # workstations, download configuration files to # network-aware printers, \ # and to start the installation process for some operating systems. service tftp { socket_type = dgram protocol = udp wait = yes user = root #only_from = 10.0.0.1 server = /usr/sbin/in.tftpd server_args = -s /tftpboot disable = no per_source = 11 cps = 100 2 } Xinetd wird mit dem Befehl 'xinetd' gestartet. Hinweis: Mit 'xinetd -d' starten Sie den Xinetd im Vordergrund und erhalten Debuginformationen. 2. NFS2.1. Booten mit NFSVoraussetzung ist der DHCP und TFTP Server (Setup). Grundkonfigurationen für den NFS Server, ohne Rücksicht auf Sicherheitsaspekte: Dateiname: /etc/exports /tftpboot/ploplinux-netboot -no_subtree_check 10.0.0.250 Dateiname: /etc/hosts.allow portmap: 10.0.0.0/255.255.255.0 lockd: 10.0.0.0/255.255.255.0 rquotad: 10.0.0.0/255.255.255.0 mountd: 10.0.0.0/255.255.255.0 statd: 10.0.0.0/255.255.255.0 Dateiname: /etc/hosts.deny portmap:ALL lockd:ALL mountd:ALL rquotad:ALL statd:ALL Parameter: nfsmount=NFSSHARE|PARAMETER
Beispiel: nfsmount=10.0.0.1:/tftpboot/ploplinux-netboot
Dateiname: /tftpboot/ploplinux-netboot/pxelinux.cfg/nfs.conf # Boot from NFS label linux-nfs menu label Plop Linux - NFS kernel syslinux/kernel/bzImage append initrd=syslinux/kernel/initramfs.gz vga=1 nfsmount=10.0.0.1:/tftpboot/ploplinux-netboot nomodeset label linuxfb-nfs menu label Plop Linux framebuffer mode - NFS kernel syslinux/kernel/bzImage append initrd=syslinux/kernel/initramfs.gz vga=0x317 nfsmount=10.0.0.1:/tftpboot/ploplinux-netboot nfs.conf wird von /tftpboot/ploplinux-netboot/pxelinux.cfg/default geladen. Wenn der DHCP, XINET und NFS Server richtig laufen, dann sollten Sie Plop Linux via Netzwerk booten können. 2.2. ISO über NFS bootenSie brauchen die ISO Datei ploplinux-24.2-x86_64.iso, die Verzeichnisstruktur und Dateien von ploplinux-pxeboot.tar.gz und das 'syslinux' Verzeichnis aus ploplinux-24.2-x86_64.tar.gz. Der DHCP und TFTP Server müssen funktionieren. Grundkonfigurationen für den NFS Server, ohne Rücksicht auf Sicherheitsaspekte: Dateiname: /etc/exports /tftpboot/ploplinux-netboot -no_subtree_check 10.0.0.250 Dateiname: /etc/hosts.allow portmap: 10.0.0.0/255.255.255.0 lockd: 10.0.0.0/255.255.255.0 rquotad: 10.0.0.0/255.255.255.0 mountd: 10.0.0.0/255.255.255.0 statd: 10.0.0.0/255.255.255.0 Dateiname: /etc/hosts.deny portmap:ALL lockd:ALL mountd:ALL rquotad:ALL statd:ALL Kopieren Sie ploplinux-24.2-x86_64.iso in das Verzeichnis '/tftpboot/ploplinux-netboot/'. Erstellen Sie einen Symlink 'ln -s ploplinux-24.2-x86_64.iso ploplinux.iso'.
Parameter: nfsmount=NFSSHARE|PARAMETER iso_filename=ISODATEI
Am Server: /tftpboot/ploplinux-netboot/ploplinux.iso
Dateiname: /tftpboot/ploplinux-netboot/pxelinux.cfg/nfs-iso.conf # Boot from NFS - ISO label linux-nfs-iso menu label Plop Linux - NFS ISO kernel syslinux/kernel/bzImage append initrd=syslinux/kernel/initramfs.gz vga=1 nfsmount=10.0.0.1:/tftpboot/ploplinux iso_filename=ploplinux.iso nomodeset label linuxfb-nfs-iso menu label Plop Linux framebuffer mode - NFS ISO kernel syslinux/kernel/bzImage append initrd=syslinux/kernel/initramfs.gz vga=0x317 nfsmount=10.0.0.1:/tftpboot/ploplinux iso_filename=ploplinux.iso
nfs-iso.conf wird von /tftpboot/ploplinux-netboot/pxelinux.cfg/default 3. Samba Netzlaufwerk3.1. Booten mit Samba NetzlaufwerkVoraussetzung ist der DHCP und TFTP Server (Setup). Grundkonfiguration für den Samba Server, ohne Rücksicht auf Sicherheitsaspekte: Dateiname: /etc/samba/smb.conf ;=== CUT ===== [ploplinux-netboot] path = /tftpboot/ploplinux-netboot writable = no read only = no ;=== CUT ===== Parameter: smbmount=//10.0.0.1/ploplinux:SMBUSER:SMBPASSWORD
SMBUSER: Benutzers der Zugriff auf das Netzlaufwerk hat. Sollten alle Benutzer Zugriff haben, dann verwenden Sie "" für SMBUSER
Beispiel: smbmount=//10.0.0.1/ploplinux:myuser:mypass
Dateiname: /tftpboot/ploplinux-netboot/pxelinux.cfg/smb.conf # Boot from Samba/Windows share label linux-smb menu label Plop Linux - Samba kernel syslinux/kernel/bzImage append initrd=syslinux/kernel/initramfs.gz vga=1 smbmount=//10.0.0.1/ploplinux-netboot:SMBUSER:SMBPASSWORD nomodeset label linuxfb-smb menu label Plop Linux framebuffer mode - Samba kernel syslinux/kernel/bzImage append initrd=syslinux/kernel/initramfs.gz vga=0x317 smbmount=//10.0.0.1/ploplinux-netboot:SMBUSER:SMBPASSWORD
smb.conf wird von /tftpboot/ploplinux-netboot/pxelinux.cfg/default Wenn der DHCP, XINET und Samba Server richtig laufen, dann sollten Sie Plop Linux via Netzwerk booten können. 3.2. ISO über Samba Netzlaufwerk bootenSie brauchen die ISO Datei ploplinux-24.2-x86_64.iso, die Verzeichnisstruktur und Dateien von ploplinux-pxeboot.tar.gz und das 'syslinux' Verzeichnis aus ploplinux-24.2-x86_64.tar.gz. Der DHCP und TFTP Server müssen funktionieren. Grundkonfiguration für den Samba Server, ohne Rücksicht auf Sicherheitsaspekte: Dateiname: /etc/samba/smb.conf ;=== CUT ===== [ploplinux-netboot] path = /tftpboot/ploplinux-netboot writable = no read only = no ;=== CUT ===== Erstellen Sie die Datei '/tftpboot/ploplinux-netboot/filelist-iso' für das Samba booten. In der Datei steht der ISO Dateiname. cd /tftpboot/ploplinux-netboot Kopieren Sie ploplinux-24.2-x86_64.iso in das Verzeichnis '/tftpboot/ploplinux-netboot/'. Erstellen Sie einen Symlink 'ln -s ploplinux-24.2-x86_64.iso ploplinux.iso'. Parameter: smbmount=//10.0.0.1/ploplinux:SMBUSER:SMBPASSWORD iso_filename=ISOFILE
SMBUSER: Benutzers der Zugriff auf das Netzlaufwerk hat. Sollten alle Benutzer Zugriff haben, dann verwenden Sie "" für SMBUSER
Beispiel: smbmount=//10.0.0.1/ploplinux:myuser:mypass iso_filename=ploplinux.iso
Dateiname: /tftpboot/ploplinux-netboot/pxelinux.cfg/smb-iso.conf # Boot from Samba/Windows share - ISO label linux-smb-iso menu label Plop Linux - Samba ISO kernel syslinux/kernel/bzImage append initrd=syslinux/kernel/initramfs.gz vga=1 smbmount=//10.0.0.1/ploplinux-netboot:SMBUSER:SMBPASSWORD iso_filename=ploplinux.iso nomodeset label linuxfb-smb-iso menu label Plop Linux framebuffer mode - Samba ISO kernel syslinux/kernel/bzImage append initrd=syslinux/kernel/initramfs.gz vga=0x317 smbmount=//10.0.0.1/ploplinux-netboot:SMBUSER:SMBPASSWORD iso_filename=ploplinux.iso
smb-iso.conf wird von /tftpboot/ploplinux-netboot/pxelinux.cfg/default Wenn der DHCP, XINET und Samba Server richtig laufen, dann sollten Sie Plop Linux via Netzwerk booten können. 4. TFTP4.1. Nur mit TFTP bootenVoraussetzung ist der DHCP und TFTP Server (Setup). Erstellen Sie die Datei '/tftpboot/ploplinux-netboot/filelist' in der alle Dateien für das Booten von TFTP aufgelistet sind. cd /tftpboot Beispieldatei: /tftpboot/ploplinux-netboot/tftpfilelist Parameter: tftpboot=SERVER|FILELIST dir=PLOPLINUXDIRECTORY Beispiel: tftpboot=10.0.0.1|ploplinux-netboot/tftpfilelist dir=/ploplinux-netboot/ploplinux
Dateiname: /tftpboot/ploplinux-netboot/pxelinux.cfg/tftp.conf # boot from TFTP label linux-tftp menu label Plop Linux - TFTP kernel syslinux/kernel/bzImage append initrd=syslinux/kernel/initramfs.gz vga=1 tftpboot=10.0.0.1|ploplinux-netboot/tftpfilelist dir=/ploplinux-netboot/ploplinux nomodeset label linuxfb-tftp menu label Plop Linux framebuffer mode - TFTP kernel syslinux/kernel/bzImage append initrd=syslinux/kernel/initramfs.gz vga=0x317 tftpboot=10.0.0.1|ploplinux-netboot/tftpfilelist dir=/ploplinux-netboot/ploplinux
tftp.conf wird von /tftpboot/ploplinux-netboot/pxelinux.cfg/default 4.2. ISO über TFTP bootenSie brauchen die ISO Datei ploplinux-24.2-x86_64.iso, die Verzeichnisstruktur und Dateien von ploplinux-pxeboot.tar.gz und das 'syslinux' Verzeichnis aus ploplinux-24.2-x86_64.tar.gz. Der DHCP und TFTP Server müssen funktionieren. Erstellen Sie die Datei '/tftpboot/ploplinux-netboot/tftpfilelist-iso' für das TFTP booten. In der Datei steht der ISO Dateiname. cd /tftpboot/ploplinux-netboot Kopieren Sie ploplinux-24.2-x86_64.iso in das Verzeichnis '/tftpboot/ploplinux-netboot/'. Erstellen Sie einen Symlink 'ln -s ploplinux-24.2-x86_64.iso ploplinux.iso'. Parameter: tftpboot=SERVER|FILELIST iso_filename=ISOFILE
Beispiel: tftpboot=10.0.0.1|ploplinux-netboot/tftpfilelist-iso iso_filename=ploplinux-netboot/ploplinux.iso
Dateiname: /tftpboot/ploplinux-netboot/pxelinux.cfg/tftp-iso.conf # boot from TFTP - ISO label linux-tftp-iso menu label Plop Linux - TFTP ISO kernel syslinux/kernel/bzImage append initrd=syslinux/kernel/initramfs.gz vga=1 tftpboot=10.0.0.1|ploplinux-netboot/tftpfilelist-iso iso_filename=ploplinux-netboot/ploplinux.iso nomodeset label linuxfb-tftp-iso menu label Plop Linux framebuffer mode - TFTP ISO kernel syslinux/kernel/bzImage append initrd=syslinux/kernel/initramfs.gz vga=0x317 tftpboot=10.0.0.1|ploplinux-netboot/tftpfilelist-iso iso_filename=ploplinux-netboot/ploplinux.iso
tftp-iso.conf wird von /tftpboot/ploplinux-netboot/pxelinux.cfg/default 5. FTP5.1. Booten mit FTPVoraussetzung ist der DHCP und TFTP Server (Setup) und ein FTP Server. Das FTP Hauptverzeichnis befindet ist in diesem Beispiel '/tftpboot/'. Erstellen Sie die Datei '/tftpboot/ploplinux-netboot/filelist' in der alle Dateien für das Booten von FTP aufgelistet sind. cd /tftpboot/ploplinux-netboot Beispieldatei: /tftpboot/ploplinux-netboot/ftpfilelist Parameter: url=ftp://FTPUSER:FTPPASSWORD@FTPSERVER/FTPDIRECTORY|FILELIST Beispiel: url=ftp://myuser:mypass@10.0.0.1/ploplinux-netboot|/ftpfilelist
Dateiname: /tftpboot/ploplinux-netboot/pxelinux.cfg/ftp.conf # boot from FTP label linux-ftp menu label Plop Linux - FTP kernel syslinux/kernel/bzImage append initrd=syslinux/kernel/initramfs.gz vga=1 url=ftp://myuser:mypass@10.0.0.1/ploplinux-netboot|/ftpfilelist nomodeset label linuxfb-ftp menu label Plop Linux framebuffer mode - FTP kernel syslinux/kernel/bzImage append initrd=syslinux/kernel/initramfs.gz vga=0x317 url=ftp://myuser:mypass@10.0.0.1/ploplinux-netboot|/ftpfilelist
ftp.conf wird von /tftpboot/ploplinux-netboot/pxelinux.cfg/default 5.2. Boot ISO über FTPSie brauchen die ISO Datei ploplinux-24.2-x86_64.iso, die Verzeichnisstruktur und Dateien von ploplinux-pxeboot.tar.gz und das 'syslinux' Verzeichnis aus ploplinux-24.2-x86_64.tar.gz. Der DHCP und TFTP Server müssen funktionieren. Ein FTP Server muß vorhanden sein. Das FTP Hauptverzeichnis befindet ist in diesem Beispiel '/tftpboot/'. Erstellen Sie die Datei '/tftpboot/ploplinux-netboot/ftpfilelist-iso' für das FTP booten. In der Datei steht der ISO Dateiname. cd /tftpboot/ploplinux-netboot Kopieren Sie ploplinux-24.2-x86_64.iso in das Verzeichnis '/tftpboot/ploplinux-netboot/'. Erstellen Sie einen Symlink 'ln -s ploplinux-24.2-x86_64.iso ploplinux.iso'. Parameter: url=ftp://FTPUSER:FTPPASSWORD@FTPSERVER/FTPDIRECTORY|FILELIST iso_filename=ISOFILE Beispiel: url=ftp://myuser:mypass@10.0.0.1/ploplinux-netboot|/ftpfilelist-iso iso_filename=ploplinux.iso
Dateiname: /tftpboot/ploplinux-netboot/pxelinux.cfg/ftp-iso.conf # boot from FTP - ISO label linux-ftp-iso menu label Plop Linux - FTP ISO kernel syslinux/kernel/bzImage append initrd=syslinux/kernel/initramfs.gz vga=1 url=ftp://myuser:mypass@10.0.0.1/ploplinux-netboot|/ftpfilelist-iso iso_filename=ploplinux.iso nomodeset label linuxfb-ftp-iso menu label Plop Linux framebuffer mode - FTP ISO kernel syslinux/kernel/bzImage append initrd=syslinux/kernel/initramfs.gz vga=0x317 url=ftp://myuser:mypass@10.0.0.1/ploplinux-netboot|/ftpfilelist-iso iso_filename=ploplinux.iso
ftp-iso.conf wird von /tftpboot/ploplinux-netboot/pxelinux.cfg/default 6. HTTP6.1. Boot mit HTTPVoraussetzung ist der DHCP und TFTP Server (Setup) und ein WEB Server. Das Virtual Host Hauptverzeichnis ist in diesem Beispiel '/tftpboot/'. Erstellen Sie die Datei '/tftpboot/ploplinux-netboot/filelist' in der alle Dateien für das Booten von HTTP aufgelistet sind. cd /tftpboot/ploplinux-netboot Beispieldatei: /tftpboot/ploplinux-netboot/webfilelist Parameter: url=http://USER:PASS@WEBSERVER/WEBDIRECTORY|FILELIST
Beispiel: url=http://www.ploplinux.com/ploplinux-netboot|/webfilelist
Dateiname: /tftpboot/ploplinux-netboot/pxelinux.cfg/http.conf # boot from HTTP label linux-http menu label Plop Linux - HTTP kernel syslinux/kernel/bzImage append initrd=syslinux/kernel/initramfs.gz vga=1 url=http://www.ploplinux.com/ploplinux-netboot|/webfilelist nomodeset label linuxfb-http menu label Plop Linux framebuffer mode - HTTP kernel syslinux/kernel/bzImage append initrd=syslinux/kernel/initramfs.gz vga=0x317 url=http://www.ploplinux.com/ploplinux-netboot|/webfilelist
http.conf wird von /tftpboot/ploplinux-netboot/pxelinux.cfg/default 6.2. Boot ISO über HTTPSie brauchen die ISO Datei ploplinux-24.2-x86_64.iso, die Verzeichnisstruktur und Dateien von ploplinux-pxeboot.tar.gz und das 'syslinux' Verzeichnis aus ploplinux-24.2-x86_64.tar.gz. Der DHCP und TFTP Server müssen funktionieren. Ein WEB Server muß vorhanden sein. Das Virtual Host Hauptverzeichnis ist in diesem Beispiel '/tftpboot/'. Erstellen Sie die Datei '/tftpboot/ploplinux-netboot/webfilelist-iso' für das HTTP booten. In der Datei steht der ISO Dateiname. cd /tftpboot/ploplinux-netboot Kopieren Sie ploplinux-24.2-x86_64.iso in das Verzeichnis '/tftpboot/ploplinux-netboot/'. Erstellen Sie einen Symlink 'ln -s ploplinux-24.2-x86_64.iso ploplinux.iso'. Parameter: url=http://USER:PASS@WEBSERVER/WEBDIRECTORY|FILELIST iso_filename=ISOFILE
Beispiel: url=http://www.ploplinux.com/ploplinux-netboot|/webfilelist-iso iso_filename=ploplinux.iso
Dateiname: /tftpboot/ploplinux-netboot/pxelinux.cfg/http-iso.conf # boot from HTTP - ISO label linux-http-iso menu label Plop Linux - HTTP ISO kernel syslinux/kernel/bzImage append initrd=syslinux/kernel/initramfs.gz vga=1 url=http://www.ploplinux.com/ploplinux-netboot|/webfilelist-iso iso_filename=ploplinux.iso nomodeset label linuxfb-http-iso menu label Plop Linux framebuffer mode - HTTP ISO kernel syslinux/kernel/bzImage append initrd=syslinux/kernel/initramfs.gz vga=0x317 url=http://www.ploplinux.com/ploplinux-netboot|/webfilelist-iso iso_filename=ploplinux.iso
http-iso.conf wird von /tftpboot/ploplinux-netboot/pxelinux.cfg/default 7. Boot ProblemeWahrscheinlich wurde irgendwo ein falscher Pfad angegeben. Wenn Sie im Bootmenü sind, dann drücken Sie bei dem zu bootenden Eintrag die Tabulatortaste und fügen am Ende der Zeile 'debug' hinzu. Dadurch erhalten Sie beim Booten mehr Infos.
© 2024 by
Elmar Hanlhofer |