Good to Know Database

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/

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

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

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

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

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/

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

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/

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/


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 ]


Valid XHTML 1.0 Transitional Valid CSS Valid Atom 1.0

© 2004-2018 by Georg Kainzbauer