dieazubinne
Goto Top

PXE Boot über TFTP UBUNTU Server mit MS DHCP Server

Hallo ihr lieben,

ich versuche gerade einen Ubuntu 20.04.1 Server für PXE boot zu konfigurieren.

Es gibt schon einen DHCP im Netzwerk mit MS 2016 Standard Server Betriebssystem.

Ich habe so gut wie keine Erfahrung mit Ubuntu Server.
Ich habe nach dieser Anleitung meinen Ubuntu Server konfiguriert:
http://www.thurnhofer.net/pxe-server-unter-linux-installieren/
habe allerdings auch Bruchteile aus dieser Anleitung übernommen:
https://www.foxplex.com/sites/pxe-boot-server-unter-ubuntu-einrichten/

Mit Bruchteilen ist eigentlich hauptsächlich der Pfad des tftpboot Ordners jetzt nicht "/tftpboot", sondern "/var/lib/tftpboot"

Was ich auch nicht übernommen habe aus der thurnhofer.net Anleitung sind die DHCP Zeilen in der dnsmasq.conf, also:
019 dhcp-range=...
und
020 dhcp-boot=...

Im DHCP Server habe ich 066 und 067 aktiviert in der 066 ist die IP Adresse des Ubuntu Servers hinterlegt.
Mir ist allerdings nicht ganz klar was bei 067 rein muss.

Wenn ich einen Client über Netzwerk starte bekommt er eine IP Adresse zugewiesen dann kommt aber folgendes:
TFTP.
PXE-T01: File not found
PXE-E3B: TFTP Error - File Not found
PXE-M0F: Exiting Intel PXE ROM.

Ich vermute es liegt an der 067 oder die Freigabe des Ordners hat nicht geklappt. Vielleicht auch beides face-smile
Müsste ich über Windows auf die Freigabe vom tftpboot zugreifen können?

Beim booten des Linux Servers tritt auch ein Fehler bei dnsmasq auf, irgendwas mit DHCP ich kann es nicht lesen, da es so schnell durchläuft.

Ich hoffe mir kann hier jemand unkompliziert helfen.

Liebe Grüße
Carmen

Content-ID: 639635

Url: https://administrator.de/forum/pxe-boot-ueber-tftp-ubuntu-server-mit-ms-dhcp-server-639635.html

Ausgedruckt am: 23.12.2024 um 15:12 Uhr

BirdyB
BirdyB 11.01.2021 um 08:45:15 Uhr
Goto Top
Hi Carmen,

in 067 musst du den Dateinamen der Boot-File eintragen. Das kannst du ja in deinem TFTP-Directory nachsehen.

Viele Grüße
NordicMike
NordicMike 11.01.2021 um 08:50:34 Uhr
Goto Top
Such dir eine PXE Anleitung von Windows raus, da siehst du was du unter 66 und 67 eintragen musst, übrigens auch unter 60.

z.B. hier
https://www.itnator.net/pxe-boot-dhcp-einstellungen/

Die Linux Meldungen werden im Log gespeichert, da kannst du dem Fehler auf den Grund gehen.

Vermutlich unter
/var/log/syslog
oder
/var/log/messages
DieAzubinne
DieAzubinne 11.01.2021 um 08:57:55 Uhr
Goto Top
Danke für die schnelle Antwort

Such dir eine PXE Anleitung von Windows raus, da siehst du was du unter 66 und 67 eintragen musst, übrigens auch unter 60.
Mein Windows DHCP Server hat keine 60 ^^
NordicMike
NordicMike 11.01.2021 aktualisiert um 09:02:08 Uhr
Goto Top
Mein Windows DHCP Server hat keine 60
Das ist der Beweis, dass du dem Link nicht gefolgt bist


Die DHCP Option 60 ist im Standard nicht verfügbar, diese muss per CMD (Eingabeaufforderung) hinzugefügt werden.
netsh
dhcp server
add optiondef 60 PXEClient String 0 comment=PXE support
exit
DieAzubinne
DieAzubinne 11.01.2021 um 09:04:39 Uhr
Goto Top
Hi BirdyB

in 067 musst du den Dateinamen der Boot-File eintragen. Das kannst du ja in deinem TFTP-Directory nachsehen.
und wenn da keine drin ist, dann habe ich irgendwas falsch gemacht
Ich habe folgende Dateien bzw. Ordner in meiner tftpboot Ordner:
ldlinux.c32 pxelinux.0 pxelinux.cfg ubuntu ubuntu-installer version.info
DieAzubinne
DieAzubinne 11.01.2021 um 09:05:42 Uhr
Goto Top
Das ist der Beweis, dass du dem Link nicht gefolgt bist ^^
Nur der Beweise wer lesen tut ist klar im Vorteil

