it-swarm.com.de

Installationsschritte für den PXE-Boot-Server in Ubuntu Server VM

Wie kann ich eine virtuelle Ubuntu-Maschine mithilfe eines PXE-Boot-Servers installieren?

Ich brauche alle Konfigurationsdetails und was in den Konfigurationsdateien zu ändern ist.

15
Beginner

PXE (Preboot eXecution Environment, ausgesprochen Pixie)

Siehe Wikipedia: PXE

Wie es funktioniert?

Dies ist mein Verständnis!

PXE_Diagram_en.png

  1. Der Client-Computer ist eingeschaltet. Das BIOS sucht nach Geräten. Anschließend wird versucht, den Bootloader von dem erforderlichen Gerät zu laden, wie in Startreihenfolge/-folge aufgeführt. Es lädt PXE vom Netzwerkkarten-ROM.
  2. PXE (Client-Seite) sendet eine Anforderung für eine IP. Antwort des DHCP-Servers mit den erforderlichen Informationen: IP, IP des nächsten Servers (TFTP-Server-IP), pxelinux.0 (PXE bootstrap Loader-Dateiname), ... usw

    PXE_Boot_1.png

  3. PXE (Client-Seite) fordert die Datei pxelinux.0 vom TFTP-Server an, lädt sie in RAM und übergibt die Steuerung an pxelinux.0.

    pxelinux.0 ruft die Startkonfigurationsdatei vom TFTP-Server mit folgendem Namen ab:
    (wenn es nicht existiert, versucht es mit dem nächsten)

    • UUID
    • MAC
    • IP in Großbuchstaben
    • Ein Teil der IP
    • Ablegen in default Datei

    PXE_Boot_2.png

  4. Entweder Benutzerauswahl oder Standardmenüeintrag. pxelinux.0 fordert den entsprechenden Kernel und die RAMDisk vom TFTP-Server an und lädt sie in den RAM.

    Übergibt dann die Boot-Parameter und die Steuerung an den geladenen Kernel.

    PXE_Linux.png

  5. Der Kernel lädt die verbleibenden Teile vom TFTP-Server oder einem anderen Protokollserver, je nach dessen Funktionen/Eigenschaften.

    Parted_Magic_1.pngParted_Magic_2.png

Server-Setup

Es gibt viele Möglichkeiten, einen PXE-Server einzurichten. Dies ist eine davon.

Diese Anweisungen wurden unter Ubuntu 9.10 & Ubuntu 10.04 auf einer realen Maschine getestet . Sie sollten mit nur wenigen Änderungen noch gültig sein. (Aktualisiert und getestet für Ubuntu 14.04 auf VirtualBox, überprüfen Sie die Bearbeitungsrevisionen für ältere Versionen.)

