Kernel panic VFS: Unable to mount root fs on unknown-block (0,0) sobald ein 7.x Kernel verwendet wird.

Raylane

New Member
May 30, 2026
4
0
1
Hallo,

ich habe Probleme das mit Kernel 7.x immer die Meldung "Kernel Panic! VFS: Unable to mount root fs on unknown-block (0,0)" erscheint.
Aktuell kann ich nur in den Kernel 6.17.13-13-pve booten. Durch das deinstallieren von Proxmox VE konnte ich verhinder das dieser immer
wieder ein Kernel 7.x versucht wird neu zu installieren.

Mein PC habe ich als Komplett durchgereichte VM (GPU, onboard GPU, USB Ports, SSD, etc.) erstellt. Diverse IOMMU Gruppen wurden dem Proxmox Host
entzogen und direkt an die VM's gereicht. Laut der make.log scheint das ganze irgendwie an der internen AMD Grafikkarte vom Prozessor zu liegen.

Vermutlich ist meine aktuelle Lösung nicht die Richtige bzw. nicht die schöne Variante. Da ich mein Wissen ehr als Linuxanfänger einstuffen würde.

Vielleicht kann ja ein erfahrener mir ein Tipp geben wie ich mein Proxmox wieder anständig mit aktuellem Kernel zum laufen bekomme.

Meine Hardware:
CPU: AMD Ryzen 9 7900X3D 12x 4.40GHz
Mainboard: ASRock X670E PG Lightning AMD X670E
GPU: MSI Geforce RTX 4070 VENTUS OC 12GB
RAM: 64GB Corsair Vengeance RGB DDR5-6000


Wenn ich Proxmox VE wieder installieren will:
Code:
root@Raylane:~# apt install proxmox-ve
Installing:                    
  proxmox-ve

Installing dependencies:
  proxmox-default-kernel  proxmox-kernel-7.0  proxmox-kernel-7.0.6-2-pve-signed

Summary:
  Upgrading: 0, Installing: 4, Removing: 0, Not Upgrading: 0
  Download size: 131 MB
  Space needed: 1,030 MB / 83.8 GB available

Continue? [Y/n] y
Get:1 http://download.proxmox.com/debian/pve trixie/pve-no-subscription amd64 proxmox-kernel-7.0.6-2-pve-signed amd64 7.0.6-2 [131 MB]
Get:2 http://download.proxmox.com/debian/pve trixie/pve-no-subscription amd64 proxmox-kernel-7.0 amd64 7.0.6-2 [12.9 kB]                                                                                                                                                                                                                                                      
Get:3 http://download.proxmox.com/debian/pve trixie/pve-no-subscription amd64 proxmox-default-kernel all 2.1.0 [2,316 B]                                                                                                                                                                                                                                                      
Get:4 http://download.proxmox.com/debian/pve trixie/pve-no-subscription amd64 proxmox-ve all 9.2.0 [5,156 B]                                                                                                                                                                                                                                                                  
Fetched 131 MB in 11s (11.5 MB/s)                                                                                                                                                                                                                                                                                                                                            
Selecting previously unselected package proxmox-kernel-7.0.6-2-pve-signed.
(Reading database ... 97451 files and directories currently installed.)
Preparing to unpack .../proxmox-kernel-7.0.6-2-pve-signed_7.0.6-2_amd64.deb ...
Unpacking proxmox-kernel-7.0.6-2-pve-signed (7.0.6-2) ...
Selecting previously unselected package proxmox-kernel-7.0.
Preparing to unpack .../proxmox-kernel-7.0_7.0.6-2_amd64.deb ...
Unpacking proxmox-kernel-7.0 (7.0.6-2) ...
Selecting previously unselected package proxmox-default-kernel.
Preparing to unpack .../proxmox-default-kernel_2.1.0_all.deb ...
Unpacking proxmox-default-kernel (2.1.0) ...
Selecting previously unselected package proxmox-ve.
Preparing to unpack .../proxmox-ve_9.2.0_all.deb ...
Unpacking proxmox-ve (9.2.0) ...
Setting up proxmox-kernel-7.0.6-2-pve-signed (7.0.6-2) ...
Examining /etc/kernel/postinst.d.
run-parts: executing /etc/kernel/postinst.d/dkms 7.0.6-2-pve /boot/vmlinuz-7.0.6-2-pve
Sign command: /lib/modules/7.0.6-2-pve/build/scripts/sign-file
Signing key: /var/lib/dkms/mok.key
Public certificate (MOK): /var/lib/dkms/mok.pub