Sollte die 60 dann in den Optionen erscheinen?
NordicMike
NordicMike 11.01.2021 um 09:10:57 Uhr
Goto Top
Das weiss ich leider nicht, ich habe es nie ausprobiert. Aber du könntest es ausprobieren. Wenn keine Fehlermeldung beim erzeugen kam, wird es wohl geklappt haben.

Du kannst auch überprüfen ob der Client versucht hat die Datei per TFTP abzuholen. Also die Logs vom TFTP kontrollieren, bzw ggfls einschalten.
DieAzubinne
DieAzubinne 11.01.2021 um 09:15:45 Uhr
Goto Top
in 067 musst du den Dateinamen der Boot-File eintragen. Das kannst du ja in deinem TFTP-Directory nachsehen.
und wenn da keine drin ist, dann habe ich irgendwas falsch gemacht
Ich habe folgende Dateien bzw. Ordner in meiner tftpboot Ordner:
ldlinux.c32 pxelinux.0 pxelinux.cfg ubuntu ubuntu-installer version.info

Ah okay, es ist die pxelinux.0 gebe ich jetzt in die 67 pxelinux.0 ein?
Das funktioniert nicht
NordicMike
NordicMike 11.01.2021 um 09:25:15 Uhr
Goto Top
Als ersten Blindversuch kannst du alle Logs auf dem Linux Rechner in Echtzeit überwachen mit

