Intern:IT:Dienste:TFTPD/config
Inhaltsverzeichnis |
DHCP Einstellungen
Damit ein Rechner nacher auch das PXELinux booten kann, benötigt dieser zuerst die Informationen, wo der TFTP Server zu finden ist. Diese Informationen bekommt der Rechner vom DHCP Server. Wichtig sind hierbei die Parameter
next-server welcher den TFTP Server angibt und filename welches das zu ladende File angibt.
Diese Einstallung haben wir in der /etc/dhcp3/dhcpd.conf eingestellt.
# PORG untrusted subnet 10.14.0.0 netmask 255.255.255.0 { authoritative; allow client-updates; allow unknown-clients; next-server 10.14.0.1; # Gibt an wo nach dem TFTPd Server gesucht wird filename "pxelinux.0"; # Läd PXELinux welches im Root-Verzeichniss des TFTP liegen muss! range 10.14.0.150 10.14.0.254; option routers 10.14.0.1; }
TFTPD Einstellungen
TFTP braucht an sich keine Einstellungen, das Rootverzeichniss des TFTP-Servers wird direkt als Parameter übergeben
/usr/sbin/in.tftpd -l -s /var/lib/tftpboot
PXELinux Einstellungen
Verzeichnissstruktur
Wir haben folgende Verzeichnissstruktur erstellt:
#:/var/lib/tftpboot# tree -L 2 . |-- boot / Distributionen die zur Verfügung stehen | |-- centos_53 | |-- dban / Festplatten Schredder | |-- debian_etch | |-- debian_lenny | |-- gparted / Festplatten Partitionierungstool | |-- grml | |-- hddchecks / Spezielle Festplattenprüftools der einzelnen Hersteller | |-- inventur / Automatische Inventur neuer Rechner | |-- isolinux | |-- livedeb / Live Distributionen | |-- livedists | |-- opene | |-- sbg | |-- tools | |-- ubuntu_hardy | `-- winxp |-- boot.lss / Grafischer Bootbildschirm |-- menu / Menüführung | |-- admintools.cfg | |-- hddtools.cfg | |-- help.cfg | |-- info.cfg | |-- layout.cfg / Layouteinstellungen | |-- main.cfg | |-- memdisk | `-- vesamenu.c32 |-- pxelinux.0 `-- pxelinux.cfg |-- default / Standardconfig die von pxelinux verwendet wird. |-- default.bak `-- default_backup 19 directories, 13 files
Default Config
Die Config ./pxelinux.cfg/default wird standartmäsig von PXELinux aufgerufen in unserem Fall läd diese lediglich die ./menu/info.cfg und die ./menu/main.cfg. <config>
include menu/info.cfg include menu/main.cfg
</config>
Tastendefinitionen
In der info.cfg laden wir das vesamenu.c32 welches eine Grafische Darstellung der Menüführung ermöglicht. Zusätlich wird das Basislayout ( layout.cfg ) Der eigentliche Zweck der info.cfg ist jedoch, Tasten wie F1 F2 F3 zu belegen. Als Beispiel wurde hier die Taste F1 mit dem Menü help.cfg belegt.
# Default boot option to use DEFAULT menu/vesamenu.c32 include menu/layout.cfg # Prompt user for selection PROMPT 0 F1 menu/help.cfg # Belegt F1 mit der help.cfg # Help menu # Erstellt einen Menüeintrag, der nicht Auswählbar ist ( Um Anzuzeigen, dass F1 belegt ist ) label help MENU DISABLE MENU LABEL F1 - Help Screen KERNEL vesamenu.c32 APPEND menu/help.cfg
Grafische Einstellungen
Die layout.cfg definiert das Aussehen des Bootmenü. Ebenfalls wird hier ein Passwort gesetzt, damit der User später nicht so einfach auf die Promt kommt.
menu master passwd ***** // Passwort, damit der User nur das Menü verwenden kann. menu background boot.lss // Hintergrundgrafik menu color border 0 #ffffffff #ee000000 std // Farbe des Rahmens menu color title 0 #ffffffff #ee000000 std // Farbe der Überschrift/Titel menu color sel 0 #ffffffff #85000000 std // Ausgewählter Eintrag menu color pwdheader 0 #ff000000 #99ffffff rev // Überschrift der Passwortabfrage menu color pwdborder 0 #fff00000 #99ffffff rev // Rahmenfarbe der Passwortabfrage menu color pwdentry 0 #ff000000 #99ffffff rev // Schriftfarbe der Passwortabfrage
Menüeinträge
Nun kommen wir zum main.cfg Menü, in diesem Menü sind alle Menüeinträge definiert.
DEFAULT menu/vesamenu.c32 menu title PORG Boot Server - Waehle eine Distribution aus include menu/layout.cfg LABEL Lokal Booten localboot 0 MENU DEFAULT timeout 30 totaltimeout 250 MENU LABEL Von der Lokalen Platte ^booten TEXT HELP Von der Lokalen Platte booten ENDTEXT LABEL Install Debian Lenny kernel boot/debian_lenny/linux append expert vga=normal initrd=boot/debian_lenny/initrd.gz ramdisk_size=16417 root=/dev/ram rw -- MENU LABEL Debian Lenny TEXT HELP Debian Lenny ENDTEXT LABEL Inventur kernel boot/inventur/vmlinuz append initrd=boot/inventur/initrd.img toram union=unionfs ide=nodma boot=live noswap nopromt vga=788 fetch=http://192.168.2.10/private/boottp/base.squashfs MENU LABEL Inventur TEXT HELP Debian Lenny ENDTEXT LABEL Debian GDM LIVE kernel boot/livedeb/vmlinuz append initrd=boot/livedeb/initrd.img toram union=unionfs ide=nodma boot=live noswap nopromt vga=788 fetch=http://192.168.2.10/private/boottp/base.squashfs MENU LABEL LIVE DEBIAN TEXT HELP Debian Lenny ENDTEXT LABEL Install Debian Etch kernel boot/debian_etch/linux append vga=normal initrd=boot/debian_etch/initrd.gz ramdisk_size=16417 root=/dev/ram rw -- MENU LABEL Debian Etch TEXT HELP Debian Etch ENDTEXT LABEL CentOS 5.3 Netinst kernel boot/centos_53/vmlinuz append vga=normal initrd=boot/centos_53/initrd.img ramdisk_size=16417 root=/dev/ram rw -- MENU LABEL CentOS 5.3 Netinst TEXT HELP Debian Etch ENDTEXT LABEL DSL LIVE kernel boot/livedists/dsl/linux24 append ramdisk_size=100000 root=/dev/ram lang=us apm=power-off vga=791 initrd=boot/livedists/dsl/minirt24.gz nomce noapic quiet BOOT_IMAGE=knoppix MENU LABEL DSL LIVE TEXT HELP Debian Etch ENDTEXT LABEL tools MENU LABEL Festplatten Tools KERNEL menu/vesamenu.c32 APPEND menu/hddtools.cfg LABEL admintools MENU LABEL ADMINISTRATIOR Tools menu passwd **** KERNEL menu/vesamenu.c32 APPEND menu/admintools.cfg
Die Configs der Submenüs sind dementsprechend ausgebaut.