IT-MÜCKE

Booten per Netzwerk: PXE

Beitragsdatum 10.07.2012
Letzte Aktualisierung 31.10.2016

Einen Rechner nicht von Festplatte, DVD oder USB-Stick zu booten sondern aus dem Netzwerk heraus, hat verschiedene Vorteile:

  • Besonders kleine/flache Laptops/UltraBooks haben kein DVD-Laufwerk
  • Einen USB-Stick müsste man meist erst vorbereiten
  • Einmal eingerichtet ist das Booten sehr schnell durchgeführt (das Raussuchen eder DVD entfällt)
  • Die Geschwindigkeit im Vergleich zum Booten von DVD ist erheblich höher

Die c't hat in Ihrer Ausgabe 15/2012 ab Seite 154 genau beschrieben, wie ein Ubuntu-Server eingerichtet werden kann, um ihn als PXE-Server betreiben zu können.

Ich fasse die Schritte hier nochmal zusammen und gehe dabei auf Unterschiede ein, da ich eine Ubuntu 10.04 Server Edition nutzte, die c't aber von einem Live-System ausgeht. Die c't macht das am Beispiel Ihrer aktuellen Desinfect-DVD.

  • ISO-Image der DVD erstellen (oder DVD einlegen in das Laufwerk des zukünftigen Servers):
    # Daten ermitteln:
    isoinfo -d -i /dev/cdrom | grep -i -E 'block size|volume size'
    
    # Image erstellen (eckige Klammern [] mit den Angaben vom vorherigen Befehl ersetzen):
    # dd if=/dev/cdrom of=desinfect2012.iso bs=[block size] count=[vol size]\\
  • ISO-Image auf den Server kopieren
  • auf den Server wechseln
  • Eine Rootshell starten:
    sudo -i
  • Verzeichnis anlegen und Daten der DVD kopieren (ich gehe davon aus, dass die DVD unter /media/cdrom gemountet wurde: mount -t iso9660 -o loop  [pfad zur iso] [mount point]):
    mkdir -p /srv/tftp/ct/desinfect2012
    cd /srv/tftp/ct
    cp -r /media/cdrom/casper desinfect2012/
    cp -r /media/cdrom/isolinux desinfect2012/
  • Korrekte Init-RAM-Disk herunterladen:
    cd /srv/tftp/ct/desinfect2012/casper\\
    wget http://ct.de/projekte/desinfect/ct1512/initrd.lz
  • Verzeichnis anlegen:
    mkdir /srv/tftp/ct/pxelinux.cfg
  • Datei /srv/tftp/ct/pxelinux.cfg/default anlegen:
    vim /srv/tftp/ct/pxelinux.cfg/default 
  • Inhalt (richtige IP angeben):
    DEFAULT desinfect2012
    LABEL desinfect2012
    KERNEL desinfect2012/casper/vmlinuz
    APPEND boot=casper initrd=desinfect2012/casper/initrd.lz netboot=nfs nfsroot=[ip des Servers]:/srv/tftp/ct/desinfect2012 quiet splash -- debian-installer/language=de console-setup/layoutcode?=de
  • Bei der Konfig geht die c't davon aus, dass der Router unter 192.168.1.1 zu erreichen ist. Das müssen Sie ggf. an Ihre Gegebenheiten anpassen.
  • PXE-Loader installieren:
    apt-get install syslinux


    (Achtung: kann auch Paket syslinux-common sein, abhängig vom System und Version des Systems)

  • Symbolischen Link anlegen:
    cd /srv/tftp/ct
    ln -s /usr/lib/syslinux/pxelinux.0 pxelinux.0
  • NFS installieren:
    apt-get install nfs-kernel-server
  • Datei /etc/exports erweitern:
    vim /etc/exports
    
    # anhängen:
    /srv/tftp 192.168.1.0/24 (ro,no_subtree_check)
  • DNS-Server installieren:
    apt-get install dnsmasq
  • Datei /etc/dnsmasq.d/desinfect anlegen:
    vim /etc/dnsmasq.d/desinfect
    
    # Inhalt:
    port=0
    log-dhcp
    enable-tftp
    tftp-root=/srv/tftp
    dhcp-range=192.168.1.0,proxy
    pxe-prompt="Taste F8 zeigt Auswahl",5
    pxe-service=X86PC,"Starten von Festplatte",0
    pxe-service=X86PC,"Mit Desinfect starten",ct/pxelinux
  • Fehlende Pakete installieren:
    apt.get install tftpd-hpa openbsd-inetd
      * TFTP-Server konfigurieren:<code>
    vim /etc/default/tftpd-hpa
  • Inhalt:
    TFTP_OPTIONS="--secure"
    TFTP_USERNAME="tftp"
    TFTP_DIRECTORY="/srv/tftp"
    TFTP_ADDRESS="0.0.0.0:69"
  • Inet-Daemon anpassen:
    vim /etc/inetd.conf
    
    # Erweitern um:
    tftp dgram udp wait root /usr/sbin/tcpd /usr/sbin/in.tftpd -s /srv/tftp
  • Das System neu starten.
  • Bei einem Testrechner im BIOS PXE-Boot aktivieren. Rechner neu starten. Bei den Boot-Optionen PXE auswählen. Mittels F8 sollte das erstellte Menü kommen - die Desinfect sollte über das Netzwerk gebootet werden können.

Hier folgt nun die Anleitung, wie zusätzlich ein Ubuntu 10.04 via Netzwerk gebootet werden kann:

  • ISO-Image erzeugen bzw. DVD/CD einlegen (wie oben)
  • Neues Verzeichnis anlegen und Daten kopieren:
    mkdir -p /srv/tftp/ubuntu/ubuntu1004
    cd /srv/tftp/ubuntu
    cp -r /media/cdrom/casper ubuntu1004/
    cp -r /media/cdrom/isolinux ubuntu1004/
  • Datei /srv/tftp/ubuntu/ubuntu1004/pxelinux.cfg/default anlegen:
    vim /srv/tftp/ubuntu/ubuntu1004/pxelinux.cfg/default
  • Inhalt (richtige IP angeben):
    DEFAULT ubuntu1004
    LABEL ubuntu1004
    KERNEL casper/vmlinuz
    APPEND boot=casper initrd=casper/initrd.lz netboot=nfs nfsroot=192.168.1.39:/srv/tftp/ubuntu/ubuntu1004 quiet splash -- debian-installer/language=de console-setup/layoutcode?=de
  • Symbolischen Link anlegen:
    cd /srv/tftp/ubuntu/ubuntu1004
    ln -s /usr/lib/syslinux/pxelinux.0 pxelinux.0
  • Datei /etc/dnsmasq.d/desinfect erweitern:
    vim /etc/dnsmasq.d/desinfect
  • Zeile anfügen:
    pxe-service=X86PC,"Mit Ubuntu 10.04 starten",ubuntu/ubuntu1004/pxelinux
  • Server neu starten
  • Wie oben testen…
  • Und genauso können weitere Ubuntus und andere Betriebssysteme oder Versionen angelegt werden.

 

(Quelle: c't Ausgabe 15/2012, Seite 154ff)


Ähnliche Themen im blog:
pxe


zurück