Fehler bei UEFI-PXE-Boot

ablock
Beiträge: 13
Registriert: 29 Nov 2019, 16:53

Fehler bei UEFI-PXE-Boot

Beitrag von ablock »

Hallo habe folgendes Problem mit UEFI-Boot-Clients:
Egal, ob für den UEFI-Client ein Netboot-Produkt auf setup gesetzt ist oder nicht, er versucht immer einen ELILO-Boot und hängt sich darin auf. Bios-Boot funktioniert.

Habe sowohl einen Windows DHCP Server nach Anleitung konfiguriert, als auch einen Linux-ISC-DHCP-Server. Beide führen zum identischen Fehlverhalten.
Der Fehler tritt sowohl bei einem 64-Bit Notebook mit hdd auf als auch bei einem 64-Bit-Mini-PC mit emmc.
Habe im configed unter Hilfe "installierte opsi module" kontrolliert, dass 500 Lizenzen frei geschaltet sind für uefi.

Wenn ich im configed unter netboot mein Windows-Produkt auf Setup setze, wird im opsi-Server unter /tftboot/linux/pxelinux.cfg die entsprechende pipe mit 01-MAC-Adresse angelegt.
wenn ich cat 01-MAC mache, wird folgendes angezeigt:
default 64bit

label 32bit
kernel install
append initrd=miniroot.bz2 video=vesa:ywrap,mtrr vga=791 quiet splash --no-log console=tty1 console=ttyS0 dn=schule.local product=win10-x64-enterprise1904 hn=pc107-01 pckey=dXXXXXXXXXXXXXXXXXXc9e78444 service=https://10.2.13.16:4447/rpc

label 64bit
kernel install-x64
append initrd=miniroot-x64.bz2 video=vesa:ywrap,mtrr vga=791 quiet splash --no-log console=tty1 console=ttyS0 dn=schule.local product=win10-x64-enterprise1904 hn=pc107-01 pckey=d7XXXXXXXXXXXXXXXXX0d0c9e78444 service=https://10.2.13.16:4447/rpc

Wenn ich dann den Client über Netzwerk boote, zeigt er folgende Fehlermeldung an:
near line 1: Option expects an equal signal + (null)
near line 3: Unknown option
forcing interactive mode due to config file error(s)
ELILO boot: ............................................................. (usw.)

Danach ist die Pipe in /tftboot/linux/pxelinux.cfg verschwunden
In /var/log/opsi/opsipxeconfd.log findet sich folgender Eintrag:
[5] [Jan 24 17:21:12] Got connection from client (opsipxeconfd|178)
[5] [Jan 24 17:21:39] Got connection from client (opsipxeconfd|178)
[5] [Jan 24 17:21:39] Special pxe config template u'install3264' will be used used for host u'pc107-01.schule.local', product u'win10-x64-enterprise1904' (opsipxeconfd|560)
[5] [Jan 24 17:21:39] PXE boot configuration for host pc107-01.schule.local is now set at u'/tftpboot/linux/pxelinux.cfg/01-30-65-ec-a5-59-b1' (opsipxeconfd|450)
[5] [Jan 24 17:23:21] Pipe u'/tftpboot/linux/pxelinux.cfg/01-30-65-ec-a5-59-b1' opened, piping pxe boot configuration (opsipxeconfd|830)

