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.