nach der Aufnahme unserer neuen Rechner durch Linbo startet dieses nicht mehr.
Man kann den Rechner also registrieren, beim nächsten Neustart hängt er jedoch bei dieser Fehlermeldung (Bild des Fehlers wurde hinzugefügt).
Nachdem wir eine USB Netzwerkkarte angeschlossen haben und den Rechner über die neue MAC Adresse registriert haben, bootet der Rechner wie geplant in Linbo.
Meine Vermutung war, das es eventuell an Treiberproblemen liegt.
Der Rechner ist ein Lenovo M710q.
Folgende Ausgabe kommt durch lshw mit einem Live-Ubuntu:
der I219-V (2) ist eigentlich schon relativ alt und sollte im e1000e- Treiber von Linbo in der richtigen Version enthalten sein. Ansonsten könntest du den Rechner ja nicht erfolgreich aufnehmen.
Hallo Patrick
ich habe das jedes Mal nach dem 1. Synchronisieren meiner HP-Laptops (nvme). Ich starte über PXE und habe mit linbo-remote -p partition,format,sync:1,start:1 gemacht, muss dann aber immer nochmal von Hand einmal PXE-Boot auswählen und erst dann startet der Rechner auch von Festplatte durch.
LG
Max
ja, manchmal kommt ein Rechner nicht hoch (WOL geht nicht) oder er kriegt keine IP oder oder… Und so bleibt die Aufgabe dann „on hold“ bis sie wirklich abgerufen wurde.
hast du nach dem update auf die lmn7 auch die grub.cfg Dateien mal neu
erstellen lassen?
Die werden beim linuxmuster-import-devices neu erstellt, wenn das nciht
per ändern der managed by linuxmuster.net Zeile verhindert wird.
#
# default grub.cfg, pxe boot version (placed on server, don't edit!)
# thomas@linuxmuster.net
# 20210202
#
set timeout=0
set prefix=/boot/grub
set netroot="(tftp)"
# one menu entry does it all
menuentry 'Default' {
# look for reboot grubenv pipe on server and execute it if present
set remote_grubenv=$prefix/spool/${net_pxe_hostname}.reboot
if [ -s "$remote_grubenv" ]; then
echo -n Loading remote grub environment ...
load_env -f "$remote_grubenv"
fi
# if grub reboot variable is not set from server
if [ -z "$reboot_grub" ]; then
# look for it on cache partition
if search --set root --file /start.conf; then
# save local root in variable
set localroot="${root}"
# read grub environment variables
if [ -s /boot/grub/grubenv ]; then
echo -n Loading local grub environment ...
load_env
set localboot=yes
echo
fi
else
clear
fi
fi
# if reboot is set try to load the os on the given partition
if [ -n "${reboot_label}" ]; then
search --label "$reboot_label" --set tmproot
fi
if [ -n "${reboot_grub}" -a -z "${tmproot}" ]; then
set tmproot="${reboot_grub}"
fi
if [ -n "${tmproot}" ]; then
terminal_output console
echo Booting operating system ...
echo
if [ "$localboot" ]; then
set reboot_grub=""
set reboot_label=""
save_env reboot_grub
save_env reboot_label
fi
set root="${tmproot}"
set win_efiloader="/EFI/Microsoft/Boot/bootmgfw.efi"
if [ -e "$reboot_kernel" -a -e "$reboot_initrd" ]; then
linux $reboot_kernel $reboot_append
initrd $reboot_initrd
boot
elif [ -e /boot/vmlinuz -a -e /boot/initrd.img ]; then
linux /boot/vmlinuz $reboot_append
initrd /boot/initrd.img
boot
elif [ -e /boot/vmlinuz -a -e /boot/initrd ]; then
linux /boot/vmlinuz $reboot_append
initrd /boot/initrd
boot
elif [ -e /vmlinuz -a -e /initrd.img ]; then
linux /vmlinuz $reboot_append
initrd /initrd.img
boot
elif [ -e /vmlinuz -a -e /initrd ]; then
linux /vmlinuz $reboot_append
initrd /initrd
boot
elif [ -s /boot/grub/grub.cfg ] ; then
configfile /boot/grub/grub.cfg
elif [ "$grub_platform" = "pc" ]; then
if [ -s /bootmgr ] ; then
ntldr /bootmgr
boot
elif [ -s /ntldr ] ; then
ntldr /ntldr
boot
elif [ -s /grldr ] ; then
ntldr /grldr
boot
else
chainloader +1
boot
fi
elif [ -e "$win_efiloader" ]; then
chainloader $win_efiloader
boot
fi
fi
# finally fallback to netboot if previous boot methods were not successful
set root="${netroot}"
# compute path to group specific config
if [ "$grub_platform" = "efi" ]; then
if [ -n "$net_efinet0_extensionspath" ]; then
set group="$net_efinet0_extensionspath"
set net_pxe_hostname="$net_efinet0_hostname"
elif [ -n "$net_efinet1_extensionspath" ]; then
set group="$net_efinet1_extensionspath"
set net_pxe_hostname="$net_efinet1_hostname"
elif [ -n "$net_efinet2_extensionspath" ]; then
set group="$net_efinet2_extensionspath"
set net_pxe_hostname="$net_efinet2_hostname"
fi
else
set group="$net_pxe_extensionspath"
fi
set groupcfg="$prefix/${group}.cfg"
set hostcfg="$prefix/hostcfg/${net_pxe_hostname}.cfg"
# try host specific config from server and boot it if exists
configfile $hostcfg
# try group specific config from server and boot it if exists
configfile $groupcfg
# try local boot in the other case
if [ -n "$localroot" ]; then
set root="${localroot}"
# load local custom.cfg if present
set customcfg=$prefix/custom.cfg
if [ -s "$customcfg" ]; then
configfile $customcfg
fi
fi
# finally try netboot linbo directly in failsafe mode
set root="${netroot}"
set gfxpayload=640x480x16
# 32bit pae, non pae or 64bit kernel
if cpuid -l; then
set linbo_kernel=/linbo64
set linbo_initrd=/linbofs64.lz
elif cpuid -p; then
set linbo_kernel=/linbo
set linbo_initrd=/linbofs.lz
else
set linbo_kernel=/linbo-np
set linbo_initrd=/linbofs-np.lz
fi
echo "LINBO netboot in failsafe mode"
echo -n "Loading $linbo_kernel .."
linux $linbo_kernel quiet netboot
echo
echo -n "Loading $linbo_initrd .."
initrd $linbo_initrd
boot
}
das sit nciht die richtige Datei.
Ich meine die grub.cfg Dateien, nicht diese (sorry: ungenau ausgedrückt).
Also die der GRUPPE.
/srv/linbo/boot/grub/GRUPPE.cfg
und da drin muss die managed by linuxmuster.net Zeile „unverletzt“ sein (ist die 4te oder 6te Zeile) sonst wird sie nicht neu geschrieben.
Mach mal linuxmuster-import-devices
Am Ende wird dir eien Zusammenfassung für jede Gruppe angezeigt mit
„present“, „replaced“ … am Ende.
Da sollte bei dir bei deiner Gruppe stehen „replaced“
# global part of group specific grub.cfg template for linbo net boot
# thomas@linuxmuster.net
# 20210202
#
# 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
# 32bit pae, non pae or 64bit kernel
if cpuid -l; then
set linbo_kernel=/linbo64
set linbo_initrd=/linbofs64.lz
elif cpuid -p; then
set linbo_kernel=/linbo
set linbo_initrd=/linbofs.lz
else
set linbo_kernel=/linbo-np
set linbo_initrd=/linbofs-np.lz
fi
# 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,2)"
fi
# linbo part, boot local or net (default #0)
menuentry 'LINBO' --class linbo {
echo LINBO $bootflag for group Win10
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 quiet splash $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 "Windows 10" directly
menuentry 'Windows 10 (Start)' --class win10_start {
set oslabel="windows"
if [ -n "$oslabel" ]; then
search --label "$oslabel" --set osroot
fi
if [ -n "$osroot" ]; then
set root="$osroot"
else
set root="(hd0,1)"
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 root=/dev/nvme0n1p1
initrd /boot/initrd.img
elif [ -e /vmlinuz -a -e /initrd.img ]; then
linux /vmlinuz root=/dev/nvme0n1p1
initrd /initrd.img
elif [ -e /boot/vmlinuz -a -e /boot/initrd ]; then
linux /boot/vmlinuz root=/dev/nvme0n1p1
initrd /boot/initrd
elif [ -e /vmlinuz -a -e /initrd ]; then
linux /vmlinuz root=/dev/nvme0n1p1
initrd /initrd
elif [ -e /auto -a -e / ]; then
linux /auto root=/dev/nvme0n1p1
initrd /
elif [ -e /auto ]; then
linux /auto root=/dev/nvme0n1p1
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 "Windows 10"
menuentry 'Windows 10 (Linbo-Start)' --class win10_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 Win10
echo
echo -n "Loading $linbo_kernel ..."
linux $linbo_kernel quiet splash linbocmd=start:1 $bootflag
echo
echo -n "Loading $linbo_initrd ..."
initrd $linbo_initrd
boot
fi
}
# boot LINBO, sync and start "Windows 10"
menuentry 'Windows 10 (Sync+Start)' --class win10_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 Win10
echo
echo -n "Loading $linbo_kernel ..."
linux $linbo_kernel quiet splash 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 "Windows 10"
menuentry 'Windows 10 (Neu+Start)' --class win10_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 Win10
echo
echo -n "Loading $linbo_kernel ..."
linux $linbo_kernel quiet splash linbocmd=format:1,sync:1,start:1 $bootflag
echo
echo -n "Loading $linbo_initrd ..."
initrd $linbo_initrd
boot
fi
}
Hier sieht’s gut aus!
Allerdings ist die Zeile auskommentiert…
mehrere Anmerkungen zu deinen Rechnern in der devices.csv:
dein erster Client hat den Raum PC, das halte ich in zweierlei HInsicht für schlecht: PC ist sehr generisch und es könnte irgend wann dopplungen geben, also lieber r100 oder etwas ähnliches nehmen. Und zweitens: ich würde mich bei Bezeichnungen von Raum, Rechnernamen und Hardwareklasse immer auf den lowercase beschränken
der KARS-Win10-PaedNetz Rechner hat eine IP eingetragen, die im normalen DHCP Lease liegt: das ist keine gute Idee. IN meinem Netz liegt der Lease zwischen 10.0.0.100 und 10.0.0.200 Da sollte nie ein eingetragener Rechner rein
der andere PS hat Win10 als Hardwareklasse. Kann man vielelicht so machen, ich würde es nie machen. Nimm mal win10 oder besser nicht so generisch, also win10
Danach linuxmuster-import-devices
und dann eine Vorlage aus /srv/linbo/examples/ nach /srv/linbo/start.conf.win10 bewegen, anpassen (Partitionsgröße und Imagename) und nochmal import machen.
In deiner start.conf.Win10 hat die Cachpartition keine Größe und liegt am Ende: das hat schon zu Problemen geführt.
Hallo Patrick,
ich habe dieses Phänomen sogar direkt vor dem Registrieren, also an manchen PC kommt Linbo gar nicht erst hoch. Aber auf dem Server mit
cat /var/log/syslog | grep DHCP
sieht man ja gleich die MAC und kann die devices ergänzen, dann startet auch Linbo.
Nach dem Partitionieren und Bespaßen mit dem Betriebssystem muss ich bei mir aber immer nochmal übers Neztwerk starten (sonst kommt Deine Fehlermeldung). Erst dann funktioniet HardDisk-Boot.
LG
Max
Die Netzwerkkarte hatte nicht genug Zeit zu starten und Linbo ist in den Fehler gelaufen.
Die Lösung ist in den Kernel-Optionen über das Pull-Down-Menü den Eintrag