Dépanner un kernel panic

Publié le : · Édité le : · Tags : CLI, Dépannage, Linux, Tech

J'ai eu un kernel panic sur ma tour. C'est une erreur assez impressionnante, puisqu'elle empêche de boot sur la version du noyau (kernel) que l'on essaie de boot.

Elle ressemble à ça chez moi, à peu de choses près :

Screen with a linux penguin logo, with the text : Kernel panic ! Please reboot your computer. VFS: Unable to mount root fs on unknown-block(0,0)

Au redémarrage, j'ai pu entrer le grub et choisir de boot sur une ancienne version du noyau.

Je vais mettre ici mes notes sur comment analyser et résoudre cette erreur.

Mon système est sur Linux Mint 22.3 Zena, avec une base Ubuntu 24.04 noble, et le noyau que j'essaie d'installer est le dernier auquel je peux accéder, le 7.0.0-28-generic.

#Message d'erreur et logs

L'erreur que j'ai est présente lors de l'upgrade, après un apt update & upgrade.

Elle est quasiment identique à celle-ci trouvée dans le repo de Linux Mint :

Building module:
Cleaning build area...
make -j24 KERNELRELEASE=7.0.0-28-generic -C /lib/modules/7.0.0-28-generic/build 
M=/var/lib/dkms/virtualbox/7.0.16/build....(bad exit status: 2)
Error! Bad return status for module build on kernel: 7.0.0-28-generic (x86_64)
Consult /var/lib/dkms/virtualbox/7.0.16/build/make.log for more information.
dkms autoinstall on 7.0.0-28-generic/x86_64 succeeded for nvidia
dkms autoinstall on 7.0.0-28-generic/x86_64 failed for virtualbox(10)
Error! One or more modules failed to install during autoinstall.
Refer to previous errors for more information.
 * dkms: autoinstall for kernel 7.0.0-28-generic
   ...fail!