Autoinstall of module vendor-reset/0.1.1 for kernel 7.0.6-2-pve (x86_64)
Building module(s)...(bad exit status: 2)
Failed command:
make -j24 KERNELRELEASE=7.0.6-2-pve KDIR=/lib/modules/7.0.6-2-pve/build

Error! Bad return status for module build on kernel: 7.0.6-2-pve (x86_64)
Consult /var/lib/dkms/vendor-reset/0.1.1/build/make.log for more information.

Autoinstall on 7.0.6-2-pve failed for module(s) vendor-reset(10).

Error! One or more modules failed to install during autoinstall.
Refer to previous errors for more information.
run-parts: /etc/kernel/postinst.d/dkms exited with return code 1
Failed to process /etc/kernel/postinst.d at /var/lib/dpkg/info/proxmox-kernel-7.0.6-2-pve-signed.postinst line 20.
dpkg: error processing package proxmox-kernel-7.0.6-2-pve-signed (--configure):
 installed proxmox-kernel-7.0.6-2-pve-signed package post-installation script subprocess returned error exit status 2
dpkg: dependency problems prevent configuration of proxmox-kernel-7.0:
 proxmox-kernel-7.0 depends on proxmox-kernel-7.0.6-2-pve-signed | proxmox-kernel-7.0.6-2-pve; however:
  Package proxmox-kernel-7.0.6-2-pve-signed is not configured yet.
  Package proxmox-kernel-7.0.6-2-pve is not installed.
  Package proxmox-kernel-7.0.6-2-pve-signed which provides proxmox-kernel-7.0.6-2-pve is not configured yet.

dpkg: error processing package proxmox-kernel-7.0 (--configure):
 dependency problems - leaving unconfigured
dpkg: dependency problems prevent configuration of proxmox-default-kernel:
 proxmox-default-kernel depends on proxmox-kernel-7.0; however:
  Package proxmox-kernel-7.0 is not configured yet.

dpkg: error processing package proxmox-default-kernel (--configure):
 dependency problems - leaving unconfigured
dpkg: dependency problems prevent configuration of proxmox-ve:
 proxmox-ve depends on proxmox-default-kernel; however:
  Package proxmox-default-kernel is not configured yet.

dpkg: error processing package proxmox-ve (--configure):
 dependency problems - leaving unconfigured
Errors were encountered while processing:
 proxmox-kernel-7.0.6-2-pve-signed
 proxmox-kernel-7.0
 proxmox-default-kernel
 proxmox-ve
Error: Sub-process /usr/bin/dpkg returned an error code (1)


make.log
Code:
DKMS (dkms-3.2.2) make.log for vendor-reset/0.1.1 for kernel 7.0.6-2-pve (x86_64)
Sat May 30 12:22:51 PM CEST 2026

