Hallo,
wir haben nach dem Umzug von 7.1 auf 7.2 ein ähnliches Problem.
Clients wurden von 7.1 nach 7.2 umgezogen. Exakt gleiche start.conf, exakt gleiches Image, exakt gleiche Kerneloptionen (splash quiet dhcpretry=10 warmstart=no nosgx modprobe.blacklist=i915,radeon)
Im 7.1 System haben die Clients immer schön brav PXE-Boot gemacht.
Im 7.2 System starten die Clients aber lokal?! Wir haben am BIOS an der Bootreihenfolge nichts verändert.
Es erscheint dann immer die Meldung:
Initiating pxe boot ...error: invalid filename 'dhcp'
error: you need to load the kernel first.
Danach bootet er nach einiger Zeit automatisch das lokale image.
Wenn ich manuell die Boot-Reihenfolge im BIOS ändere, dann bootet der Rechner genau einmal über PXE. Nachdem ich ihn wieder neu starte, kommt die o.g. Fehlermeldung wieder.
Ich habe keine Ahnung wie ich den Rechnern beibringen kann konsistent PXE zu booten.
geht der Fehler weg, wenn der Client einmal frisch partitioniert wurde (oder vielleicht reicht ein initcache).
Wurde
linuxmuster-import-devices
nach dem upgrade gemacht?
Habt ihr die /srv/linbo/boot/grub/GRUPPE.cfg
verändert? Ist die managed by linuxmuster Zeile noch intakt?
Also mal dafür sorgen, dass die Datei neu geschrieben wird durch den import.
Und wegen der Kernelparameter: modprobe.blacklist=i915,radeon
ich nehme da inzwischen statt dieses Parameters den Parameter
nomodeset
Hallo Holger,
danke für die schnelle Antwort.
Ich habe deine Anregungen mMn zwar alle schon ausprobiert, aber gerade nochmal alles Partitioniert und die start.conf.gruppe überprüft.
Sieht eigentlich alles gut aus.
Trotzdem will er nicht beim pxe boot bleiben.
Ich habe gerade keine Ahnung was ich noch machen kann.
Hallo!
nur als Idee: Stimmt Bios mit start.conf im Bezug auf Uefi/Legacy überein? Ich hatte so eine Meldung schonmal, als das Bios auf Uefi, die start.conf auf bios64 stand…
LG
Max
Hallo Thomas,
eine Frage dazu…
Muss ich wirklich die „orginal“ grub.cfg durch die forced_netboot grub.cfg ersetzen oder die cfg der entsprechenden Gruppe, also bei mir ubuntu2204-efi.cfg?
Weil der workaround mit simplen ersetzen der grub.cfg hat leider nicht geholfen.
Hallo Daniel!
Ich hatte mal das Problem beim Rechnerstart, dass nicht das lokale grub verwendet wurde und dadurch direkt das OS gestartet wurde.
Der Kernelparameter „forcegrub“ in der start.conf… hat es bei uns gelöst.
(„KernelOptions = loadmodules=r8168 forcegrub“)
Gruß - Rainer
Hallo, @roesslerrr danke, ich habe das versucht - hatte keine Auswirkung. @thomas danke für die Anleitung - habe ich durchgeführt. Hat genau einmal funktioniert und nach dem Neustart bzw. Rückkopieren der grub.cfg kommt dann wieder die o.g. Fehlermeldung.
Damit das System sauber per PXE bootet, muss ich immer ins BIOS und manuell per PXE booten, dann geht es durch.
Evtl. hat noch jemand einen Tipp?! Ich verstehe nicht so ganz, warum die identische Hardware-Klasse mit den identischen BIOS-Settings mit 7.1 sauber bootet aber mit 7.2 nicht…
Hallo Holger,
es ist nur eine UEFI-Hardware-Klasse betroffen (allerdings die in den Computerräumen).
Andere Hardwareklassen mit dem gleichen Image und der selben start.conf starten wie gewohnt.
Hier mal die gewünschten Configs:
start.conf.ubuntu2204-efi
[LINBO]
Server = 10.0.0.1
Group = ubuntu2204-efi
Cache = /dev/nvme0n1p4
RootTimeout = 600
AutoPartition = no
AutoFormat = no
AutoInitCache = no
GuiDisabled = no
UseMinimalLayout = no
Locale = de-DE
DownloadType = torrent
SystemType = efi64
KernelOptions = splash quiet dhcpretry=10 warmstart=no nomodeset acpi=off
clientDetailsVisibleByDefault = yes
[Partition]
Bootable = yes
FSType = vfat
Id = ef
Size = 200M
Label = efi
Dev = /dev/nvme0n1p1
[Partition]
Bootable = yes
FSType = ext4
Id = 83
Size = 50G
Label = ubuntu
Dev = /dev/nvme0n1p2
[Partition]
Bootable = no
FSType = swap
Id = 82
Size = 32G
Label = swap
Dev = /dev/nvme0n1p3
[Partition]
Bootable = no
FSType = ext4
Id = 83
Size =
Label = cache
Dev = /dev/nvme0n1p4
[OS]
Name = Ubuntu
Version = 22.04
Description = Ubuntu 22.04
IconName = ubuntu.svg
Image =
BaseImage = ubu22.qcow2
Boot = /dev/nvme0n1p2
Root = /dev/nvme0n1p2
Kernel = boot/vmlinuz
Initrd = boot/initrd.img
Append = ro splash
StartEnabled = no
SyncEnabled = yes
NewEnabled = no
Autostart = yes
AutostartTimeout = 5
DefaultAction = sync
Hidden = yes
und ubuntu2204-efi.cfg
# global part of group specific grub.cfg template for linbo net boot
# thomas@linuxmuster.net
# 20231119
#
# if you don't want this file being overwritten by import_workstations remove the following line:
# ### managed by linuxmuster.net ###
# edit to your needs
set default=0
set timeout=0
set fallback=1
set gfxmode=auto
set gfxpayload=keep
insmod all_video
insmod png
insmod gfxterm
insmod gfxmenu
insmod minicmd
insmod progress
terminal_output gfxterm
background_color 42,68,87
# kernel & initrd
set linbo_kernel=/linbo64
set linbo_initrd=/linbofs64
# theme settings (modify for custom theme)
set theme=/boot/grub/themes/linbo/theme.txt
export theme
clear
# find linbo cache partition
set cachelabel="cache"
if [ -n "$cachelabel" ]; then
search --label "$cachelabel" --set cacheroot
fi
if [ -z "$cacheroot" ]; then
search --file /start.conf --set cacheroot
fi
if [ -z "$cacheroot" ]; then
search --file "$linbo_initrd" --set cacheroot
fi
if [ -n "$cacheroot" ]; then
set root="$cacheroot"
else
set root="(hd0,4)"
fi
# linbo part, boot local or net (default #0)
menuentry 'LINBO' --class linbo {
echo LINBO $bootflag for group ubuntu2204-efi
echo
if [ -e "$linbo_kernel" -a -e "$linbo_initrd" ]; then
set bootflag=localboot
elif [ -n "$pxe_default_server" ]; then
set root="(tftp)"
set bootflag=netboot
fi
if [ -n "$bootflag" ]; then
echo -n "Loading $linbo_kernel ..."
linux $linbo_kernel splash quiet dhcpretry=10 warmstart=no nomodeset acpi=off $bootflag
echo
echo -n "Loading $linbo_initrd ..."
initrd $linbo_initrd
boot
else
if [ "$grub_platform" = "pc" ]; then
set ipxe="/ipxe.lkrn"
fi
if [ -e "$ipxe" ]; then
echo -n "Initiating pxe boot ..."
linux16 $ipxe dhcp
boot
fi
fi
}
# group specific grub.cfg template for linbo net boot, should work with linux and windows operating systems
# thomas@linuxmuster.net
# 20201126
#
# start "Ubuntu" directly
menuentry 'Ubuntu (Start)' --class ubuntu_start {
set oslabel="ubuntu"
if [ -n "$oslabel" ]; then
search --label "$oslabel" --set osroot
fi
if [ -n "$osroot" ]; then
set root="$osroot"
else
set root="(hd0,2)"
fi
set win_efiloader="/EFI/Microsoft/Boot/bootmgfw.efi"
terminal_output console
if [ -e /boot/vmlinuz -a -e /boot/initrd.img ]; then
linux /boot/vmlinuz ro splash root=/dev/nvme0n1p2
initrd /boot/initrd.img
elif [ -e /vmlinuz -a -e /initrd.img ]; then
linux /vmlinuz ro splash root=/dev/nvme0n1p2
initrd /initrd.img
elif [ -e /boot/vmlinuz -a -e /boot/initrd ]; then
linux /boot/vmlinuz ro splash root=/dev/nvme0n1p2
initrd /boot/initrd
elif [ -e /vmlinuz -a -e /initrd ]; then
linux /vmlinuz ro splash root=/dev/nvme0n1p2
initrd /initrd
elif [ -e /boot/vmlinuz -a -e /boot/initrd.img ]; then
linux /boot/vmlinuz ro splash root=/dev/nvme0n1p2
initrd /boot/initrd.img
elif [ -e /boot/vmlinuz ]; then
linux /boot/vmlinuz ro splash root=/dev/nvme0n1p2
elif [ -s /boot/grub/grub.cfg ] ; then
configfile /boot/grub/grub.cfg
elif [ "$grub_platform" = "pc" ]; then
if [ -s /bootmgr ] ; then
ntldr /bootmgr
elif [ -s /ntldr ] ; then
ntldr /ntldr
elif [ -s /grldr ] ; then
ntldr /grldr
else
chainloader +1
fi
elif [ -e "$win_efiloader" ]; then
chainloader $win_efiloader
boot
fi
terminal_output gfxterm
}
# boot LINBO and start "Ubuntu"
menuentry 'Ubuntu (Linbo-Start)' --class ubuntu_start {
if [ -e "$linbo_kernel" -a -e "$linbo_initrd" ]; then
set bootflag=localboot
elif [ -n "$pxe_default_server" ]; then
set root="(tftp)"
set bootflag=netboot
fi
if [ -n "$bootflag" ]; then
echo LINBO $bootflag for group ubuntu2204-efi
echo
echo -n "Loading $linbo_kernel ..."
linux $linbo_kernel splash quiet dhcpretry=10 warmstart=no nomodeset acpi=off linbocmd=start:1 $bootflag
echo
echo -n "Loading $linbo_initrd ..."
initrd $linbo_initrd
boot
fi
}
# boot LINBO, sync and start "Ubuntu"
menuentry 'Ubuntu (Sync+Start)' --class ubuntu_syncstart {
if [ -e "$linbo_kernel" -a -e "$linbo_initrd" ]; then
set bootflag=localboot
elif [ -n "$pxe_default_server" ]; then
set root="(tftp)"
set bootflag=netboot
fi
if [ -n "$bootflag" ]; then
echo LINBO $bootflag for group ubuntu2204-efi
echo
echo -n "Loading $linbo_kernel ..."
linux $linbo_kernel splash quiet dhcpretry=10 warmstart=no nomodeset acpi=off linbocmd=sync:1,start:1 $bootflag
echo
echo -n "Loading $linbo_initrd ..."
initrd $linbo_initrd
boot
fi
}
# boot LINBO, format os partition, sync and start "Ubuntu"
menuentry 'Ubuntu (Neu+Start)' --class ubuntu_newstart {
if [ -e "$linbo_kernel" -a -e "$linbo_initrd" ]; then
set bootflag=localboot
elif [ -n "$pxe_default_server" ]; then
set root="(tftp)"
set bootflag=netboot
fi
if [ -n "$bootflag" ]; then
echo LINBO $bootflag for group ubuntu2204-efi
echo
echo -n "Loading $linbo_kernel ..."
linux $linbo_kernel splash quiet dhcpretry=10 warmstart=no nomodeset acpi=off linbocmd=format:2,sync:1,start:1 $bootflag
echo
echo -n "Loading $linbo_initrd ..."
initrd $linbo_initrd
boot
fi
}
Hast du die cfg Datei mal neu erstellen lassen?
Nicht bewusst…wie mache ich das? Habe sie halt einfach mit den anderen configs vom 7.1 Server auf den 7.2 Server kopiert.
Es ist ja zum Glück nicht ganz so schlimm…die Clients starten ja dann irgendwann über grub - nut habe ich keine Lust bei jedem neuen Image die Turschuhe anzuziehen.
Welches Verhalten soll den erreicht werden? Dass sie syncen, wenn sie booten?
Es steht in der start.conf ja ein autostart mit 5 Sekunden und ein Default sync.
Welches Verhalten zeigen sie den?
Ich hab jetzt mehrere Hinweise:
bei dir sind alle Partitionen bootabel: das ist in den Vorlagenstart.confDateien nicht der Fall.
Also bitte mal alle bootable auf no setzen, außer das bei der EFI Partition.
Damit das angewendet wird, muss der Client frisch partitioniert werden.
acpi=off ist ein starker Switch. Ist der wirklich nötig? Bitte mal ohne versuchen.
Ich hab maximal nomodeset und dhcpretry drin.
lokale ist in der Vorlage de-de nicht de-DE
es gab mal Probleme mit einem „offenen“ Cache am Ende der Partitionen. Da ist ja nur ein Ubuntu drauf: begrenz mal die Größe des Cache auf 20G: danach ist Partitionieren nötig.
normalerweise sollte es wurscht sein, ob linbo per PXE oder lokal gestartet wird: der einzige UNterschied ist dann normalerweise die Bootzeit (PXE dauert länger).
Verhalten soll sein „Sync bei Boot“ mit autostart. Den „Start ohne Sync“ Button haben wir bewusst ausgeblendet.
acpi=off mache ich am Montag mal raus. Das ist auch ein Relikt aus früheren Zeiten.
de-DE ändere ich auch gerne ab.
Mit dem offenen Cache dachten wir, dass das so gewollt ist - Rest der Platte als Cache nehmen, so bleibt nichts unnötig übrig?!
Ich vermute, dass beim lokalen Start die oben genannte Fehlermeldung auftaucht.
Ich vermute, dass beim lokalen Start die oben genannte Fehlermeldung auftaucht.
… ah: das war das Problem: er startet nur einmal, wenn du dran sitzt, per PXE und dann immer lokal mit der Fehlermeldung (dhcp blabla) und dann bootet er direkt das ubuntu und eben nicht über linbo. Deswegen musst du ran an den Rechner um linbo wieder starten zu lassen…
OK: da haben wir dann aber auch noch mehrere Möglichkeiten:
lock boot Order im BIOS
Bootreihenfolge beim Starten von ubuntu setzen lassen
grub Menü vorschalten (so wie ich das überall mache).
Aber erstmal die Sachen von meiner Letzten Nachricht probieren.
Und wenn das nciht hilft nochmal ganz genau beobachten und beschreiben was passiert von
→ selber auf pxe umschalten, linbo booten, syncen, ubuntu startet, reboot … was genau wann passiert.
Hallo Holger,
es muss irgendwie am lokalen Boot oder am grub liegen.
Die Boot-Order lässt sich an der Hardware-Klasse nicht ändern. Egal was ich im BIOS einstelle, nach dem Speichern ist wieder die alte Order (1. grub 2. ubuntu 3. PXE).
Löschen von ACPI=off hatte keine Änderung bewirkt.
Deshalb die Frage: Wie kann ich die Boot-Reihenfolge durch ubuntu setzen lassen ODER wie kann ich das grub Menü vorschalten, so dass linbo lokal sauber startet?
Wenn ich in BIOS manuell von grub boote, dann kommt die Fehlermeldung Initiating pxe boot ...error: invalid filename 'dhcp' error: you need to load the kernel first.