Mein Ziel war PartedMagic 4.5 , es sollte Ubuntu oder einer anderen Linux-Distribution ähneln.

  1. Installieren Sie DHCP- und TFTP-Pakete

        Sudo apt-get install isc-dhcp-server openbsd-inetd lftp tftpd-hpa syslinux
    
  2. DHCP-Setup

    • Bearbeiten Sie /etc/default/isc-dhcp-server, die Ethernet-Schnittstelle für den DHCP-Dienst

      INTERFACES="eth0"
      
    • Bearbeiten Sie /etc/dhcp/dhcpd.conf‬ oder /etc/ltsp/dhcpd.conf die vorhandene DHCP-Dienstkonfiguration

      PXE-spezifische Konfigurationen: filename & next-server

      default-lease-time 600;
      max-lease-time 7200;
      subnet 192.168.10.0 netmask 255.255.255.0 {
          range 192.168.10.50 192.168.10.100;
          option subnet-mask 255.255.255.0;
          option routers 192.168.10.123;
          option broadcast-address 192.168.10.255;
          filename "pxelinux.0";
          next-server 192.168.10.123;
      }
      
    • Richten Sie eine statische IP für eth0, 192.168.10.123 in meinem Fall mit Network Manager für Desktop Edition oder /etc/network/interfaces für Server Edition ein.

      auto eth0
      iface eth0 inet static
      address 192.168.10.123
      netmask 255.255.255.0
      network 192.168.10.0
      broadcast 192.168.10.255
      

      Reinitialisieren Sie die Netzwerkschnittstelle:

      Sudo ifdown eth0
      Sudo ifup eth0
      
    • Starten Sie den Dienst neu

      Sudo service isc-dhcp-server restart
      

      Status überprüfen

      netstat -lu
      

      Ausgabe

      Proto Recv-Q Send-Q Local Address           Foreign Address         State      
      udp        0      0 *:bootpc                *:*                                
      
  3. TFTP-Setup

    • Bearbeiten Sie ‪/etc/inetd.conf, entfernen Sie #<off># am Anfang der tftp Zeile oder fügen Sie es hinzu, falls es dort nicht unter #:BOOT: Kommentar steht. (Überspringen Sie dies mit systemd, 15.10 und höher)

      tftp    dgram   udp wait    root    /usr/sbin/in.tftpd  /usr/sbin/in.tftpd -s /var/lib/tftpboot
      
    • Boot-Service für inetd aktivieren

      Sudo update-inetd --enable BOOT
      
    • Dienst starten

      Sudo service openbsd-inetd restart
      Sudo service tftpd-hpa restart
      

      Status überprüfen

      netstat -lu
      

      Ausgabe

      Proto Recv-Q Send-Q Local Address           Foreign Address         State 
      udp        0      0 *:tftp                  *:*                          
      
  4. Setup der PXE-Startdateien

    • Entpacke pmagic-pxe-4.5.Zip. Wenn pxelinux.0 nicht vorhanden ist, beziehen Sie es aus dem sysliux-common -Paket, das unter /usr/lib/syslinux/pxelinux.0, Syslinux-Projekt oder buntu Netboot Image installiert ist.

      Setzen Sie sie in eine ähnliche Struktur.

      /var/lib/tftpboot/
       |-- pxelinux.0
       |-- pxelinux.cfg/
       |   `-- default
       `-- pmagic/
           |-- bzimage
           `-- initramfs
      
    • Bearbeiten Sie /var/lib/tftpboot/pxelinux.cfg/default, falls erforderlich, Beispielpfade: pmagic/bzimage & pmagic/initramfs

      DEFAULT partmagic 
      
      LABEL partmagic 
          MENU LABEL PartMagic 4.5 
          KERNEL pmagic/bzimage 
          APPEND initrd=pmagic/initramfs edd=off noapic load_ramdisk=1 Prompt_ramdisk=0 rw vga=791 sleep=10 loglevel=0 keymap=us livemedia
      
    • Richten Sie die richtigen Berechtigungen ein

      Sudo find /var/lib/tftpboot -type f -exec chmod 644 {} \;
      Sudo find /var/lib/tftpboot -type d -exec chmod 755 {} \;
      

Client-Setup

Ändern Sie die BIOS-Startreihenfolge einmal mit F9 oder F12, für permanentes Setup über die BIOS-Konfiguration DEL,F2 oder F12. (Abhängig von der Maschinenmarke)

Nach oben gehen: [PXE | NIC | LAN | Ethernet | Network].

Anmerkungen

  • inetutils-inetd oder xinetd können anstelle von openbsd-inetd verwendet werden, einige inetd Schritte sind unterschiedlich.

  • Das TFTP-Stammverzeichnis kann von /etc/default/tftpd-hpa geändert werden. Denken Sie daran, ‪/etc/inetd.conf ebenfalls zu aktualisieren.

  • Viele Distributionen unterstützen das Laden von RAMDisk über viele Protokolle: SSH (SFTP), SMB, NFS ... Beispiel Ubuntu unterstützt NFS.

  • Einige alte Netzwerkkarten unterstützen PXE nicht, iPXE ( Bsp. GPXE oder Etherboot ) kann entweder auf Diskette, USB-Laufwerk, Festplatte (/boot verwendet werden Partition) oder sogar auf ROM flashen (nur wenige NIC werden unterstützt). GRUB2 verfügt über ein Modul, das das Booten mit PXE unterstützt.

    Siehe auch Wikipedia: gPXE und ROM-O-matic .

  • Ubuntu Netboot Image von cdimage.ubuntu.com/netboot/ bietet die Installation von Ubuntu über das Netzwerk und fordert Sie auf, alle erforderlichen Pakete vom offiziellen oder einem lokalen Spiegel herunterzuladen, falls Sie eines haben.

    Die meisten Benutzer möchten ein Live-Image über PXE starten. Diese Frage galt nur zum Einrichten eines PXE-Servers. Siehe buntu Wiki: Installation - LocalNet

    Ubuntu NetBoot - Official archive mirrorUbuntu NetBoot - Custom/Local archive mirror

  • Das PXE-Menü kann angepasst werden. Die beste Vorlage, aus der Sie lernen können, ist buntu NetBoot . Siehe Pxeboot Multiple image

    PXE_Linux_Menu.png

  • memdisk kann verwendet werden, um die ISO- oder Disketten-Images direkt über PXE zu laden. Das Paket syslinux-common enthält eine Kopie. Der Client sollte über genügend RAM verfügen, um das Image sowie einen Teil zum Ausführen des geladenen Betriebssystems zu speichern.

    Konfigurationsbeispiel:

    /var/lib/tftpboot/
    |-- FDSTD.144
    |-- memdisk
    |-- pxelinux.0
    |-- slitaz-cooking.iso
    |-- pxelinux.cfg
    |   `-- default
    `-- pmagic/
        |-- bzimage
        `-- initramfs
    

    /pxelinux.cfg/default

    DEFAULT partmagic
    
    LABEL partmagic
        MENU LABEL PartMagic 4.5
        KERNEL pmagic/bzimage
        APPEND initrd=pmagic/initramfs edd=off noapic load_ramdisk=1 Prompt_ramdisk=0 rw vga=791 sleep=10 loglevel=0 keymap=us livemedia
    
    LABEL slitaz
        MENU LABEL ^Slitaz.iso
        TEXT HELP
    Testing boot from iso.
        ENDTEXT 
        KERNEL memdisk
        APPEND initrd=slitaz-cooking.iso
    
    LABEL freedos_std
        MENU LABEL ^FreeDOS STD
        TEXT HELP
    Testing boot from Floppy IMG.
        ENDTEXT 
        KERNEL memdisk
        APPEND initrd=FDSTD.144
    
  • PartedMagic-Pakete wurden von der offiziellen Website entfernt, nachdem der ursprüngliche Entwickler beschlossen hatte, sie zu vermarkten. Einige Veröffentlichungen konnten über das Torrent-Netzwerk gefunden werden. Meine Antwort hier ist eine Zusammenfassung des ersten PXE-Setups, das für mich funktioniert hat. buntu Netboot Image sollte mit den gleichen Anweisungen funktionieren.

30
user.dz