dhcp-server auf OMV5

Änderungsstand: 2020-03-12

PXE-Boot auf OMV5 mit DHCP-Server, inkl. Menu zum Testen.

Menueintrag mit Memtest funktionsfähig!

Zuerst einen Freigabeordner in OMV5 mit dem Namen tftpboot erstellen. Darauf achten, dass dieser Ordner komplette (alle) Schreibrechte hat.

Dann in den OMV5-Erweiterungen openmediavault-tftp installieren, dieses aktivieren auf Port 69, den Freigabeordner wählen und „Neue Daten zulassen“ wählen. Speichern. (Dieser Schritt wird benötigt, damit das TFTP-Rootverzeichnis angelegt wird. Linux-User ohne OMV5 verwenden dafür apt-install tftpd-hpa, was aber zu einer zusätzlichen Konfiguration führen würde, auf die ich hier allerdings nicht eingehe, weil ich es einfach nicht benötige! 🙂 )

Infos zur Konfiguration meines Umfeldes:

  • Router: 192.168.252.1
  • Geteway: 192.168.252.0
  • Broadcast: 192.168.252.255
  • Domain Name: fritz.box
  • Domain Name Server (mein Router): 192.168.252.1
  • next-server (mein Server): 192.168.252.49
  • Mein erstelltes Verzeichnis (auch tftp-root): /srv/dev-disk-by-label-SSD/tftpboot
  • Meine Netzwerkkarte (interface): enp24s0 (Das 0 ist eine NULL)
  • [Die Bezeichnung des „Interface“ kann man mit ip a abfragen]
  • Als „Range“ wähle ich einen IP-Bereich, den meine FritzBox nicht selbst vergibt (200-253)

Vorbereitung:

Zuerst installiere ich alle Sachen, die für einen PXE-Start benötigt werden.

sudo apt-get install pxelinux syslinux syslinux-common
sudo cp /usr/lib/PXELINUX/pxelinux.0 /usr/lib/syslinux/modules/bios/ldlinux.c32 /usr/lib/syslinux/modules/bios/libutil.c32 /usr/lib/syslinux/modules/bios/libcom32.c32 /usr/lib/syslinux/modules/bios/chain.c32 /usr/lib/syslinux/modules/bios/menu.c32 /usr/lib/syslinux/modules/bios/vesamenu.c32 /srv/dev-disk-by-label-SSD/tftpboot/

Jetzt das Memtest:

cd
wget http://www.memtest.org/download/5.01/memtest86+-5.01.bin.gz
gzip -dk memtest86+-5.01.bin.gz
mkdir /srv/dev-disk-by-label-SSD/tftpboot/memtest
cp ~/memtest86+-5.01.bin /srv/dev-disk-by-label-SSD/tftpboot/memtest/memtest86+-5.01
rm memtest86+-5.01.bin.gz

Als nächstes richte ich das PXE-Menu ein. Die Einträge für Memtest sind schon drin.

mkdir -p /srv/dev-disk-by-label-SSD/tftpboot/pxelinux.cfg
sudo nano /srv/dev-disk-by-label-SSD/tftpboot/pxelinux.cfg/default
DEFAULT vesamenu.c32
MENU TITLE Netzwerk Boot PXE, Server: Raspi4
MENU CLEAR
ALLOWOPTIONS 0
PROMPT 0
TIMEOUT 0
MENU COLOR hotkey 1;31;44
LABEL –
MENU LABEL Lokale Boot Option:
MENU DISABLE
LABEL localboot
menu label Booten von lokaler Festplatte
LOCALBOOT 0
MENU SEPARATOR
LABEL –
MENU LABEL Netzwerk Boot Optionen:
MENU DISABLE
#Hier beginnen die Booteinträge!
#
label memtest86
 menu label Memtest86+ 5.01
 kernel /memtest/memtest86+-5.01
#
# EOF
#

Strg-x, y, Enter

Jetzt installiere ich den DHCP-Server und richte diesen ein.

Achtung! Fehlermeldungen nach der Installation sind normal und verschwinden nach der Konfiguration.

apt -y install isc-dhcp-server
mv /etc/default/isc-dhcp-server /etc/default/isc-dhcp-server.old
nano /etc/default/isc-dhcp-server
DHCPDv4_CONF=/etc/dhcp/dhcpd.conf
INTERFACESv4="enp24s0"
#INTERFACESv6="enp24s0"

Strg-x, y, Enter

mv /etc/dhcp/dhcpd.conf /etc/dhcp/dhcpd.conf.backup
nano /etc/dhcp/dhcpd.conf
authoritative;
ddns-update-style none;
allow booting;
allow bootp;
option domain-name "fritz.box";
option domain-name-servers 192.168.252.1,
authoritative;
default-lease-time 600;
max-lease-time 7200;

subnet 192.168.252.0 netmask 255.255.255.0 {
  range dynamic-bootp 192.168.252.200 192.168.252.253;
  #range 192.168.252.200 192.168.252.253;
  option broadcast-address 192.168.252.255;
  option routers 192.168.252.1;
  option domain-name-servers 192.168.252.1;
  next-server 192.168.252.49;
  filename "pxelinux.0";
}

Strg-x, y, Enter

systemctl restart isc-dhcp-server

Falls an dieser Stelle eine Fehlermeldung erscheint, dass der DHCP-Server nicht gesteartet werden kann, folgende 2 Befehle abarbeiten. Dann sollte die Fehlermeldung weg sein und der DHCP-Server starten. Falls der Fehler dann immer noch erscheint, sollte man die 2 Scripte nochmals auf Fehler überprüfen. Schnell übersieht man etwas bei den vielen Zahlen 🙂 .

rm /var/run/dhcpd.pid
systemctl restart isc-dhcp-server

Fertig. Jetzt den PXE-Netzwerkboot auf einem Rechner im Netzwerk starten und das Bootmenu erscheint. Nicht wundern, dass als Server Raspi4 drin steht. Ich habe den Code für das Menu von meinem Raspi4 kopiert und nicht geändert.