PXELinux
Mit PXELinux kann man ein System über ein Netzwerk booten oder auch installieren.
Installtion tftp-Server
root@xinux-desktop:/# apt-get install tftpd-hpa
Start über inetd
- /etc/inetd.conf : udp -> udp4 ändern
tftp dgram udp4 wait root /usr/sbin/in.tftpd /usr/sbin/in.tftpd -s /var/lib/tftpboot
Start als Alleinstehender Server
- /etc/default/tftpd-hpa
#Defaults for tftpd-hpa RUN_DAEMON="yes" OPTIONS="-l -s /var/lib/tftpboot"
Starten
root@xinux-desktop:~# /etc/init.d/tftpd-hpa start
Installation DHCP-Server
root@xinux-desktop:~# apt-get install dhcp3-server
Anpassen der dhcpd.conf
- /etc/dhcp3/dhcpd.conf
subnet 192.168.242.0 netmask 255.255.255.0 { range 192.168.242.170 192.168.242.180; #Lease-Zeit in Sekunden default-lease-time 600; max-lease-time 7200; option domain-name "gamma.intern"; option domain-name-servers 192.168.240.21; option broadcast-address 192.168.242.255; option subnet-mask 255.255.255.0; #Gateway option routers 192.168.242.1; #Hosts an die MAC festnageln host pxeclient { hardware ethernet 00:0c:29:99:25:91; fixed-address 192.168.242.171; option host-name "pxeclient"; next-server 192.168.242.140; filename "/pxelinux.0"; } }
Bootimage vorbereiten
root@xinux-desktop:~# cp /usr/lib/syslinux/pxelinux.0 /var/lib/tftpboot/
PXELinux mit debootstrap
Minimales virtuelles System erstellen
Debian
root@xinux-desktop:~# mkdir /pxeroot root@xinux-desktop:~# cd /pxeroot root@xinux-desktop:~# debootstrap etch /pxeroot
Ubuntu
root@xinux-desktop:~# mkdir /pxeroot root@xinux-desktop:~# cd /pxeroot root@xinux-desktop:~# debootstrap intrepid /pxeroot
DHCP auf für Client aktivieren
- /pxeroot/etc/network/interfaces
auto eth0 iface eth0 inet dhcp
Hostname setzen
root@xinux-desktop:~# echo pxeboot > /pxeroot/etc/hostname root@xinux-desktop:~# cp /etc/hosts /pxeroot/etc/hosts root@xinux-desktop:~# vi /pxeroot/etc/hosts
127.0.0.1 localhost pxeboot # The following lines are desirable for IPv6 capable hosts ::1 localhost ip6-localhost ip6-loopback fe00::0 ip6-localnet ff00::0 ip6-mcastprefix ff02::1 ip6-allnodes ff02::2 ip6-allrouters ff02::3 ip6-allhosts
- wq zum Speichern und Beenden
fstab anpassen
# <file system> <mount point> <type> <options> <dump> <pass> proc /proc proc defaults 0 0 /dev/ram0 / ext2 defaults 0 0 tmpfs /tmp tmpfs defaults 0 0
Virtuelles System anpassen
root@xinux-desktop:/pxeroot/etc# chroot /pxeroot
Kernel installieren
xinux-desktop:/# apt-get install linux-image
Die Warnung, dass keine Bootloader installiert sind, kann ignoriert werden. Wenn das Skript fragt, ob abgebrochen werden soll mit no antworten.
Ramdisk auf NFS anpassen
xinux-desktop:/# sed -i.bak -e "s/BOOT=local/BOOT=nfs/" /etc/initramfs-tools/initramfs.conf xinux-desktop:/#update-initramfs -vu
Locales installieren und de_DE@euro ISO-8859-15 als Spracheinstellung auswählen
xinux-desktop:/# apt-get install locales xinux-desktop:/# dpkg-reconfigure locales
exit
DHCP-Server konfigurieren
subnet 192.168.242.0 netmask 255.255.255.0 { range 192.168.242.170 192.168.242.180; default-lease-time 600; max-lease-time 7200; #option domain-name "gamma.intern"; option domain-name-servers 192.168.240.21; option broadcast-address 192.168.242.255; option subnet-mask 255.255.255.0; host pxeclient { hardware ethernet 00:0c:29:99:25:91; fixed-address 192.168.242.171; option host-name "pxeclient"; next-server 192.168.242.140; filename "/pxelinux.0"; option root-path "192.168.242.140:/pxeroot"; } }
Anschließend neustarten
root@xinux-desktop:~# /etc/init.d/dhcp-server restart
TFTP Server konfigurieren
- /etc/default/tftpd-hpa
RUN_DAEMON="yes" OPTIONS="-l -s /var/lib/tftpboot"
Neustarten
/root@xinux-desktop:~# etc/init.d/tftpd-hpa restart
PXE boot konfigurieren
root@xinux-desktop:~# cd /var/lib/tftpboot root@xinux-desktop:~# wget http://ftp.debian.org/debian/dists/etch/main/installer-i386/current/images/netboot/pxelinux.0 root@xinux-desktop:~# cp /pxeroot/vmlinuz ./ root@xinux-desktop:~# cp /pxeroot/initrd.img ./ root@xinux-desktop:~# mkdir pxelinux.cfg root@xinux-desktop:~# vim pxelinux.cfg/default
- /var/lib/tftpboot/pxelinux.cfg/default
DEFAULT linux LABEL linux kernel vmlinuz append vga=normal initrd=initrd.img ramdisk_size=14332 root=/dev/nfs nfsroot=192.168.242.140:/pxeroot rw -- PROMPT 0 TIIMEOUT 0
nfs server konfigurieren
root@xinux-desktop:~# apt-get install nfs-kernel-server
- /etc/exports
/pxeroot 192.168.0.0/255.255.0.0(rw,sync,no_root_squash,no_subtree_check)
Neustarten
/etc/init.d/nfs-kernel-server restart
Quellen
http://www.pieczewski.de/?page_id=51