Building module(s)
# command: make -j24 KERNELRELEASE=7.0.6-2-pve KDIR=/lib/modules/7.0.6-2-pve/build
make -C /lib/modules/7.0.6-2-pve/build M=/var/lib/dkms/vendor-reset/0.1.1/build modules
make[1]: Entering directory '/usr/src/linux-headers-7.0.6-2-pve'
make[2]: Entering directory '/var/lib/dkms/vendor-reset/0.1.1/build'
warning: pahole version differs from the one used to build the kernel
  The kernel was built with: 130
  You are using:             0
  CC [M]  src/module.o
  CC [M]  src/vendor-reset-dev.o
  CC [M]  src/ioctl.o
  CC [M]  src/ftrace.o
  CC [M]  src/hook.o
  CC [M]  src/amd/common.o
  CC [M]  src/amd/compat.o
  CC [M]  src/amd/firmware.o
  CC [M]  src/amd/navi10.o
  CC [M]  src/amd/polaris10.o
  CC [M]  src/amd/vega10.o
  CC [M]  src/amd/vega20.o
  CC [M]  src/amd/amdgpu/amdgpu_device.o
  CC [M]  src/amd/amdgpu/amdgpu_discovery.o
  CC [M]  src/amd/amdgpu/amdgpu_bios.o
  CC [M]  src/amd/amdgpu/amdgpu_atomfirmware.o
  CC [M]  src/amd/amdgpu/atom.o
  CC [M]  src/amd/amdgpu/common_baco.o
  CC [M]  src/amd/amdgpu/navi10_reg_init.o
  CC [M]  src/amd/amdgpu/navi12_reg_init.o
  CC [M]  src/amd/amdgpu/navi14_reg_init.o
  CC [M]  src/amd/amdgpu/polaris_baco.o
  CC [M]  src/amd/amdgpu/smu7_baco.o
  CC [M]  src/amd/amdgpu/vega10_reg_init.o
  CC [M]  src/amd/amdgpu/vega20_reg_init.o
src/ftrace.c:66:5: warning: no previous prototype for ‘fh_install_hook’ [-Wmissing-prototypes]
   66 | int fh_install_hook(struct ftrace_hook *hook)
      |     ^~~~~~~~~~~~~~~
src/ftrace.c:96:6: warning: no previous prototype for ‘fh_remove_hook’ [-Wmissing-prototypes]
   96 | void fh_remove_hook(struct ftrace_hook *hook)
      |      ^~~~~~~~~~~~~~
src/ioctl.c:91:5: warning: no previous prototype for ‘vendor_reset_ioctl_init’ [-Wmissing-prototypes]
   91 | int vendor_reset_ioctl_init(void)
      |     ^~~~~~~~~~~~~~~~~~~~~~~
src/ioctl.c:96:6: warning: no previous prototype for ‘vendor_reset_ioctl_exit’ [-Wmissing-prototypes]
   96 | void vendor_reset_ioctl_exit(void)
      |      ^~~~~~~~~~~~~~~~~~~~~~~
src/amd/firmware.c:40:5: warning: no previous prototype for ‘amdgpu_io_rreg’ [-Wmissing-prototypes]
   40 | u32 amdgpu_io_rreg(struct amd_fake_dev *adev, u32 reg)
      |     ^~~~~~~~~~~~~~
