Relation entre linux-headers et kernel panic?

testing/noyau 6.0.0-6

je pensais que les en-têtes n’étaient indispensables qu’en cas de compilation d’un pilote externe et c’est mon cas pour ma carte wifi broadcom qui nécessite le paquet broadcom-sta-dkms . Par contre que son installation résolve un problème de kernel panic … unable to mount root fs… je ne comprends pas le lien .

Donc , après mise à jour de testing et installation , entre autre , d’un nouveau noyau , le 6.0.0-6 , mon ssd nomade ne démarrait plus et indiquait kernel panic etc … . Pas de problème avec le noyau 6.0.0-5 .

En lisant ceci :

Setting up linux-image-6.0.0-6-amd64 (6.0.12-1) ...
/etc/kernel/postinst.d/dkms:
dkms: running auto installation service for kernel 6.0.0-6-amd64:Deprecated feature: REMAKE_INITRD (/var/lib/dkms/broadcom-sta/6.30.223.271/source/dkms.conf)
Deprecated feature: REMAKE_INITRD (/var/lib/dkms/broadcom-sta/6.30.223.271/source/dkms.conf)
Deprecated feature: REMAKE_INITRD (/var/lib/dkms/broadcom-sta/6.30.223.271/source/dkms.conf)
Deprecated feature: REMAKE_INITRD (/var/lib/dkms/broadcom-sta/6.30.223.271/source/dkms.conf)
Deprecated feature: REMAKE_INITRD (/etc/dkms/framework.conf)
Sign command: /usr/lib/linux-kbuild-6.0/scripts/sign-file
Signing key: /var/lib/dkms/mok.key
Public certificate (MOK): /var/lib/dkms/mok.pub
Deprecated feature: REMAKE_INITRD (/var/lib/dkms/broadcom-sta/6.30.223.271/source/dkms.conf)
Error! Your kernel headers for kernel 6.0.0-6-amd64 cannot be found at /lib/modules/6.0.0-6-amd64/build or /lib/modules/6.0.0-6-amd64/source.
Please install the linux-headers-6.0.0-6-amd64 package or use the --kernelsourcedir option to tell DKMS where it's located.
Error! One or more modules failed to install during autoinstall.
Refer to previous errors for more information.
 failed!
run-parts: /etc/kernel/postinst.d/dkms exited with return code 11
dpkg: error processing package linux-image-6.0.0-6-amd64 (--configure):
 installed linux-image-6.0.0-6-amd64 package post-installation script subprocess returned error exit status 1
dpkg: dependency problems prevent configuration of linux-image-amd64:
 linux-image-amd64 depends on linux-image-6.0.0-6-amd64 (= 6.0.12-1); however:
  Package linux-image-6.0.0-6-amd64 is not configured yet.

dpkg: error processing package linux-image-amd64 (--configure):
 dependency problems - leaving unconfigured
Errors were encountered while processing:
 linux-image-6.0.0-6-amd64
 linux-image-amd64
E: Sub-process /usr/bin/dpkg returned an error code (1)

j’ai donc , avec synaptic , installé le paquet linux-headers correspondant à ce noyau et tout est rentré dans l’ordre . Plus de panique .

ps :

  • le paquet linux-headers-amd64 étant installé il me semble que le linux-headers nouveau aurait dû s’installer automatiquement ?
  • au tout début je ne mettais pas à jour ces en-têtes et je me suis aperçu que la wifi ne fonctionnait pas , d’où l’installation du métapaquet linux-headers , mais même sans les en-têtes mis à jour le ssd autonome avait toujours bien fonctionné ; sans paniquer .

Normalement oui, bien qu’un environnement ‹ testing › implique certaines vérifications, et une méfiance du mot ‹ automatique ›.
linux-image et linux-headers ne sont pas dépendants l’un de l’autre.

linux-image-amd64
	↳ linux-image-6.0.0-6-amd64
		↳ kmod linux-base initramfs-tools

linux-headers-amd64
	↳ linux-headers-6.0.0-6-amd64
		↳ linux-headers-6.0.0-6-common linux-kbuild-6.0 linux-compiler-gcc-12-x86

Que dit ceci:

grep -hs ^d /etc/apt/s{,*/}*t

apt list linux-{image,headers}-amd64
mi@s125:~$ grep -hs ^d /etc/apt/s{,*/}*t
deb http://deb.debian.org/debian/ bookworm main contrib non-free
deb http://security.debian.org/debian-security bookworm-security main contrib non-free
deb http://deb.debian.org/debian/ bookworm-updates main contrib non-free
deb http://deb.debian.org/debian/ bookworm-backports main contrib non-free
mi@s125:~$ 
mi@s125:~$ apt list linux-{image,headers}-amd64
Listing... Done
linux-headers-amd64/testing 6.0.12-1 amd64 [upgradable from: 6.0.10-1]
linux-image-amd64/testing,now 6.0.12-1 amd64 [installed]
mi@s125:~$ 

linux-headers-amd64/testing 6.0.12-1 amd64 upgradable

Tout est donc ‹ normal ›.

on va donc mettre ce comportement anormal sur le compte de testing toujours en cours de développement .

apt install linux-headers-amd64

Par contre, tu as peu de chances de trouver des paquets dans « bookworm security,updates,backports ».
Tu peux mettre un ‹ # › devant ces 3 lignes pour le moment.

effectivement cette commande a installé la dernière version alors que update ne l’a pas fait .

Tu peux mettre un ‹ # › devant ces 3 lignes pour le moment.

je compte utiliser cette distribution en branchant ce ssd sur mon portable pour tester sa compatibilité avec le futur debian 12 à partir du gel de testing en janvier . J’aime donc autant être aussi complet que possible pour ça , non ?

C’est le cas principal. On peut aussi en avoir besoin pour compiler certains programmes système fortement liés à des fonctionnalités du noyau comme iptables, nftables…

L’installation du nouveau paquet linux-image a lancé la compilation des modules externes. Sans les en-têtes du noyau, la compilation a échoué et a interrompu la configuration du noyau avant la création de l’initramfs. Sans initramfs, démarrer sur ce noyau avec un paramètre root=UUID=… que le noyau est incapable d’interpréter conduit inévitablement à un kernel panic.
Après installation des en-têtes, les modules externes peuvent être compilés avec succès et l’initramfs peut être créé, donc plus de kernel panic « unable to mount rootfs » au démarrage.
Il y a quand même une anomalie : l’installation ayant été interrompue avant la mise à jour de la configuration de GRUB (update-grub), le nouveau noyau n’aurait pas dû être présent dans le menu de GRUB.

l’intitulé exact de l’incident était :
kernel panic -not syncing : VFS : unable to mount root fs on unknown - block ( 0 , 0 )
Cela doit bien faire au moins 6 mois que je teste bookworm et je n’avais jamais eu le moindre pépin .

Merci pour ces explications .