CentOS 5: PXE-Server mit textbasiertem Bootmenü
1. Einleitung
PXE (Preboot Execution Environment) wird verwendet um einen oder mehrere Rechner vom Netzwerk zu booten. Dadurch kann man sich die langsamen Boot-Disketten sparen.
2. Installation und Konfiguration
Bevor mit der eigentlichen Konfiguration begonnen wird, müssen Sie einen funktionierenden DHCP-Server eingerichtet haben.
Damit Sie einen PXE-Server einrichten können, müssen Sie die Pakete tftp-server und syslinux installieren.
[root@centos5 ~]# yum install tftp-server syslinux
Nach der Installation müssen Sie den TFTP-Server in der Datei /etc/xinetd.d/tftp aktivieren.
[root@centos5 ~]# vi /etc/xinetd.d/tftp
Suchen Sie nun die folgende Zeile und ändern den Wert auf no.
disable = yes
Jetzt müssen Sie den xinetd neu starten.
[root@centos5 ~]# service xinetd restart
Sollten Sie den xinetd noch keinem Runlevel zugeordnet haben, holen Sie dies bitte nach.
[root@centos5 ~]# chkconfig --level 35 xinetd on
Anschließend müssen Sie noch den UDP-Port 69 in der Firewall freigeben. Dazu öffnen Sie wie folgt die Firewall-Konfiguration.
[root@centos5 ~]# system-config-securitylevel-tui
Unter Anpassen tragen Sie als weiteren geöffneten Port 69:udp ein.
Da dem PXE-Client auch mitgeteilt werden muss unter welcher Adresse der PXE-Server erreichbar ist und wo das Boot-Image liegt, müssen Sie nun die dhcpd.conf anpassen.
[root@centos5 ~]# vi /etc/dhcpd.conf
Fügen Sie nun die folgenden Zeilen in die dhcpd.conf ein. Mit der folgenden Option geben Sie die IP-Adresse des PXE-Servers an.
next-server 192.168.10.1;
Unter filename muss der PXE-Bootloader angegeben werden. Da wir PXELINUX verwenden muss dieser Eintrag wie folgt aussehen.
filename "pxelinux.0";
Nachdem Sie die dhcpd.conf angepasst haben, müssen Sie den DHCP-Server neu starten.
[root@centos5 ~]# service dhcpd restart
Da wir aber noch kein Boot-Image erstellt haben, wird der Client im Moment nur eine IP-Adresse zugewiesen bekommen und dann abbrechen. Deshalb erstellen Sie jetzt wenn nötig das Verzeichnis /tftpboot und kopieren die Datei /usr/lib/syslinux/pxelinux.0 in dieses Verzeichnis.
[root@centos5 ~]# mkdir /tftpboot
[root@centos5 ~]# cp /usr/lib/syslinux/pxelinux.0 /tftpboot/
[root@centos5 ~]# cp /usr/lib/syslinux/pxelinux.0 /tftpboot/
Erstellen Sie jetzt das Unterverzeichnis /tftboot/pxelinux.cfg/.
[root@centos5 ~]# mkdir /tftpboot/pxelinux.cfg
Erstellen Sie nun in diesem Verzeichnis die Datei default.
[root@centos5 ~]# vi /tftpboot/pxelinux.cfg/default
Ihre default Datei sollte den Kernel und das Bootimage mit den gewünschten Bootparametern enthalten und könnte zum Beispiel wie folgt aussehen.
display /pxelinux.cfg/boot.msg
prompt 1
default dos
timeout 100
label dos
kernel /dosimage/memdisk
append initrd=/dosimage/dosimage.img
label centos5
kernel /centos5/vmlinuz
append initrd=/centos5/initrd.img
prompt 1
default dos
timeout 100
label dos
kernel /dosimage/memdisk
append initrd=/dosimage/dosimage.img
label centos5
kernel /centos5/vmlinuz
append initrd=/centos5/initrd.img
Jetzt fehlt noch die Datei boot.msg in welcher das PXE-Bootmenü eingetragen wird.
[root@centos5 ~]# vi /tftpboot/pxelinux.cfg/boot.msg
Diese Datei kann wie folgt aussehen.
Welcome to PXE Boot!
- To boot DOS [default], type: dos <ENTER>
- To install CentOS 5, type: centos5 <ENTER>
Timeout = 10s
- To boot DOS [default], type: dos <ENTER>
- To install CentOS 5, type: centos5 <ENTER>
Timeout = 10s
Wenn Sie jetzt einen Client mit PXE booten, sollten Sie bereits das Bootmenü sehen. Sie müssen jetzt nur noch die Bootimage hinterlegen.
Sollte Ihr PXE-Server wider Erwartens nicht funktionieren, starten Sie den xinetd und den dhcpd nochmals neu.
[root@centos5 ~]# service xinetd restart
[root@centos5 ~]# service dhcpd restart
[root@centos5 ~]# service dhcpd restart
3. Ein DOS-Bootimages erstellen
Bevor Sie ein DOS-Bootimage erstellen können, benötigen Sie eine bereits funktionierende DOS-Bootdiskette. Vergessen Sie nicht, dass Sie die Netzwerktreiber einbinden müssen wenn Sie auf Netzwerkfreigaben zugreifen wollen.
Wenn Sie eine DOS-Bootdiskette erstellt haben, erstellen Sie das Unterverzeichnis /tftpboot/dosimage/ auf Ihrem PXE-Server.
[root@centos5 ~]# mkdir /tftpboot/dosimage
Kopieren Sie jetzt die Datei /usr/share/syslinux/memdisk in dieses Verzeichnis.
[root@centos5 ~]# cp /usr/lib/syslinux/memdisk /tftpboot/dosimage/
Legen Sie die Bootdiskette ein und erstellen Sie folgendermaßen ein Image Ihrer Bootdiskette.
[root@centos5 ~]# dd if=/dev/fd0 of=/tftpboot/dosimage/dosimage.img
Sollte der folgende Absatz in der Datei /tftpboot/pxelinux.cfg/default noch fehlt, tragen Sie ihn bitte ein.
label dos
kernel /dosimage/memdisk
append initrd=/dosimage/dosimage.img
kernel /dosimage/memdisk
append initrd=/dosimage/dosimage.img
Damit das Bootimage auch im PXE-Bootmenü angezeigt wird, muss folgende Zeile in der Datei /tftpboot/pxelinux.cfg/boot.msg stehen.
- To boot DOS [default], type: dos <ENTER>
Jetzt können Sie mit dem Kommando dos am Bootprompt Ihr DOS-Image booten.
4. Installations-Bootimage für CentOS 5 einbinden
Um CentOS 5 vom Netzwerk zu installieren ist meist eine Boot-CD/DVD notwendig. Hier beschreibe ich wie Sie die Installation komplett vom Netzwerk durchführen können.
Erstellen Sie zuerst das Verzeichnis /tftpboot/centos5/.
[root@centos5 ~]# mkdir /tftpboot/centos5
Kopieren Sie die Dateien /images/pxeboot/initrd.img und /images/pxeboot/vmlinuz von der Installations-DVD in dieses Verzeichnis.
[root@centos5 ~]# mount -t iso9660 /dev/hdc /mnt
[root@centos5 ~]# cp /mnt/images/pxeboot/initrd.img /tftpboot/centos5/
[root@centos5 ~]# cp /mnt/images/pxeboot/vmlinuz /tftpboot/centos5/
[root@centos5 ~]# cp /mnt/images/pxeboot/initrd.img /tftpboot/centos5/
[root@centos5 ~]# cp /mnt/images/pxeboot/vmlinuz /tftpboot/centos5/
Ergänzen Sie wenn nötig die Datei /tftpboot/pxelinux.cfg/default um folgenden Eintrag.
label centos5
kernel /centos5/vmlinuz
append initrd=/centos5/initrd.img
kernel /centos5/vmlinuz
append initrd=/centos5/initrd.img
Anschließend erweitern Sie das PXE-Bootmenü um folgenden Eintrag.
- To install CentOS 5, type: centos5 <ENTER>
Jetzt können Sie mit dem Kommando centos5 am Bootprompt das Installations-Image für CentOS 5 booten. Da wir aber noch keine Installationsquelle eingerichtet haben, sollten Sie jetzt die Installations-DVD in ein Verzeichnis kopieren und dieses per FTP oder HTTP freigeben. Hier will ich Ihnen die Schritte für eine Installation über FTP zeigen.
Zuerst erstellen Sie ein Verzeichnis in welches anschließend die Installations-DVD kopiert wird.
[root@centos5 ~]# mkdir /var/ftp/pub/centos5
[root@centos5 ~]# cp -R /mnt/* /var/ftp/pub/centos5/
[root@centos5 ~]# cp -R /mnt/* /var/ftp/pub/centos5/
Wenn Sie jetzt die Installation über PXE starten, müssen Sie zu Beginn der Installation die erstellte Installationsquelle angeben. Sie können aber den Installationspfad gleich als Option für das Bootimage mit angeben und sich somit die Eingabe sparen. Dazu ändern Sie den Eintrag in der Datei /tftpboot/pxelinux.cfg/default wie folgt ab.
label centos5
kernel /centos5/vmlinuz
append initrd=/centos5/initrd.img method=ftp://192.168.10.1/pub/centos5/
kernel /centos5/vmlinuz
append initrd=/centos5/initrd.img method=ftp://192.168.10.1/pub/centos5/
Dieser Eintrag wurde am 04.09.2007 erstellt und zuletzt am 07.03.2010 bearbeitet.
Direkter Link zu dieser Seite: http://www.gtkdb.de/index_33_584.html
[ Zur Startseite ] [ Zur Kategorie ]
© 2004-2021 by Georg Kainzbauer