src/amd/amdgpu/amdgpu_device.c:47:6: warning: no previous prototype for ‘amdgpu_device_vram_access’ [-Wmissing-prototypes]
   47 | void amdgpu_device_vram_access(struct amd_fake_dev *adev, loff_t pos,
      |      ^~~~~~~~~~~~~~~~~~~~~~~~~
src/amd/firmware.c:60:6: warning: no previous prototype for ‘amdgpu_io_wreg’ [-Wmissing-prototypes]
   60 | void amdgpu_io_wreg(struct amd_fake_dev *adev, u32 reg, u32 v)
      |      ^~~~~~~~~~~~~~
src/amd/amdgpu/atom.c:32:10: fatal error: asm/unaligned.h: No such file or directory
   32 | #include <asm/unaligned.h>
      |          ^~~~~~~~~~~~~~~~~
compilation terminated.
make[4]: *** [/usr/src/linux-headers-7.0.6-2-pve/scripts/Makefile.build:289: src/amd/amdgpu/atom.o] Error 1
make[4]: *** Waiting for unfinished jobs....
src/amd/amdgpu/vega10_reg_init.c:29:5: warning: no previous prototype for ‘vega10_reg_base_init’ [-Wmissing-prototypes]
   29 | int vega10_reg_base_init(struct amd_fake_dev *adev)
      |     ^~~~~~~~~~~~~~~~~~~~
src/amd/amdgpu/amdgpu_bios.c:91:6: warning: no previous prototype for ‘amdgpu_read_bios’ [-Wmissing-prototypes]
   91 | bool amdgpu_read_bios(struct amd_fake_dev *adev)
      |      ^~~~~~~~~~~~~~~~
src/amd/amdgpu/amdgpu_bios.c:156:6: warning: no previous prototype for ‘amdgpu_get_bios’ [-Wmissing-prototypes]
  156 | bool amdgpu_get_bios(struct amd_fake_dev *adev)
      |      ^~~~~~~~~~~~~~~
src/amd/amdgpu/vega20_reg_init.c:29:5: warning: no previous prototype for ‘vega20_reg_base_init’ [-Wmissing-prototypes]
   29 | int vega20_reg_base_init(struct amd_fake_dev *adev)
      |     ^~~~~~~~~~~~~~~~~~~~
src/amd/vega10.c:96:5: warning: no previous prototype for ‘vega10_baco_set_state’ [-Wmissing-prototypes]
   96 | int vega10_baco_set_state(struct amd_fake_dev *adev, enum BACO_STATE state)
      |     ^~~~~~~~~~~~~~~~~~~~~
make[3]: *** [/usr/src/linux-headers-7.0.6-2-pve/Makefile:2111: .] Error 2
make[2]: *** [/usr/src/linux-headers-7.0.6-2-pve/Makefile:248: __sub-make] Error 2
make[2]: Leaving directory '/var/lib/dkms/vendor-reset/0.1.1/build'
make[1]: *** [Makefile:248: __sub-make] Error 2
make[1]: Leaving directory '/usr/src/linux-headers-7.0.6-2-pve'
make: *** [Makefile:8: build] Error 2

# exit code: 2
# elapsed time: 00:00:03
----------------------------------------------------------------
 
Last edited:
Wenn du schon das externe (nicht Proxmox integrierte) "vendor-reset" Repo nutzen willst, dann würde ich auch dort nachfragen was los ist:
https://github.com/gnif/vendor-reset

Ansonsten wäre es hier wohl gut aufgehoben:
 
  • Like
Reactions: Johannes S
Das Problem mit dem 7 Kernel ist vermutlich auf eine Änderung der IOMMU Gruppe zurückzuführen. Nutzt du Resource Mappings?
 
Last edited:
Vielen Dank für die schnellen Antworten.
Wenn du schon das externe (nicht Proxmox integrierte) "vendor-reset" Repo nutzen willst, dann würde ich auch dort nachfragen was los ist:
https://github.com/gnif/vendor-reset

Ansonsten wäre es hier wohl gut aufgehoben:
Okay werde ich mir mal anschauen. Wie gesagt mein Wissen ist ehr das eines Anfängers. Ich hab damals einfach einen Guide bei Reddit ausprobiert. Gibt es einen Einfachen Befehl um Zwischen dem Proxmox integrierten Repo und dem externen wechseln kann?


Das Problem mit dem 7 Kernel ist vermutlich auf eine Änderung der IOMMU Gruppe zurückzuführen. Nutzt du Resource Mappings?
Mappings werden nicht genutzt ich füge die Hardware den VM's direkt zu (es läuft immer nur eine VM zur Zeit (Windows / PopOS oder Nobara) Da ich so verschiedene Betriebssysteme nutzen oder auch ausprobieren kann.
Hardware.jpg
 
Das ist gefährlich. 0000:15 kann mit dem neuen Kernel eventell etwas komplett anderes sein. Zb. dein Speicher Controller oder ähnliches.
 
Das ist gefährlich. 0000:15 kann mit dem neuen Kernel eventell etwas komplett anderes sein. Zb. dein Speicher Controller oder ähnliches.
Okay aber das sollte soweit ich das verstanden habe noch nicht mein Problem sein da ich die VM's händisch per Weboberfläche am Handy auswähle. Aber der Kernel Build schon vorab nicht funktioniert. Ich nutz auch nur diese Variante da das Resource Mapping nicht funktioniert hat (Vermutlich aufgrund von fehlendem Wissen).
 
Anhand deiner Fehlermeldung ist das Problem vermutlich (ich kann auch nur grob raten, anhand der gelieferten Details) folgendes:

Du hast ein System aufgesetzt, das bei Kernel-Update automatisch versucht das "vendor-reset" Kernel-Modul zu bauen und ins initramfs zu integrieren.
Dein System hat das Kernel Update an sich eingespielt, sodass die Kernel v7.0 "vmlinuz" Datei (also das reine Kernel-Image) vorhanden ist.
Anschließend probiert das System erfolglos das Treibermodul (vendor-reeset) zu bauen. Dabei wird höchstwahrscheinlich das vorhandene inintramfs verschoben/umbenannt oder gelöscht und ein neues kann, wegen dem dkms-fail, nicht erstellt werden.
In dem Moment, wo du im Bootloader den v7.0er Kernel auswählst, wird NUR der Kernel geladen, aber kein initramfs ==> keine Treibermodule für Dateisysteme und Storagecontroller ==> Fehlermeldung die du siehst.

Die Lernkurve ist bei Linux an sich schon nicht schlecht. Wer aber meint gleich bei einem Virtualisierungshost als "Lernplattform" einzusteigen, den trifft es eben noch härter. Dran bleiben, viel lernen und irgendwann hat man dann auch mal Spaß dran. :)

