Opened 6 years ago
Closed 4 years ago
#3493 closed Aufgabe (bleibt so)
Speicherort von /vmlinuz
| Reported by: | Rüdiger Kupper | Owned by: | bau |
|---|---|---|---|
| Priority: | bei Gelegenheit | Milestone: | Image »Jovialer Jochen« |
| Component: | Server: LML-Server (paedml) | Severity: | beeinträchtigt keinen Unterricht |
| Keywords: | Cc: |
Description (last modified by )
Der Speicherort der gepackten Kerneldatei vmlinuz hat sich zwischen LTS 18.04 und LTS 20.04 geändert:
- in LTS 18.04:
/vmlinuz - in LTS 20.04:
/boot/vmlinuz
Das führte dazu, dass unser PXE-Boot-Skript nicht mehr den aktuellen Kernel im Inge-Image gebootet hat.
Ich habe das einstweilen durch symbolische Links behoben:
- /vmlinuz -> /boot/vmlinuz
- /vmlinuz.old -> /boot/vmlinuz.old
- /initrd.img -> /boot/initrd.img
- /initrd.img.old -> /boot/initrd.img.old
Damit bootet das PXE-Skript sowohl die Rechner im alten Henrike-Image (18.04), als auch im neuen Inge-Image (20.04). Nach den vollständigen Umstieg auf 20.04 können wir das Skript ändern und die Links entfernen.
Change History (11)
comment:1 by , 6 years ago
| Description: | modified (diff) |
|---|
follow-up: 5 comment:3 by , 6 years ago
!ACHTUNG! /var/ ist zu fast 100% voll!
Ich habe gerade die Images trusty-albrecht gelöscht, damit wenigstens wieder eMails rausgehen.
comment:4 by , 6 years ago
Ich habe nun endlich entdeckt, wie das mit Grub2 und PXE geht (http://paedml.kg-fds.de/trac/wiki/AdminPxe). Damit ist es möglich, einzelne Clients zu syncen (also den LINBO Boot einzuschalten) ohne, dass das restliche Netz davon betroffen wäre:
- /var/linbo/boot/grub/i386-pc/grub.cfg-01-[MAC-Adresse], z.B.:grub.cfg-01-80-00-27-c6-a1-16
- /var/linbo/boot/grub/i386-pc/grub.cfg-[IP-Adresse in HEX], z.B.:grub.cfg-0A027501 für 10.32.175.1
- /var/linbo/boot/grub/i386-pc/grub.cfg-[IP-Adressen-Teil in HEX], z.B.:grub.cfg-0A0275 für 10.32.175.X
die Konfigurationen müssen im Verzeichnis liegen, in dem auch die core.0 liegt.
comment:5 by , 6 years ago
Replying to bau:
!ACHTUNG! /var/ ist zu fast 100% voll!
Ich habe gerade die Images trusty-albrecht gelöscht, damit wenigstens wieder eMails rausgehen.
Aber da war doch zuletzt noch jede Menge Platz? Sollten die Nutzer mal wieder ihre Pistfächer leeren?
comment:6 by , 6 years ago
Habe noch alte Inge-Images gelösch, jetzt sind erst mal wieder 31GB frei.
comment:7 by , 6 years ago
Mist, unser Grub2 kann leider nicht spezifisch nach MAC oder IP die grub.cfg aussuchen (geht nicht bei Debian, bei RedHat und Fedora ist das möglich). Allerdings hat der grub2 eine recht nette Programmiersprache dabei, so dass man wie unter https://bugzilla.redhat.com/show_bug.cgi?id=873406 beschrieben, selbst die richtige grub.cfg laden kann, ergänzt um https://www.gnu.org/software/grub/manual/grub/grub.html#Network und https://lists.gnu.org/archive/html/help-grub/2016-10/msg00041.html:
in /var/linbo/boot/grub/grub.cfg
configfile=/boot/grub/grub.cfg-$net_default_mac source "$configfile" (...)
Damit wären dann separate cfg's nach den MAC-Adressen möglich.
Test ist erfolgreich, die Spezial-Config wird oberhalb des normalen Menu angezeigt.
ToDo: Herausfinden, wie man nur eine der Configs lädt.
comment:9 by , 6 years ago
OK, in der Praxis ist das aktuelle Verhalten eigentlich ganz praktisch: ist die /var/linbo/boot/grub/grub.cfg-[MAC-Adresse] vorhanden, so wird sie VOR der /var/linbo/boot/grub/grub.cfg-normal geladen, damit kann man also ganz am Anfang einen Menüeintrag einfügen, der dann wegen der Konfiguration [set default = 0] auch automatisch gestartet wird.
Wenn man einen Rechner also nach LINBO booten möchte, muss man nur einen Symlink /var/linbo/boot/grub/grub.cfg-[MAC-Adresse] zur /var/linbo/boot/grub/grub.cfg-LINBO anlegen. Muss ein Client anders gebootet werden, so kann man ebenfalls eine spezielle Config davorschalten.
comment:11 by , 4 years ago
| Resolution: | → bleibt so |
|---|---|
| Status: | new → closed |
Der Boot per PXE wird in /var/linbo/boot/grub/grub.cfg konfiguriert:
#Ergänzt für Netzwerk-Boot menuentry 'Start Ubuntu' { set root="(hd0,1)" linux /vmlinuz root=/dev/sda1 ro splash intel_idle.max_cstate=1 net.ifnames=0 initrd /initrd.img }Hier ersetzen:
#Ergänzt für Netzwerk-Boot menuentry 'Start Ubuntu' { set root="(hd0,1)" linux /boot/vmlinuz root=/dev/sda1 ro splash intel_idle.max_cstate=1 net.ifnames=0 initrd /boot/initrd.img }Bootet der Rechner lokal, so benutzt er die grub-Datei, die LINBO automatisch erstellt, dazu muss die entsprechende start.conf in /var/linbo/ angepasst werden:
wahrscheinlich erstzen durch:
!! WICHTIG !! Wir haben in die Gruppen-Konfiguration des Grub eingegriffen, deshalb ändern in: /var/linbo/boot/grub/[Gruppe].cfg:
# start "Ubuntu 16.04" directly menuentry 'Ubuntu 16.04 (Start)' --class ubuntu_start { set root="(hd0,1)" set win_efiloader="/EFI/Microsoft/Boot/bootmgfw.efi" if [ -e /vmlinuz -a -e /initrd.img ]; then linux /vmlinuz root=/dev/sda1 root=/dev/sda1 ro splash intel_idle.max_cstate=1 net.ifnames=0 initrd /initrd.img elif [ -e /vmlinuz -a -e /initrd ]; then linux /vmlinuz root=/dev/sda1 root=/dev/sda1 ro splash intel_idle.max_cstate=1 net.ifnames=0 initrd /initrd elif [ -e /vmlinuz -a -e /initrd.img ]; then linux /vmlinuz root=/dev/sda1 root=/dev/sda1 ro splash intel_idle.max_cstate=1 net.ifnames=0 initrd /initrd.img elif [ -e /vmlinuz ]; then linux /vmlinuz root=/dev/sda1 root=/dev/sda1 ro splash intel_idle.max_cstate=1 net.ifnames=0 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 }Das könnte man auch kürzen auf:
# start "Ubuntu 16.04" directly menuentry 'Ubuntu 16.04 (Start)' --class ubuntu_start { set root="(hd0,1)" linux /boot/vmlinuz root=/dev/sda1 ro splash intel_idle.max_cstate=1 net.ifnames=0 initrd /boot/initrd.img }