[pve7] pve-kernel-5.11 lädt keine Module, drop auf initramfs shell

masterblaster

Member
Sep 20, 2021
6
3
8
45
Hallo Leute.

Ich habe heute eine PVE6-Installation auf PVE7 aktualisiert. Bin dabei nach dieser Anleitung vorgegangen:
https://pve.proxmox.com/wiki/Upgrade_from_6.x_to_7.0

Das Upgrade an sich lief durch, der anschließende reboot landet dann allerdings auf der initramfs shell.

Leider funktioniert mein Keyboard da nicht :-(
Sehen kann man jedenfalls jede Menge Fehler der Art:
Code:
failed to validate module [wmi] BTF: -22
failed to validate module [nvme_core] BTF: -22
usw..
failed to validate module [spl] BTF: -22

---und am Ende steigt er dann aus mit "Failed to load ZFS modules".

Mit dem alten 5.4-Kernel bootet er wieder.
IIRC hatte ich aber auch 5.11 schon mit pve6 genutzt und da ging es.

Hat vielleicht jemand eine Idee warum der pve7 5.11er Kernel bei mir keine Module (alle?) laden mag?

Code:
root@pve:~# pveversion -v
proxmox-ve: 7.0-2 (running kernel: 5.4.140-1-pve)
pve-manager: 7.0-11 (running version: 7.0-11/63d82f4e)
pve-kernel-5.11: 7.0-7
pve-kernel-helper: 7.0-7
pve-kernel-5.4: 6.4-6
pve-kernel-5.11.22-4-pve: 5.11.22-8
pve-kernel-5.11.22-2-pve: 5.11.22-4
pve-kernel-5.4.140-1-pve: 5.4.140-1
ceph-fuse: 14.2.21-1
corosync: 3.1.5-pve1
criu: 3.15-1+pve-1
glusterfs-client: 9.2-1
ifupdown: 0.8.36
ksm-control-daemon: 1.4-1
libjs-extjs: 7.0.0-1
libknet1: 1.22-pve1
libproxmox-acme-perl: 1.3.0
libproxmox-backup-qemu0: 1.2.0-1
libpve-access-control: 7.0-4
libpve-apiclient-perl: 3.2-1
libpve-common-perl: 7.0-6
libpve-guest-common-perl: 4.0-2
libpve-http-server-perl: 4.0-2
libpve-storage-perl: 7.0-11
libqb0: 1.0.5-1
libspice-server1: 0.14.3-2.1
lvm2: 2.03.11-2.1
lxc-pve: 4.0.9-4
lxcfs: 4.0.8-pve2
novnc-pve: 1.2.0-3
proxmox-backup-client: 2.0.9-2
proxmox-backup-file-restore: 2.0.9-2
proxmox-mini-journalreader: 1.2-1
proxmox-widget-toolkit: 3.3-6
pve-cluster: 7.0-3
pve-container: 4.0-9
pve-docs: 7.0-5
pve-edk2-firmware: 3.20200531-1
pve-firewall: 4.2-3
pve-firmware: 3.3-1
pve-ha-manager: 3.3-1
pve-i18n: 2.5-1
pve-qemu-kvm: 6.0.0-4
pve-xtermjs: 4.12.0-1
qemu-server: 7.0-13
smartmontools: 7.2-pve2
spiceterm: 3.2-2
vncterm: 1.7-1
zfsutils-linux: 2.0.5-pve1

Grüße,
Stephan

Edit:
DSC_0472.JPG
 
Last edited:
Auf Verdacht hin - bitte mal den pve-kernel-5.11-4 reinstallen und das output pasten:
`apt reinstall pve-kernel-5.11.22-4-pve`

hatte mal ein ähnliches issue - und erinnere mich dunkel, dass der diskspace zu klein war für das initramfs


Ich hoffe das hilft!
 
Reinstall hatte ich schon gemacht, da gab es auch keine Fehler. Funktioniert aber trotzdem nicht.
Code:
root@pve:~# apt reinstall pve-kernel-5.11.22-4-pve
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
0 upgraded, 0 newly installed, 1 reinstalled, 0 to remove and 0 not upgraded.
Need to get 75.6 MB of archives.
After this operation, 0 B of additional disk space will be used.
Get:1 http://download.proxmox.com/debian/pve bullseye/pve-no-subscription amd64 pve-kernel-5.11.22-4-pve amd64 5.11.22-8 [75.6 MB]
Fetched 75.6 MB in 1s (88.1 MB/s)                   
(Reading database ... 74571 files and directories currently installed.)
Preparing to unpack .../pve-kernel-5.11.22-4-pve_5.11.22-8_amd64.deb ...
Unpacking pve-kernel-5.11.22-4-pve (5.11.22-8) over (5.11.22-8) ...
Setting up pve-kernel-5.11.22-4-pve (5.11.22-8) ...
Examining /etc/kernel/postinst.d.
run-parts: executing /etc/kernel/postinst.d/apt-auto-removal 5.11.22-4-pve /boot/vmlinuz-5.11.22-4-pve
run-parts: executing /etc/kernel/postinst.d/initramfs-tools 5.11.22-4-pve /boot/vmlinuz-5.11.22-4-pve
update-initramfs: Generating /boot/initrd.img-5.11.22-4-pve
Running hook script 'zz-proxmox-boot'..
Re-executing '/etc/kernel/postinst.d/zz-proxmox-boot' in new private mount namespace..
Copying and configuring kernels on /dev/disk/by-uuid/BEE1-8651
Copying kernel and creating boot-entry for 5.10.6-1-pve
Copying kernel and creating boot-entry for 5.11.22-2-pve
Copying kernel and creating boot-entry for 5.11.22-4-pve
Copying kernel and creating boot-entry for 5.4.140-1-pve
run-parts: executing /etc/kernel/postinst.d/proxmox-auto-removal 5.11.22-4-pve /boot/vmlinuz-5.11.22-4-pve
run-parts: executing /etc/kernel/postinst.d/zz-proxmox-boot 5.11.22-4-pve /boot/vmlinuz-5.11.22-4-pve
Re-executing '/etc/kernel/postinst.d/zz-proxmox-boot' in new private mount namespace..
Copying and configuring kernels on /dev/disk/by-uuid/BEE1-8651
Copying kernel and creating boot-entry for 5.10.6-1-pve
Copying kernel and creating boot-entry for 5.11.22-2-pve
Copying kernel and creating boot-entry for 5.11.22-4-pve
Copying kernel and creating boot-entry for 5.4.140-1-pve
run-parts: executing /etc/kernel/postinst.d/zz-update-grub 5.11.22-4-pve /boot/vmlinuz-5.11.22-4-pve
Generating grub configuration file ...
Found linux image: /boot/vmlinuz-5.11.22-4-pve
Found initrd image: /boot/initrd.img-5.11.22-4-pve
/usr/sbin/grub-probe: error: unknown filesystem.
Found linux image: /boot/vmlinuz-5.11.22-2-pve
Found initrd image: /boot/initrd.img-5.11.22-2-pve
Found linux image: /boot/vmlinuz-5.10.6-1-pve
Found initrd image: /boot/initrd.img-5.10.6-1-pve
Found linux image: /boot/vmlinuz-5.4.140-1-pve
Found initrd image: /boot/initrd.img-5.4.140-1-pve
/usr/sbin/grub-probe: error: unknown filesystem.
Found memtest86+ image: /ROOT/pve-1@/boot/memtest86+.bin
Found memtest86+ multiboot image: /ROOT/pve-1@/boot/memtest86+_multiboot.bin
Adding boot menu entry for EFI firmware configuration
done

Was mir aber gerade auffällt.
Der Kernel auf der EFI-Partition ist nicht der gleiche wie der in /boot, die initrd hingegen schon - also passen kernel und initrd nicht zusammen:
Code:
root@pve:~# ls -lh /boot/vmlinuz-5.11.22-4-pve /mnt/tmp/EFI/proxmox/5.11.22-4-pve/vmlinuz-5.11.22-4-pve
-rw-r--r-- 1 root root 14M Aug 27 11:51 /boot/vmlinuz-5.11.22-4-pve
-rwxr-xr-x 1 root root 14M Sep  9 12:52 /mnt/tmp/EFI/proxmox/5.11.22-4-pve/vmlinuz-5.11.22-4-pve

root@pve:~# md5sum /boot/vmlinuz-5.11.22-4-pve /mnt/tmp/EFI/proxmox/5.11.22-4-pve/vmlinuz-5.11.22-4-pve
61dfc08bd83467c46d117d98de865f9b  /boot/vmlinuz-5.11.22-4-pve
f53a63cc16306110d225929941d7ce58  /mnt/tmp/EFI/proxmox/5.11.22-4-pve/vmlinuz-5.11.22-4-pve

root@pve:~# md5sum /mnt/tmp/EFI/proxmox/5.11.22-4-pve/initrd.img-5.11.22-4-pve /boot/initrd.img-5.11.22-4-pve
d65150afda018c75014becdf16d13a25  /mnt/tmp/EFI/proxmox/5.11.22-4-pve/initrd.img-5.11.22-4-pve
d65150afda018c75014becdf16d13a25  /boot/initrd.img-5.11.22-4-pve

Möglicherweise liegt das daran, dass ich auch mit PVE6 schon den Kernel 5.11.22-4-pve verwendet hatte (den gab es auch schon im PVE6-Repo) und daher beim Upgrade keine Kopie auf die EFI-Partition erfolge weil schon vorhanden. Wäre dann ein Bug.

Habe gerade keine Zeit das zu testen, mache ich aber bald und berichte.
 
Ok, jetzt habe ich mir die Zeit doch genommen.

Der Fehler war: Auf der EFI-Partition lag noch der alte Kernel aus dem PVE6-Repo.
Offensichtlich "refreshed" das proxmox-boot-tool den nicht beim Upgrade, wenn die Versionsnummer gleich bleibt.

Mein Fix war:
root@pve:~# rm -r /boot/*5.11.22-4*
root@pve:~# rm -r /mnt/tmp/EFI/proxmox/5.11.22-4-pve
root@pve:~# umount /mnt/tmp
root@pve:~# apt reinstall pve-kernel-5.11.22-4-pve

Sollte aber auch reichen händisch den Kernel von /boot auf die Efi-Partiton zu kopieren.

Also Achtung:
Wer auf PVE6 vor dem Upgrade schon den 5.11.22-4-pve Kernel installiert hat, der hat nach dem Upgrade auf PVE7 ein nicht bootendes System.
Meiner Meinung nach liegt das Problem im "proxmox-boot-tool".

Das müsste jetzt mal jemand verifizieren und evtl. einen Bug aufmachen.
 
  • Like
Reactions: Dunuin
Letztes Update:
Der Fehler liegt nicht im "proxmox-boot-tool", sondern in "/etc/kernel/postinst.d/zz-proxmox-boot".

Dort wird "cp -u" verwendet um den Kernel auf die EFI-Partition zu kopieren.
In meinem Fall war aber die PVE6-Version des Kernels 5.11.22-4-pve neueren Datums als die PVE7-Version (siehe oben) was dazu führte, das "cp -u" gar nichts kopiert.
 
Also Achtung:
Wer auf PVE6 vor dem Upgrade schon den 5.11.22-4-pve Kernel installiert hat, der hat nach dem Upgrade auf PVE7 ein nicht bootendes System.
Meiner Meinung nach liegt das Problem im "proxmox-boot-tool".

Das müsste jetzt mal jemand verifizieren und evtl. einen Bug aufmachen.
Der Fehler liegt nicht im "proxmox-boot-tool", sondern in "/etc/kernel/postinst.d/zz-proxmox-boot".

Dort wird "cp -u" verwendet um den Kernel auf die EFI-Partition zu kopieren.


Danke für das nachforschen und gründliche testen - stimme bei der Analyse überein...

gerne auch einen bug unter https://bugzilla.proxmox.com aufmachen (bitte auch den Thread hier verlinken).

Das Thema wird nicht sonderlich häufig auftreten (auch wenn es recht unangenehm ist) -

wir diskutieren gerade darüber, wie wir es beheben ohne unnötig Sachen hin und her zu kopieren.
 
Würde denn da viel unnötig hin und her kopiert?
/etc/kernel/postinst.d/zz-proxmox-boot wird doch nur aufgerufen, wenn entweder ein neuer Kernel installiert, proxmox-boot-tool aufgerufen oder die initramfs neu erstellt wird.
Meines Erachtens ist der Overhead da zu vernachlässigen bzw. eine eventuelle Prüfung ob Kernel und Ramdisk zusammen passen sicherlich aufwändiger.
 

About

The Proxmox community has been around for many years and offers help and support for Proxmox VE, Proxmox Backup Server, and Proxmox Mail Gateway.
We think our community is one of the best thanks to people like you!

Get your subscription!

The Proxmox team works very hard to make sure you are running the best software and getting stable updates and security enhancements, as well as quick enterprise support. Tens of thousands of happy customers have a Proxmox subscription. Get yours easily in our online shop.

Buy now!