@Impact:
Das was du beschreibst kommt erst später. Dazu müsste es ja erstmal soweit kommen, um mit vfio-pci zu arbeiten.
 
So ich hab den vendor-reset entfernt und das compilieren des Kernels hat geklappt. Aber wie es aussieht funktioniert der integrierte Reset nicht und der ganze Knoten friert einfach ein. Laut Log passiert folgenden:

Wenn eine Linux Basierte VM gestartet wird(Nobara):
Code:
error writing '1' to '/sys/bus/pci/devices/0000:17:00.0/reset': Inappropriate ioctl for device
failed to reset PCI device '0000:17:00.0', but trying to continue as not all devices need a reset

Wenn eine Windows VM gestartet wird:
Code:
error writing '1' to '/sys/bus/pci/devices/0000:17:00.0/reset': Inappropriate ioctl for device
failed to reset PCI device '0000:17:00.0', but trying to continue as not all devices need a reset
swtpm_setup: Not overwriting existing state file.

Was mich wunder ist das hier eine Adresse angezeigt wird, da ich extra den Rat mit dem Resource Mapping befolgt habe.
Hardware mit Mapping.jpg
 
Exakt was zu erwarten war.
Nochmal für's Verständnis:
Deine GPU hat eine Problem damit, wenn sie mitten im Betrieb resettet werden soll.
Das ist für ein Consumer-Device auch nicht wirklich Teil des Use-Case.

Nun kann man dafür Workarounds anwenden (siehe "vendor-reset") und diese lassen sich auch in den Linux-Kernel einbauen.
Nun das große ABER:
Nur wenn sich jemand explizit darum kümmert, und das Mainline anfragt bzw. vorantreibt. Das ist Teil des Open-Source Gedanken.

Also, entweder weiter älteren Kernel nutzen, oder beim "vendor-reset" Projekt nach Unterstützung für Kernel v7.0 anfragen.
 
  • Like
Reactions: Raylane