Ubuntu : solution à « Kernel Offset disabled » et « end Kernel panic not syncing »

Quand un message « kernel panic » apparait au démarrage ou après un plantage d’un Ubuntu, c’est très mauvais signe. Entre le petit bug vite résolu et la panne qui empêchera tout dépannage, les solutions sont nombreuses et pas toujours simples à mettre en oeuvre.

Ce tutoriel montre une solution au message « Kernel Offset : disabled » et « end Kernel panic – not syncing : VFS: Unable to mount root fs on unknown block(0,0) » : pas bon signe a priori.

Que ce soit avec un poste de travail ou un serveur, en machine virtuelle ou physique, ce problème est indépendant de l’architecture matérielle et du hardware utilisé. Cela arrive sur Ubuntu 12, 14, 16, 18, 20 en LTS, mais aussi les versions intermédiaires Ubuntu 13, 15, 17, 19. En bref, toute version de la distribution Linux peut être concernée par ce bug.

 

Ubuntu : « Kernel Offset : disabled » et « end Kernel panic not syncing »

Normalement, le système ne démarre plus du tout et plante sur ce message d’erreur :

On peut vérifier l’intégrité du disque dur avec un fsck -fv, installer et utiliser boot-repair, cela ne change rien. Le problème vient du kernel qui est défectueux, peut-être suite à une mise à jour, essayons alors de démarrer sur une version antérieure.

1. Eteindre la machine Ubuntu ou la VM.

2. Démarrer le système : à l’écran GNU GRUB, descendre avec la flèche vers le bas pour choisir « Advanced options for Ubuntu » et valider avec Entrée. Si ce menu n’apparait pas, appuyer sur Shift (Maj) ou sur Echap au démarrage pour le faire apparaitre.

3. Choisir l’avant dernière version du kernel affiché. Le plus récent étant celui qui pose problème, la version précédente pourrait bien fonctionner.

Par exemple, le kernel qui ne démarrait pas est Ubuntu, with Linux 5.7.0-050700-generic. Il faut essayer de démarrer sur Ubuntu, with Linux 5.4.0-37-generic. Autre exemple en Ubuntu 14 LTS : le Linux 4.4.0-148-generic x86_64 cause un kernel panic. Il faut donc choisir la version précédente, à savoir : GNU/Linux 4.4.0-135-generic x86_64

Cette solution n’est que temporaire, il faudra ensuite reproduire pour confirmer que le kernel le plus récent est en cause et peut-être le supprimer. Cela n’est pas l’objet de ce guide mais un kernel se supprime par ces commandes :

sudo apt remove linux-headers-5.7.0*
sudo apt remove linux-image-5.7.0*
sudo apt remove linux-modules-5.7.0*
Quitter la version mobile