Notes de paramétrage de postes de travail, et autres vicissitudes ...

Accueil > Linux - Ubuntu > Résolution de problèmes rencontrés > ubuntu - virtualbox - kernel panic rcu_preempt blocking

ubuntu - virtualbox - kernel panic rcu_preempt blocking

mardi 30 avril 2024, par Lucien-Henry

Problème

Au boot de la machine virutelle VirtualBox 6.0.16 sous Ubuntu Mate 24.04 fraîchement mise à jour

rcu: INFO: rcu_preempt detected expedited stalls on CPUs/tasks: { 2-... } 6 jiffies s: 65 root: 0x1/.
rcu: blocking rcu_node structures (internal RCU debug):
Hardware name: innotek GmbH VirtualBox/VirtualBox, BIOS VirtualBox 12/01/2006
RIP: 0011:pv_native_safe_halt+0xb/0x10
.../...
Et liste d'insultes diverses ...

Le problème semblerait venir du BIOS de la machine, soit ici de VirtualBox.
Certains le situent dans le matériel WiFi ou bien dans le nombre de CPU déclarés dans la machine virutelle (ici, la machine a 3 CPU).

Solution

Travailler en plusieurs étapes.

Il peut y avoir un message d’erreur sur la présence de dpkg-reconfigure.
apt-get --reinstall install dpkg

Première cause de problème, un paramétrage de Grub.
Vérifier sur quel disque dur le système boot (en général /dev/sda mais ça peut être le pci-e /dev/enm00).

apt-get --reinstall install grub-gfxpayload-lists grub-common grub-pc grub-pc-bin grub2-common
dpkg-reconfigure grub-gfxpayload-lists grub-common grub-pc grub-pc-bin grub2-common

Vérifier les commandes qu’il faudra peut-être passer à grub : noplymouth video=SVIDEO-1:d quiet splash
Pas besoin de faire joli, on veut que ça boote vite : noplymouth
Dégager quiet splash et laisser video=SVIDEO-1:d
En effet :

  • Quiet "résume" tous les messages en des étapes de boot
  • Splash affiche le splashscreen lors du boot Refuser os-prober

Aussi surprenant que cela semble même dans une machine virutelle, on ne peut se passer du microcode alors qu’il n’est pas géré.
Reconfiguration du système en vue de la réinitialisation de grub et du noyau.
apt-get —reinstall install microcode-initrd intel-microcode amd64-microcode
dpkg-reconfigure microcode-initrd intel-microcode amd64-microcode

Réinitialisation de initramfs

apt-get --reinstall install initramfs-tools initramfs-tools-bin initramfs-tools-core linux-firmware
dpkg-reconfigure initramfs-tools initramfs-tools-bin initramfs-tools-core linux-firmware

Vérification de la version de noyau linux, dans notre cas : 6.8.0-31

apt-get --reinstall install linux-generic linux-headers-6.8.0-31 linux-headers-6.8.0-31-generic linux-headers-generic linux-image-6.8.0-31-generic linux-image-generic linux-modules-6.8.0-31-generic linux-modules-extra-6.8.0-31-generic linux-modules-extra-6.8.0-31-generic linux-tools-6.8.0-31-generic linux-tools-common
dpkg-reconfigure linux-generic linux-headers-6.8.0-31 linux-headers-6.8.0-31-generic linux-headers-generic linux-image-6.8.0-31-generic linux-image-generic linux-modules-6.8.0-31-generic linux-modules-extra-6.8.0-31-generic linux-modules-extra-6.8.0-31-generic linux-tools-6.8.0-31-generic linux-tools-common

Plus qu’à ouvrir un autre terminal avec htop pour vérifier l’activité CPU, coller toutes ces commandes dans une seule ligne.
Ce qui tout collé donne :
apt-get --reinstall install dpkg ; apt-get --reinstall install grub-gfxpayload-lists grub-common grub-pc grub-pc-bin grub2-common ; dpkg-reconfigure grub-gfxpayload-lists grub-common grub-pc grub-pc-bin grub2-common ; apt-get --reinstall install microcode-initrd intel-microcode amd64-microcode ; dpkg-reconfigure microcode-initrd intel-microcode amd64-microcode ; apt-get --reinstall install initramfs-tools initramfs-tools-bin initramfs-tools-core linux-firmware ; dpkg-reconfigure initramfs-tools initramfs-tools-bin initramfs-tools-core linux-firmware ; apt-get --reinstall install linux-generic linux-headers-6.8.0-31 linux-headers-6.8.0-31-generic linux-headers-generic linux-image-6.8.0-31-generic linux-image-generic linux-modules-6.8.0-31-generic linux-modules-extra-6.8.0-31-generic linux-modules-extra-6.8.0-31-generic linux-tools-6.8.0-31-generic linux-tools-common ; dpkg-reconfigure linux-generic linux-headers-6.8.0-31 linux-headers-6.8.0-31-generic linux-headers-generic linux-image-6.8.0-31-generic linux-image-generic linux-modules-6.8.0-31-generic linux-modules-extra-6.8.0-31-generic linux-modules-extra-6.8.0-31-generic linux-tools-6.8.0-31-generic linux-tools-common

Liens

intel-microcode
grub video=SVIDEO-1:d
grub utilité de splash et quiet
Grub2 explication
rcu info rcu_preempt detected stalls on cpus/tasks
Linux crash after resume - rcu preempt detected
Kernel panic at startup