openSuSE: ( 11.4 )
dhcp-server tftp syslinux apache2 apache2-prefork
CentOS: ( 5.3 )
dhcp tftp-server syslinux httpd
Debian: ( 7.0 )
isc-dhcp-server pxelinux tftpd xinetd apache2
Zum Testen ist qemu
sehr hilfreich
TODO: offenbar kann man statt tftp inzwischen auch http verwenden. siehe: http://etherboot.org/wiki/httpboot und http://www.syslinux.org/wiki/index.php?title=PXELINUX#HTTP_and_FTP
cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/ mkdir /srv/tftpboot/opensuse114 cd /srv/tftpboot/opensuse114 wget http://download.opensuse.org/distribution/11.4/repo/oss/boot/i386/loader/{linux,initrd,isolinux.cfg}
/var/lib/tftpboot/pxelinux.cfg/default
:
SERIAL 0 115200 PROMPT 1 TIMEOUT 200 DEFAULT opensuse #Superpraktisch zum testen neuer Eintraege im Bootmenu: LABEL pxelinux KERNEL pxelinux.0 LABEL opensuse KERNEL opensuse114/linux APPEND initrd=opensuse114/initrd showopts ip=bootp install=http://download.opensuse.org/distribution/11.4/repo/oss vga=0x317 lang=de autoyast=http://notebook21/suse/autoyast.xml
cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/
mkdir -p /var/lib/tftpboot/{centos64,pxelinux.cfg} cd /var/lib/tftpboot/centos64 wget http://centos/6/os/i386/isolinux/{vmlinuz,initrd.img,isolinux.cfg} cd /var/lib/tftpboot cp -a isolinux.cfg ../pxelinux.cfg/default
/var/lib/tftpboot/pxelinux.cfg/default
:
SERIAL 0 115200 PROMPT 1 TIMEOUT 200 DEFAULT centos #Superpraktisch zum testen neuer Eintraege im Bootmenu: LABEL pxelinux KERNEL pxelinux.0 LABEL centos KERNEL /centos64/vmlinuz APPEND initrd=/centos64/initrd.img ramdisk_size=9216 resolution=1024x768 ksdevice=eth0 ks=http://notebook21/mirror6.ks
Kernel und Initrd in qemu starten
qemu -kernel centos64/vmlinuz -initrd centos64/initrd.img -append "vga=normal console=ttyS0" -boot c -snapshot -nographic centos5/initrd.img
noch nicht getestet
cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/
mkdir -p /var/lib/tftpboot/{centos7,pxelinux.cfg} cd /var/lib/tftpboot/centos7 wget http://centos/7/os/x86_64/isolinux/{vmlinuz,initrd.img,isolinux.cfg} cd /var/lib/tftpboot cp -a isolinux.cfg ../pxelinux.cfg/default
/var/lib/tftpboot/pxelinux.cfg/default
:
SERIAL 0 115200 PROMPT 1 TIMEOUT 200 DEFAULT centos #Superpraktisch zum testen neuer Eintraege im Bootmenu: LABEL pxelinux KERNEL pxelinux.0 LABEL centos KERNEL /centos64/vmlinuz APPEND initrd=/centos64/initrd.img repo=http://centos/7/os/x86_64
Kernel und Initrd in qemu starten
qemu -kernel centos7/vmlinuz -initrd centos7/initrd.img -append "vga=normal console=ttyS0" -boot c -snapshot -nographic centos7/initrd.img
mkdir /var/lib/tftpboot/ ln -s /usr/lib/PXELINUX/pxelinux.0 /var/lib/tftpboot/
cd /var/lib/tftpboot/ mkdir debian80 cd debian80 wget http://ftp.de.debian.org/debian/dists/jessie/main/installer-amd64/current/images/netboot/debian-installer/amd64/{linux,initrd.gz}
mkdir /var/lib/tftpboot/pxelinux.cfg
/var/lib/tftpboot/pxelinux.cfg/default
:
SERIAL 0 115200 PROMPT 1 TIMEOUT 200 DEFAULT debian #Superpraktisch zum testen neuer Eintraege im Bootmenu: LABEL pxelinux KERNEL pxelinux.0 LABEL debian KERNEL debian80/linux APPEND initrd=debian80/initrd.gz vga=normal -- DEBCONF_DEBUG=5 preseed/url=http://192.168.1.221/mirror80.cfg
Kernel und Initrd in qemu starten
cd /var/lib/tftpboot/ qemu-system-x86_64 -kernel debian80/linux -initrd debian80/initrd.gz -append "console=ttyS0" -boot c -snapshot -nographic debian80/initrd.gz
unter Debian 8 musste ich zusätzlich die folgenden Dateien ins tftp Verzeichnis kopieren:
cp /usr/lib/syslinux/modules/*/ldlinux.* .
qemu über simuliertes Netz starten: 2)
qemu-system-x86_64 -boot n -tftp /var/lib/tftpboot/ -bootp /pxelinux.0 /dev/zero
optional
Debian 3.1:
syslinux gimp
Orginal-Bild öffnen:
gimp logo_final.svg
ppmtolss16 \#e8e6b6=0 \#28414a=7 < logo_linuxhotel.ppm > logo_linuxhotel.lss16
TODO: durch systemd ersetzen
/etc/xinetd.d/tftp
:
service tftp { socket_type = dgram protocol = udp wait = yes user = nobody server = /usr/sbin/in.tftpd server_args = -s /var/lib/tftpboot/ }
SuSE, Centos:
chkconfig tftp on
alle Distros:
service xinetd restart
lsof -i :tftp
/etc/dhcpd.conf
: ( CentOS 5.3, openSuSE 11.4 )
/etc/dhcp/dhcpd.conf
: ( debian 6.0 )
class "PXEClient:" { match if substring (option vendor-class-identifier, 0,10) = "PXEClient:"; default-lease-time 300; # 5 min max-lease-time 600; # 10 min filename "pxelinux.0"; next-server 192.168.1.224; }
CentOS 5.3, openSuSE 11.4:
service dhcpd restart
debian (ab 6.0):
service isc-dhcp-server restart
Prüfen der Konfiguration:
dhcpd -t
Nun sollte ein pxe-fähiger Rechner booten können.
mkdir /srv/www/htdocs/opensuse/{oss,non-oss,update} cp -a /media/susedvd/. /srv/www/htdocs/suse/oss
mkdir /var/www/debian cp -a /media/debian/. /var/www/debian
Mit
yast2 autoyast
eine Konfigurationdatei erstellen und unter /srv/www/htdocs/suse/autoyast.xml
speichern
Paket: system-config-kickstart
system-config-kickstart
ssh -X
/media/susedvd
gemountet ist /media/debian
gemountet ist