Jo force-grub bringt keine Änderung bzw. so wie ich das verstehe, versucht der lokale grub ja zu starten aber das scheint nicht zu funktionieren.
Wenn ich in der Linbo-Console (nach manuellem PXE-Boot) grub-install absetzte, kommt die Fehlermeldung „no efi Device found“. Aber laut start.conf (siehe oben) gibt es ja eine efi-Partition.
Ich hab, nachdem ich alles nochmal gelesen habe, noch ein paar Ideen.
hab ich das richtig? Die gleiche Hardwareklasse in einem anderen Raum funktioniert? Gleiche EFI BIOS Settings?
Du sagst, das BIOS stellt die Bootorder zurück: wann genau macht es das?
Vermutung zum Zurückstellen der Bootorder: wenn das EFI ein Bootdevice nimmt und da klappt das Booten nicht (bei dir das lokale GRUB), dann schreiben manche BIOSe die Standardwerte für die BootOrder zurück (hatte ich gerade Gestern hier auf einem Lenovo UEFI Bootenden Laptop). Das hörte erst auf, nachdem der Boot auch klappt.
„Aber laut start.conf (siehe oben) gibt es ja eine efi-Partition.“
kannst du mal auf dem Client die Partitionen auslesen und hier posten?
fdisk -l
zeigt sie alle an.
Zur Neuerstellung der GRUPPE.cfg: die /srv/linbo/boot/grub/GRUPPE.cfg
wird bei jedem lauf von linuxmuster-import-devices neu geschrieben, wenn die „managed by linuxmuster.net“ Zeile in der Datei unverletzt (orginal) ist.
Hast du mal Busters Hinweis probiert? efibootmgr auf dem Client ausführen?
Bitte beschreib aber nochmal genau, was passiert: ich brauche noch einen etwas besseren Durchblick …
Hallo Holger,
sorry, dass ich so lange nicht antworte - deine Fragen sind mir durchgerutscht.
Nicht ganz: Wir haben eine komplette 7.2 Neuinstallation (also Server und Firewall). Einen neuen Client wollten wir nicht bauen, also haben wir einfach die Image Dateien, start.conf, devices und users vom 7.1 Server auf den 7.2 Server kopiert - Import devices und sophomorix durchlaufen lassen - gut ist.
Ich habe die LMN7.1 Maschinen alle noch auf dem Hypervisor (in anderen Netzwerken) und kann so direkt zwei Clients, die an 7.1 und an 7.2 angeflanscht sind vergleichen.
Ich starte die identische Hardware-Klasse mit den identischen BIOS-Einstellungen, nur eben einmal mit 7.1 und einmal mit 7.2:
LMN7.1 (Linbo 4.0.46.-0) Rechner bootet mit PXE Linbo und synct wie gewünscht.
LMN7.2 (Linbo 4.2.13-0) Rechner startet nicht PXE sondern direkt ins grub - das klappt wohl nicht gescheit und dann bootet er das OS lokal. Ich kann zwar den PXE-Boot manuell im Bios per Boot-Override anstoßen, aber beim nächsten Neustart drängelt sich der grub wieder vor… (ein Speichern der Boot-Order oder ein Boot Order Lock ist im BIOS nicht verfügbar).
Ich vermute im anderen Thread ist das Problem ähnlich (wenn auch Windows Client).Neue Clients - Selbstständiges BIOS
Mit LMN7.1 startet der Client mit PXE-Boot und synchronisiert das Image. In LMN7.2 klappt das nur manuell (d.h. im Bios manuell PXE-Boot per Boot-Override auswählen) Beim nächsten Neustart kommt o.g. Fehlermeldung und der Client startet dann wieder lokal ohne sync. Somit könntest du recht haben. Der grub boot (der dann das beim letzten PXE-Boott heruntergeladene Linbo starten sollte) haut nicht hin und bricht mit der Fehlermeldung ab. Initiating pxe boot ...error: invalid filename 'dhcp' error: you need to load the kernel first.
Ich bin aber immernoch überfragt, warum das bei 7.2 passiert und bei 7.1 nicht?!
Hier die fstab von einem betroffenen Client:
Gerät Anfang Ende Sektoren Größe Typ
/dev/nvme0n1p1 2048 411647 409600 200M EFI-System
/dev/nvme0n1p2 411648 168183807 167772160 80G EFI-System
/dev/nvme0n1p3 168183808 235292671 67108864 32G Linux Swap
/dev/nvme0n1p4 235292672 500117503 264824832 126,3G Linux-Dateisystem
Ja, mir fällt auch auf, dass da zweimal EFI-System steht. Aber in der start.conf.gruppe ist die 2. Partition nicht als boot markiert?!
Hier noch die start.conf.gruppe:
[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 forcegrub
clientDetailsVisibleByDefault = yes
[Partition]
Bootable = yes
FSType = vfat
Id = ef
Size = 200M
Label = efi
Dev = /dev/nvme0n1p1
[Partition]
Bootable = no
FSType = ext4
Id = 83
Size = 80G
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 hier die gruppe.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 forcegrub $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 forcegrub 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 forcegrub 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 forcegrub linbocmd=format:2,sync:1,start:1 $bootflag
echo
echo -n "Loading $linbo_initrd ..."
initrd $linbo_initrd
boot
fi
}
Nein noch nicht. würde gerne verstehen, warum es nicht einfach wie bei 7.1 läuft.
Wir haben uns da jetzt nochmal rangehängt und alle vorgeschlagenen Tipps durchprobiert - hat alles keine gewünschte Änderung gebracht.
Und dann:
Manchmal ist die Lösung des Problems so simpel…
Zum Schluss haben wir einfach linbo auf dem Server nochmal neu installiert per reinstall.
Ich glaube das hats gebracht… ich vermute mal, dass wir beim Kopieren der 7.1 configs auf den 72 server irgendetwas überschrieben haben, was nicht erlaubt war.
gut dass du mal beschrieben hast, was da gemacht wurde: so bin ich auch auf die Lösung gekommen.
Also: einfach die start.conf nach dem upgrade zu kopieren kann zu Problemen führen, weil der Upgrade von 4.0 auf 4.2 auch in die start.confs eingreift.
Genauso das „Client mal 4.0 mal 4.2“ booten lassen ist keine gute Idee: 4.2 verändert den Client und installiert sich in den Cache. Dann kommt wieder 4.0 …
Mein Vorschlag an dich wäre gewesen, linbo zu reinstallen um die start.confs gerade zu ziehen.
Dann einen Cleint in linbo booten und ihn mit dem neuen linbo zu partitionieren, um sicher zu gehen, dass das alte weg ist und dann an dem testen.
Wenn das geht: alle mal frisch partitionieren …