run-parts: /etc/kernel/postinst.d/dkms exited with return code 11
dpkg: erreur de traitement du paquet linux-image-7.0.0-28-generic (--configure
:
 le sous-processus paquet linux-image-7.0.0-28-generic script post-installation 
installé a renvoyé un état de sortie d'erreur 11
Des erreurs ont été rencontrées pendant l'exécution :
 linux-headers-7.0.0-28-generic
 linux-headers-generic-hwe-24.04
 linux-generic-hwe-24.04
 linux-image-7.0.0-28-generic
E: Sub-process /usr/bin/dpkg returned an error code (1)

#Analyse

L'erreur est relativement claire :

ont eu une erreur lors de l'installation de la version 7.0.0-28-generic du noyau.

On vois surtout à la ligne 71, un failed pour le dkms autoinstall lié à virtualbox :

Building module:
Cleaning build area...
make -j24 KERNELRELEASE=7.0.0-28-generic -C /lib/modules/7.0.0-28-generic/build 
M=/var/lib/dkms/virtualbox/7.0.16/build....(bad exit status: 2)
Error! Bad return status for module build on kernel: 7.0.0-28-generic (x86_64)
Consult /var/lib/dkms/virtualbox/7.0.16/build/make.log for more information.
dkms autoinstall on 7.0.0-28-generic/x86_64 succeeded for nvidia
dkms autoinstall on 7.0.0-28-generic/x86_64 failed for virtualbox(10)
Error! One or more modules failed to install during autoinstall.
Refer to previous errors for more information.
 * dkms: autoinstall for kernel 7.0.0-28-generic
   ...fail!
[]

#Solutions

Après avoir trouvé cette erreur, j'ai trouvé un post lié sur le forum de Mint.

La personne semble avoir résolu son problème en désinstallant virtualbox, mais ne comprends pas pourquoi l'installation via le package manager ne fonctionne pas. D'autres lui conseillent de le réinstaller via le .deb trouvé sur le site de virtualbox.

Déjà, première étape, je dois savoir si mon virtualbox est installé via le package manager (ici, apt). Je fais toujours mes installations via apt si je peux, donc ça devrait être le cas :

sudo apt list | grep virtualbox
WARNING: apt does not have a stable CLI interface. Use with caution in scripts.
boinc-virtualbox/noble 7.24.1+dfsg-4build1 amd64
unity-scope-virtualbox/noble,noble 0.1+13.10.20130723-0ubuntu3 all
virtualbox-dkms/noble-updates,now 7.0.16-dfsg-2ubuntu1.3 amd64  [installé, automatique]
virtualbox-ext-pack/noble,noble 7.0.16-1 all
virtualbox-guest-additions-iso/noble,noble 7.0.16-1 all
virtualbox-guest-utils-hwe/noble-updates 7.0.16-dfsg-2ubuntu1.24.04.2 amd64
virtualbox-guest-utils/noble-updates 7.0.16-dfsg-2ubuntu1.3 amd64
virtualbox-guest-x11-hwe/noble-updates 7.0.16-dfsg-2ubuntu1.24.04.2 amd64
virtualbox-guest-x11/noble-updates 7.0.16-dfsg-2ubuntu1.3 amd64
virtualbox-qt/noble-updates,now 7.0.16-dfsg-2ubuntu1.3 amd64  [installé]
virtualbox-source/noble-updates 7.0.16-dfsg-2ubuntu1.3 amd64
virtualbox/noble-updates,now 7.0.16-dfsg-2ubuntu1.3 amd64  [installé, automatique]

On peut voir le [installé] à la ligne 5, 12 et 14, correspondant aux sources de noble-updates. J'ai donc bien installé virtualbox via apt. On vois aussi que c'est la version 7.0.16-dfsg-2ubuntu1.3 amd64 qui est installée sur mon système.

Pour vérifier que le problème viens bien de virtualbox, je fais un apt remove virtualbox. J'obtient la même erreur de build du kernel qu'auparavant.

Après quelques tests, je me rends compte en listant les paquets que virtualbox-dkms est toujours présent sur mon système. (il y a sans aucun doute des meilleurs façon de savoir ça).

sudo apt list | grep virtualbox
WARNING: apt does not have a stable CLI interface. Use with caution in scripts.
boinc-virtualbox/noble 7.24.1+dfsg-4build1 amd64
unity-scope-virtualbox/noble,noble 0.1+13.10.20130723-0ubuntu3 all
virtualbox-dkms/noble-updates,now 7.0.16-dfsg-2ubuntu1.3 amd64 [installé, pouvant être supprimé automatiquement]
virtualbox-ext-pack/noble,noble 7.0.16-1 all
virtualbox-guest-additions-iso/noble,noble 7.0.16-1 all
virtualbox-guest-utils-hwe/noble-updates 7.0.16-dfsg-2ubuntu1.24.04.2 amd64
virtualbox-guest-utils/noble-updates 7.0.16-dfsg-2ubuntu1.3 amd64
virtualbox-guest-x11-hwe/noble-updates 7.0.16-dfsg-2ubuntu1.24.04.2 amd64
virtualbox-guest-x11/noble-updates 7.0.16-dfsg-2ubuntu1.3 amd64
virtualbox-qt/noble-updates 7.0.16-dfsg-2ubuntu1.3 amd64
virtualbox-source/noble-updates 7.0.16-dfsg-2ubuntu1.3 amd64
virtualbox/noble-updates,now 7.0.16-dfsg-2ubuntu1.3 amd64 [configuration restante]

Je fais donc un apt autoremove, ce qui semble bien résoudre mon problème d'installation du kernel.

 * dkms: running auto installation service for kernel 7.0.0-28-generic
 * dkms: autoinstall for kernel 7.0.0-28-generic
   ...done.

On test un redémarrage sur le nouveau kernel, test réalisé avec succès. L'erreur venait donc bien d'un problème du paquet virtualbox, incompatible avec la version actuelle du système, non gérée par les dépots de Mint.

#Réinstallation de virtualbox

Pour finir, on installe la dernière version de virtualbox, via les dépots de virtualbox directement pour hopefully éviter d'autres problèmes par la suite :

On ajoute les sources à la main en suivant les instructions trouvées sur le site officiel:

deb [arch=amd64 signed-by=/usr/share/keyrings/oracle-virtualbox-2016.gpg] https://download.virtualbox.org/virtualbox/debian noble contrib`

apt update puis apt install virtualbox-7.2.

On n'a plus de problème au redémarrage de la machine et on peut utiliser virtualbox 🥳