tail -f /var/log/*

Dann versuchst du ein boot vom Client, dann siehst du ob in dieser Zeit etwas an Logs dazu gekommen ist.
BirdyB
BirdyB 11.01.2021 um 09:27:06 Uhr
Goto Top
Zitat von @DieAzubinne:
Ah okay, es ist die pxelinux.0 gebe ich jetzt in die 67 pxelinux.0 ein?
Grundsätzlich ja... Wenn ich mich recht erinnere, musst du neben der Datei noch die IP des Servers angeben. Schnelles googlen brachte mir gerade sowas: dhcp-boot=pxelinux.0,pxeserver,192.168.1.14 - Wobei die 192.168.1.14 die IP des Boot-Servers ist.
Das funktioniert nicht
Welchen Fehler bekommst du?
DieAzubinne
DieAzubinne 11.01.2021 um 09:33:35 Uhr
Goto Top
Ah okay, es ist die pxelinux.0 gebe ich jetzt in die 67 pxelinux.0 ein?
Grundsätzlich ja... Wenn ich mich recht erinnere, musst du neben der Datei noch die IP des Servers angeben. Schnelles googlen brachte mir >gerade sowas: dhcp-boot=pxelinux.0,pxeserver,192.168.1.14 - Wobei die 192.168.1.14 die IP des Boot-Servers ist.
die Zeile hätte ich im Ubuntu Server eintragen müssen, würde ich nicht einen Windows DHCP Server benutzen. Ich habe es ausprobiert, bringt keine Änderung.

Welchen Fehler bekommst du?
Immer noch das PXE-T01: File not found usw.
aqui
aqui 11.01.2021 um 09:40:10 Uhr
Goto Top
NordicMike
NordicMike 11.01.2021 um 09:45:25 Uhr
Goto Top
Ich habe nun mehrmals erfolglos versucht auf die Logs hinzuweisen.

Es bleibt also bei einer Raterunde, ich bin somit raus ^^
DieAzubinne
DieAzubinne 11.01.2021 um 09:46:30 Uhr
Goto Top
Als ersten Blindversuch kannst du alle Logs auf dem Linux Rechner in Echtzeit überwachen mit

tail -f /var/log/*

Dann versuchst du ein boot vom Client, dann siehst du ob in dieser Zeit etwas an Logs dazu gekommen ist.

Muss das so aussehen?
ubuntulog
NordicMike
NordicMike 11.01.2021 um 09:51:07 Uhr
Goto Top
Ja, das ist normal, da du auch komprimierte Dateien in dem Ordner hast.

Nun zum nächsten Punkt:

Dann versuchst du ein boot vom Client, dann siehst du ob in dieser Zeit etwas an Logs dazu gekommen ist.
DieAzubinne
DieAzubinne 11.01.2021 um 09:58:48 Uhr
Goto Top
Zitat von @NordicMike:

Ja, das ist normal, da du auch komprimierte Dateien in dem Ordner hast.
Nach einem Neustart schaut es jetzt normal aus

Dann versuchst du ein boot vom Client, dann siehst du ob in dieser Zeit etwas an Logs dazu gekommen ist.

Ich bekomme ohne das der Client bootet folgendes:
ubuntulog

Wenn ich den Client starte ändert sich im Log nichts
Dr.Bit
Dr.Bit 11.01.2021 um 10:43:10 Uhr
Goto Top
Muß es denn unbedingt der MS DHCP Server sein? Mit dem Linux Server ist das deutlich einfacher.

🖖
DieAzubinne
DieAzubinne 11.01.2021 um 10:51:58 Uhr
Goto Top
Zitat von @Dr.Bit:

Muß es denn unbedingt der MS DHCP Server sein? Mit dem Linux Server ist das deutlich einfacher.
Der Linux Server wird in ein Bestehendes Netzwerk integriert und da gibt es halt schon einen DHCP Server
ich will das auch nicht ändern face-wink
ChriBo
ChriBo 11.01.2021 um 15:19:16 Uhr
Goto Top
Hi,
erstmal:
für das klassische, aber veraltete PXE boot (mit pxelinux.0) brauchst du folgende Windows DHCP Server Option:
066 = IP Adresse des TFTP Servers = scheint bei die OK zu sein
067 = pxelinux.0

pxelinux.0 muß im TFTP root Ordner liegen , lt deiner Angabe in /var/lib/tftpboot.
eboso muß in diesem Ordner ein Ordner(!) pxelinux.cfg erstellt werden und in diesem Ordner eine Datei default , welche das Boot Menü enthält.
Welche Dateien und Ordner zusätzlich noch in /var/lib/tftpboot vorhanden sein müssen ist von deiner Syslinux version und von deinem Boot Menü abhängig. Poste mal dein Boot Menü.

Firewall auf dem Ubuntu Server muß für UDP/69 eingehend offen sein und die Berechtigungen im Ordner /var/lib/tftpboot müssen auch OK sein.

erweitere mal deine /etc/default/tftp-hpa auf TFTP_OPTIONS="-s -c -l -vvv".

Wo du die Logfiles genau findest kann ich dir leider nicht sagen, da ich kein Ubuntu verwende.
wnn du das logfile gefunden hast:
tail <logfile> dann boote einen Client und schau welche dateien geladen werden, bzw. vermisst werden.

BTW: PXE boot mit pxelinux.0 ist "etwas" veraltet, zum üben noch zu gebrauchen, aber nichts für die Produktion.
Aktuell ist iPXE moderner und ggf. viel schneller

Gruß
CH
DieAzubinne
DieAzubinne 12.01.2021 um 08:52:24 Uhr
Goto Top
Hi,
Hi
für das klassische, aber veraltete PXE boot (mit pxelinux.0) brauchst du folgende Windows DHCP Server Option:
066 = IP Adresse des TFTP Servers = scheint bei die OK zu sein
067 = pxelinux.0
Hab ich
pxelinux.0 muß im TFTP root Ordner liegen , lt deiner Angabe in /var/lib/tftpboot.
eboso muß in diesem Ordner ein Ordner(!) pxelinux.cfg erstellt werden und in diesem Ordner eine Datei default , welche das Boot Menü enthält.
Hab ich
Welche Dateien und Ordner zusätzlich noch in /var/lib/tftpboot vorhanden sein müssen ist von deiner Syslinux version und von deinem Boot Menü abhängig. Poste mal dein Boot Menü.

## default ##
PATH /var/lib
tftpboot/ubuntu-installer/amd64/boot-screens/
DEFAULT /var/lib/tftpboot/ubuntu-installer/amd64/boot-screens/vesamenu.c32
PROMPT 0
TIMEOUT 150
ONTIMEOUT local
NOESCAPE 1
ALLOWOPTIONS 1

MENU BACKGROUND /var/lib/tftpboot/ubuntu-installer/amd64/boot-screens/bootlogo.png
MENU RESOLUTION 800 600
MENU TITLE HTDOM PXE Server
MENU COLOR TITLE 1;37 #ffffffff #00000000 std

MENU WIDTH 98
MENU ROWS 11
MENU MARGIN 15
MENU COLOR BORDER * #00000000 #00000000 std

LABEL Boot from local DISK
localboot 0
TEXT HELP
Boot from local DISK
ENDTEXT

LABEL ---------------------------------------------------------------------

LABEL Ubuntu 20.04.1 Desktop Live
kernel /var/libtftpboot/ubuntu/amd64/casper/vmlinuz.efi
append vga=normal netboot=nfs boot=casper nfsroot=192.168.178.10:/var/lib/tftpboot/ubuntu/amd64/ ro initrd=/var/lib
tftpboot/ubuntu/amd64/casper/initrd.lz locale=de_DE bootkbd=de console-setup/layoutcode=de
TEXT HELP
Boot Ubuntu 20.04.1 Desktop Live
ENDTEXT


Firewall auf dem Ubuntu Server muß für UDP/69 eingehend offen sein und die Berechtigungen im Ordner /var/lib/tftpboot müssen auch OK sein.
Wenn ich "ufw allow 69/UDP" eingebe kommt "ERROR: Bad port" ohne "/UDP" sagt er Rules updated
Die Freigabe für tftpboot sieht so aus:
## /etc/exports ##
/var/lib/tftpboot/ubuntu/amd64 192.168.0.0/22(ro,async,no_root_squash,no_subtree_check)//

erweitere mal deine /etc/default/tftp-hpa auf TFTP_OPTIONS="-s -c -l -vvv".
Soll ich das hinzufügen oder soll ich die vorhandene TFTP_OPTIONS Zeile um die Atributte erweitern?

Wo du die Logfiles genau findest kann ich dir leider nicht sagen, da ich kein Ubuntu verwende.
wnn du das logfile gefunden hast:
tail <logfile> dann boote einen Client und schau welche dateien geladen werden, bzw. vermisst werden.
Bei den Log Files, so wie NordicMike es erklärt hat passiert weiterhin nicht mehr als ich schon gepostet habe.

BTW: PXE boot mit pxelinux.0 ist "etwas" veraltet, zum üben noch zu gebrauchen, aber nichts für die Produktion.
Aktuell ist iPXE moderner und ggf. viel schneller
Hast du eine detaillierte Anleitung wie man diesen installiert?

Vielen Dank für deine Hilfe
NordicMike
NordicMike 12.01.2021 um 08:56:20 Uhr
Goto Top
Wenn sich in den Logs nichts tut, kontrollier mal ob TFTP überhaupt läuft. Und ob er auch auf Port 69 überhaupt zuhört.
DieAzubinne
DieAzubinne 12.01.2021 um 09:04:41 Uhr
Goto Top
Wenn sich in den Logs nichts tut, kontrollier mal ob TFTP überhaupt läuft. Und ob er auch auf Port 69 überhaupt zuhört.
Guten Morgen, wie mach ich das den kannst du mir das schnell sagen oder vielleicht nen Link schicken, wo es erklärt wird.
Danke
NordicMike
NordicMike 12.01.2021 um 09:20:21 Uhr
Goto Top
Ich habe mir mal erlaubt für dich zu googeln, ich hoffe du bist mir deswegen nicht böse:

netstat -nlp
DieAzubinne
DieAzubinne 12.01.2021 um 09:22:04 Uhr
Goto Top
Wenn sich in den Logs nichts tut, kontrollier mal ob TFTP überhaupt läuft. Und ob er auch auf Port 69 überhaupt zuhört.
service --status-all und bei tftpd-hpa ein + davor. Ist das, das richtige? und heißt der Dienst läuft?
Dr.Bit
Dr.Bit 12.01.2021 um 09:40:15 Uhr
Goto Top
Zitat von @DieAzubinne:

Wenn sich in den Logs nichts tut, kontrollier mal ob TFTP überhaupt läuft. Und ob er auch auf Port 69 überhaupt zuhört.
service --status-all und bei tftpd-hpa ein + davor. Ist das, das richtige? und heißt der Dienst läuft?

Hmm, ich will Dir ja nicht zu nahe treten, aber wenn Du das nicht selber weißt, ist das vielleicht nicht das richtige Projekt für Dich. Du wirst immer wieder auf solche "Tools" zurükgreifen müssen um dein LTSP sauber ans Laufen zu bekommen oder Fehler zu suchen. Und wenn es dann unter Zeitdruck ist, hast Du nicht die Zeit zu fragen. Ich empfehle Dir also Dich schnellstmöglich mit den Standardbefehlen und deren Funktion sowie Schaltern vertraut zu machen. Sonst läufst Du in offene Messer.

🖖
DieAzubinne
DieAzubinne 12.01.2021 um 09:48:43 Uhr
Goto Top
Ich habe mir mal erlaubt für dich zu googeln, ich hoffe du bist mir deswegen nicht böse:

Ah Ironie... cool
NordicMike
NordicMike 12.01.2021 um 09:51:20 Uhr
Goto Top
Ah Ironie
Aeh, nein, nicht ganz, ein Wink mit dem Zaunpfahl...

Aber was will ich dir damit nur sagen... hmmm... kommst du drauf?
DieAzubinne
DieAzubinne 12.01.2021 um 09:51:31 Uhr
Goto Top
Hmm, ich will Dir ja nicht zu nahe treten, aber wenn Du das nicht selber weißt, ist das vielleicht nicht das richtige Projekt für Dich. Du wirst immer >wieder auf solche "Tools" zurükgreifen müssen um dein LTSP sauber ans Laufen zu bekommen oder Fehler zu suchen. Und wenn es dann unter >Zeitdruck ist, hast Du nicht die Zeit zu fragen. Ich empfehle Dir also Dich schnellstmöglich mit den Standardbefehlen und deren Funktion sowie >Schaltern vertraut zu machen. Sonst läufst Du in offene Messer.

Du hast recht ich vergesse die ganze Sache, was bilde ich mir überhaupt ein
DieAzubinne
DieAzubinne 12.01.2021 um 09:51:59 Uhr
Goto Top
Ah Ironie
Aeh, nein, nicht ganz, ein Wink mit dem Zaunpfahl...

Aber was will ich dir damit nur sagen... hmmm... kommst du drauf?

Mach dein ### selbst?
NordicMike
NordicMike 12.01.2021 um 09:57:42 Uhr
Goto Top
Mach dein ### selbst?
Ein bisschen subtiler, nach dem Motto: Googeln geht schneller als hier zu fragen.

Wie bereits erwähnt, sollte man die Grundfunktionen eines Betriebssystems beherrschen, wenn man sich an solche Projekte wagt, oder sogar debuggen will.
Dr.Bit
Dr.Bit 12.01.2021 um 11:33:50 Uhr
Goto Top
Zitat von @DieAzubinne:

Du hast recht ich vergesse die ganze Sache, was bilde ich mir überhaupt ein

Das wollte ich damit nicht sagen. Ich begrüße es sehr, wenn man über den Tellerrand schaut. Aber wenn Du wegen solch einer einfachen Sache fragen mußt, gehe ich davon aus, das Du in Linux noch nicht sehr versiert bist. Und gerade bei Linux kann man (wenn man nicht so genau weiß was man tut) sehr schnell das System "verbasteln". Daher meine Empfehlung Dich schnellstmöglich mit den wichtigsten Befehlen vertraut zu machen. Wir haben alle mal klein angefangen.
Also: wie NordicMike schon sagte -> Google ist Dein Freund.

🖖
ChriBo
ChriBo 12.01.2021 um 16:33:00 Uhr
Goto Top
Hi,
Soll ich das hinzufügen oder soll ich die vorhandene TFTP_OPTIONS Zeile um die Atributte erweitern?
ersetzte die Attribute. wichtig ist -vvv ,damit siehst du im log welche dateien angefordert werden und welche Dateien ausgeliefert werden, bzw. welche Fehler auftreten.
Ohne -vvv siehst du nur: hpa-tftpd startet oder stopped, was dir bei der Fehlersuche nicht weiterhilft, da keine Logs generiert werden.

Hast du eine detaillierte Anleitung wie man diesen installiert?
Nein, schau dir mal den Tiny PXE Server an.
Ist zwar ein Windows Tool, die Konfigurationsdateien zeigen aber sehr viele PXE boot Beispiele und können dann auf deinen Ubuntu Server adaptiert werden.

Wenn ich deine /pxelinux.cfg/default sehe: Wo hast du die denn her ?
die Pfadangaben /var/lib/tftpboot/ubuntu-installer/*/*.* sind meines Wissens nach verkehrt.
TFTP root ist ja /var/lib/tftpboot/ ,also müssen die Pfadangaben ubuntu-installer/*/*.* sein.

nfsroot=192.168.178.10:/var/lib/tftpboot/ubuntu/amd64/ ro initrd=/var/libtftpboot
Oha, noch eine nfs Freigabe; stimmt die IP und die Pfadangaben ?

kernel /var/li btftpboot/ubuntu/amd64/casper/vmlinuz.efi
Du wechselst von BIOS boot zu UEFI boot, das wird wahrscheinlich schiefgehen.