Der Befehl service opsi-tftpd-hpa status liefert folgende Ausgabe
● opsi-tftpd-hpa.service - Opsi TFTPD HPA Configuration Service
Loaded: loaded (/lib/systemd/system/opsi-tftpd-hpa.service; enabled; vendor preset: enabled)
Active: active (running) since Fri 2020-01-24 17:06:37 CET; 23min ago
Process: 741 ExecStart=/usr/sbin/in.tftpd -v --ipv4 --listen --address :69 --secure /tftpboot/ (code=exited, status=0/
Main PID: 792 (in.tftpd)
Tasks: 1 (limit: 4647)
CGroup: /system.slice/opsi-tftpd-hpa.service
└─792 /usr/sbin/in.tftpd -v --ipv4 --listen --address :69 --secure /tftpboot/

Jan 24 17:23:20 opsiserver.schule.local in.tftpd[1977]: RRQ from 10.1.201.130 filename linux/pxelinux.cfg/elilo.efi
Jan 24 17:23:20 opsiserver.schule.local in.tftpd[1977]: tftp: client does not accept options
Jan 24 17:23:20 opsiserver.schule.local in.tftpd[1978]: RRQ from 10.1.201.130 filename linux/pxelinux.cfg/elilo.efi
Jan 24 17:23:21 opsiserver.schule.local in.tftpd[1981]: RRQ from 10.1.201.130 filename linux/pxelinux.cfg/0A01C9.conf
Jan 24 17:23:21 opsiserver.schule.local in.tftpd[1984]: RRQ from 10.1.201.130 filename linux/pxelinux.cfg/0A-x86_64.conf
Jan 24 17:23:21 opsiserver.schule.local in.tftpd[1986]: RRQ from 10.1.201.130 filename linux/pxelinux.cfg/01-30-65-ec-a5
Jan 24 17:23:21 opsiserver.schule.local in.tftpd[1989]: RRQ from 10.1.201.130 filename linux/pxelinux.cfg/elilo-x86_64.c
Jan 24 17:23:21 opsiserver.schule.local in.tftpd[1990]: RRQ from 10.1.201.130 filename linux/pxelinux.cfg/elilo.conf

Wenn ich dann den Client neu starte, bekomme ich eine leicht abgewandelte Fehlermeldung (Diese kommt auch bei allen anderen UEFI-Clients, die nicht auf setup gestellt sind) :
near line 4: Unknown option
forcing interactive mode due to config file error(s)
ELILO boot: ............................................................. (usw.)

/var/log/opsi/opsipxeconfd.log enthält dadurch keinen weiteren Eintrag.

Der Befehl service opsi-tftpd-hpa status zeigt weitere Einträge.
● opsi-tftpd-hpa.service - Opsi TFTPD HPA Configuration Service
Loaded: loaded (/lib/systemd/system/opsi-tftpd-hpa.service; enabled; vendor preset: enabled)
Active: active (running) since Fri 2020-01-24 17:06:37 CET; 32min ago
Process: 741 ExecStart=/usr/sbin/in.tftpd -v --ipv4 --listen --address :69 --secure /tftpboot/ (code=exited, status=0/
Main PID: 792 (in.tftpd)
Tasks: 1 (limit: 4647)
CGroup: /system.slice/opsi-tftpd-hpa.service
└─792 /usr/sbin/in.tftpd -v --ipv4 --listen --address :69 --secure /tftpboot/

Jan 24 17:23:21 opsiserver.schule.local in.tftpd[1986]: RRQ from 10.1.201.130 filename linux/pxelinux.cfg/01-30-65-ec-a5
Jan 24 17:23:21 opsiserver.schule.local in.tftpd[1989]: RRQ from 10.1.201.130 filename linux/pxelinux.cfg/elilo-x86_64.c
Jan 24 17:23:21 opsiserver.schule.local in.tftpd[1990]: RRQ from 10.1.201.130 filename linux/pxelinux.cfg/elilo.conf
Jan 24 17:35:59 opsiserver.schule.local in.tftpd[2147]: RRQ from 10.1.201.130 filename linux/pxelinux.cfg/elilo.efi
Jan 24 17:35:59 opsiserver.schule.local in.tftpd[2147]: tftp: client does not accept options
Jan 24 17:35:59 opsiserver.schule.local in.tftpd[2148]: RRQ from 10.1.201.130 filename linux/pxelinux.cfg/elilo.efi
Jan 24 17:36:00 opsiserver.schule.local in.tftpd[2149]: RRQ from 10.1.201.130 filename linux/pxelinux.cfg/0A01C982.conf
Jan 24 17:36:00 opsiserver.schule.local in.tftpd[2155]: RRQ from 10.1.201.130 filename linux/pxelinux.cfg/0A.conf
Jan 24 17:36:00 opsiserver.schule.local in.tftpd[2156]: RRQ from 10.1.201.130 filename linux/pxelinux.cfg/01-30-65-ec-a5
Jan 24 17:36:00 opsiserver.schule.local in.tftpd[2158]: RRQ from 10.1.201.130 filename linux/pxelinux.cfg/elilo.conf
Benutzeravatar
wolfbardo
uib-Team
Beiträge: 1354
Registriert: 01 Jul 2008, 12:10

Re: Fehler bei UEFI-PXE-Boot

Beitrag von wolfbardo »

ist das uefi haekchen gesetzt?

Gruss
Bardo Wolf


OPSICONF 2024
https://opsi.org/en/opsiconf/

opsi-Basisworkshops:

22. - 25. 04. 2024


opsi support - uib gmbh
For productive opsi installations we recommend maintainance + support contracts which are the base of opsi development.

http://www.uib.de
ablock
Beiträge: 13
Registriert: 29 Nov 2019, 16:53

Re: Fehler bei UEFI-PXE-Boot

Beitrag von ablock »

Das Häkchen war tatsächlich nicht gesetzt. Ich habe das kleine Kästchen beim Dialog zum Anlegen der PCs bei "UEFI Boot ist server default" als checked interpretiert. Tatsächlich hat die Größe wohl eher die Funktion von ausgegraut. Wenn ich den Haken im Reiter "Clients" explizit setze, fängt der PC nach dem nächsten Neustart an, einen Kernel zu booten. Habe noch nicht lange genug laufen gelassen, um die Installation komplett durchzuführen.
Ich habe dann getestet, was beim nächsten Boot passiert, wenn der Client nicht auf setup gestellt ist. Der zweite Fehler tritt dann immer noch auf:

near line 4: Unknown option
forcing interactive mode due to config file error(s)
ELILO boot: ............................................................. (usw.)

Der User vor dem PC kann das dann zwar abbrechen mit ESC, aber das ist sehr lästig. Was muss ich einstellen, damit der Client nach der Installation normal bootet ohne Usereingriff?
ablock
Beiträge: 13
Registriert: 29 Nov 2019, 16:53

Re: Fehler bei UEFI-PXE-Boot

Beitrag von ablock »

Hallo,
also die Installation schlägt auch fehl: Windows wird zwar zum Teil installiert kann aber nicht booten. Folgender Ablauf findet bei der Installation statt:

Nach Einschalten des PC wird für ein paar Minuten angezeigt
ELILO v3.16 for EFI/x86_64
loading kernel /linux/install-x64... done
loading file /linux/miniroot-x64.bz2...done

Dann sieht man ein Linux hochbooten und für ein paar Minuten einen schwarzen Bildschirm
Danach weißer Bildschirm mit blauem Rahmen mit Hardwareinventarisierung und Anlegen von Dateisystemen auf /dev/mmcblk1
z.B. create file system fat32 on partition /dev/mmcblk1p4
Am Schluss kommt dann:
Netboot Product successful. Waiting for reboot
Der Rechner fährt dann herunter, aber startet nicht mehr neu.

Nach erneuten Einschalten kommt folgende Windows-Fehlermeldung:
Recovery
Your PC/Device needs to be repaired
The Boot Configuration Data file is missing some required information
File:\BCD
Error code: 0xc0000034


Im Log in configed sieht man am Schluss:
(11031) [6] [Jan 28 05:21:25] Executing: /bin/efibootmgr -c --disk /dev/mmcblk1 --part 4 -L opsitempwinpe --loader \\EFI\\boot\\bootx64.efi (Posix.py|856)
(11032) [6] [Jan 28 05:21:25] Using encoding 'ANSI_X3.4-1968' (Posix.py|889)
(11042) [6] [Jan 28 05:21:25] Executing: /bin/efibootmgr -v (Posix.py|856)
(11043) [6] [Jan 28 05:21:25] Using encoding 'ANSI_X3.4-1968' (Posix.py|889)
(11053) [5] [Jan 28 05:21:25] Boot entry opsitempwinpe has ID: 0000. (opsisetuplib.py|625)
(11054) [5] [Jan 28 05:21:25] New bootorder: 0000,0003,0004,0005,0001 . (opsisetuplib.py|654)
(11055) [6] [Jan 28 05:21:25] Executing: /bin/efibootmgr -o 0000,0003,0004,0005,0001 (Posix.py|856)
(11056) [6] [Jan 28 05:21:25] Using encoding 'ANSI_X3.4-1968' (Posix.py|889)
(11066) [6] [Jan 28 05:21:25] Executing: /bin/efibootmgr -v (Posix.py|856)
(11067) [6] [Jan 28 05:21:25] Using encoding 'ANSI_X3.4-1968' (Posix.py|889)
(11077) [6] [Jan 28 05:21:25] Executing: /bin/efibootmgr -n 0000 (Posix.py|856)
(11078) [6] [Jan 28 05:21:25] Using encoding 'ANSI_X3.4-1968' (Posix.py|889)
(11089) [5] [Jan 28 05:21:25] Set uefi boot entry 0000 for next boot (opsisetuplib.py|590)
(11090) [6] [Jan 28 05:21:25] Executing: /bin/efibootmgr -v (Posix.py|856)
(11091) [6] [Jan 28 05:21:25] Using encoding 'ANSI_X3.4-1968' (Posix.py|889)
(11102) [5] [Jan 28 05:21:26] umount /dev/mmcblk1p4 >> /tmp/gpt.log 2>&1 (setup.py|1933)
(11103) [6] [Jan 28 05:21:26] Executing: /bin/umount /dev/mmcblk1p4 (Posix.py|856)
(11104) [6] [Jan 28 05:21:26] Using encoding 'ANSI_X3.4-1968' (Posix.py|889)
(11106) [5] [Jan 28 05:21:29] diskcounter is still 0 (setup.py|1938)
(11107) [5] [Jan 28 05:21:29] Set to setup komplettcobra (opsisetuplib.py|993)
(11116) [6] [Jan 28 05:21:30] Executing: /bin/sleep 60; /sbin/shutdown -r -t 1 (Posix.py|856)
(11118) [5] [Jan 28 05:21:30] Script execution successful (master.py|1646)
(11125) [6] [Jan 28 05:21:30] Executing: cat /sysconf.ini (Posix.py|856)
(11126) [6] [Jan 28 05:21:30] Using encoding 'ANSI_X3.4-1968' (Posix.py|889)
(11249) [6] [Jan 28 05:21:30] Executing: cat /patcha.in (Posix.py|856)
(11250) [6] [Jan 28 05:21:30] Using encoding 'ANSI_X3.4-1968' (Posix.py|889)
(11380) [5] [Jan 28 05:21:30] Writing log to service (master.py|1722)
ablock
Beiträge: 13
Registriert: 29 Nov 2019, 16:53

Re: Fehler bei UEFI-PXE-Boot

Beitrag von ablock »

Hallo,
ein kleines Update zu meinem Problem:
wenn ich im configed unter den netboot-Produkten bei multi-disk-mode prefer_ssd einstelle, klappt die Installation. Das Problem, dass man bei einem netboot ohne Installation in einer Schleife hängen bleibt, bleibt allerdings bestehen. Ist auch bei der Installation mit den ganzen reboots äußerst lästig.
Viele Grüße,
A. Block
ablock
Beiträge: 13
Registriert: 29 Nov 2019, 16:53

Re: Fehler bei UEFI-PXE-Boot

Beitrag von ablock »

Hallo,
noch ein kleines Update:
wenn ich in der elilo.conf anstelle
root=/dev/sda1
root=/dev/mmcblk1p4
eintrage, booten die Clients mit der emmc ohne Nachfrage.
Damit zicken dann aber andere Clients
Viele Grüße,
A. Block
ablock
Beiträge: 13
Registriert: 29 Nov 2019, 16:53

Re: Fehler bei UEFI-PXE-Boot

Beitrag von ablock »

Hallo,
das wars wohl doch nicht. Habe testweise eine andere elilo.efi verwendet. Danach die originale wieder zurück kopiert und nun tritt der Fehler wieder auf. Habe sicherheitshalber den md5 Hash verglichen und der passt: f7640d8b192cbe24bf4be6e8656650c7
Hat wohl zufälligerweise drei Mal funktioniert.
Viele Grüße,
A. Block
Benutzeravatar
m.radtke
uib-Team
Beiträge: 1515
Registriert: 10 Jun 2015, 12:19

Re: Fehler bei UEFI-PXE-Boot

Beitrag von m.radtke »

Das Problem ist ein kaputtes UEFI
Sowohl im Bootimage wird, als auch in der Setup.exe gibt es Befehle die die Bootreihenfolge ändern. Das macht die Software efibootmgr. Leider gibt es immer wieder kaputte UEFI implementationen die diese Anweisung nicht annehmen. Und dann wird die Reihenfolge nicht geändert.

Ersetze die elilo.efi mit der hier

http://download.uib.de/opsi4.1/misc/uef ... /elilo.efi

Diese hat einen timeout von 2 Sekunden im Fehlerfall und springt zum nächste UEFI Booteintrag, statt ewig Punkte zu zeichnen, wie die ausgelieferte. Beachte: die elilo.efi wird bei einem Update des opsi-linux-bootimage überschrieben.

Gruß
Mathias
Kein Support per DM!
_________________________
opsi support - http://www.uib.de/
For productive opsi installations we recommend support contracts.
SirTux
Beiträge: 558
Registriert: 05 Feb 2011, 18:37

Re: Fehler bei UEFI-PXE-Boot

Beitrag von SirTux »

m.radtke hat geschrieben:Diese hat einen timeout von 2 Sekunden im Fehlerfall und springt zum nächste UEFI Booteintrag, statt ewig Punkte zu zeichnen, wie die ausgelieferte. Beachte: die elilo.efi wird bei einem Update des opsi-linux-bootimage überschrieben.
Könnt ihr nicht beide ausliefern und dann per Symlink steuerbar machen, welche tatsächlich zum Einsatz kommt? Bzw. was ist denn überhaupt der Nachteil des Timeouts? 2 Sekunden ist vielleicht etwas kurz, aber das läßt sich sicher erhöhen.
ablock
Beiträge: 13
Registriert: 29 Nov 2019, 16:53

Re: Fehler bei UEFI-PXE-Boot

Beitrag von ablock »

Hallo,
vielen Dank, das Problem ist gelöst. Würde mich aber auch mal interessieren, warum eine defekte efi-Datei ausgeliefert wird.
Viele Grüße,
A. Block
Antworten