EDIT : Debian a sorti une version 12.4 avec un noyau corrigé le 11 décembre.
Le noyau 6.1.64-1 de Debian 12.3 a un très gros problème : il peut corrompre des données stockées sur le système de fichiers ext4 (voir le ticket Debian).
A priori, ça ne touche que les fichiers créés ou modifiés depuis la mise à jour du noyau.
Pour les personnes qui font leurs mises à jour manuellement, ça ne sera pas un souci, il suffit d’attendre le correctif avant de mettre à jour. Pour celles qui utilisent unattended-upgrades
(c’est mon cas), c’est plus tendu.
Éviter le redémarrage
Quand on utilise unattended-upgrades
, on peut vouloir automatiser les redémarrages. Si c’est le cas, vous aurez besoin de lancer les quelques commandes suivantes.
Désactivation dans la configuration
Vous avez de la chance, la mise à jour ne s’est pas encore faite. Vous pouvez désactiver le reboot automatique ainsi :
sed -e 's/Unattended-Upgrade::Automatic-Reboot "true";/Unattended-Upgrade::Automatic-Reboot "false";/' \
-i /etc/apt/apt.conf.d/50unattended-upgrades
Désactivation du redémarrage programmé
Manque de chance, la mise à jour est passée et un redémarrage est prévu. Désactivez-le ainsi :
rm /var/run/reboot-required
shutdown -c
NB : pour voir si un redémarrage est prévu, utilisez cette commande :
shutdown --show
Redémarrer avec un ancien noyau
D’abord, voir l’identifiant des options avancées de GRUB :
grep "Advanced options for Debian GNU/Linux" /boot/grub/grub.cfg
Ça donne un truc comme ça :
submenu 'Advanced options for Debian GNU/Linux' $menuentry_id_option 'gnulinux-advanced-b85ab3cf-18e3-4366-b120-8ceacc4a9e58' {
On note gnulinux-advanced-b85ab3cf-18e3-4366-b120-8ceacc4a9e58
pour plus tard. Puis on regarde la liste des noyaux :
grep "with Linux.*gnulinux" /boot/grub/grub.cfg
Ce qui donne un truc comme ça :
menuentry 'Debian GNU/Linux, with Linux 6.1.0-14-amd64' --class debian --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-6.1.0-14-amd64-advanced-b85ab3cf-18e3-4366-b120-8ceacc4a9e58' {
menuentry 'Debian GNU/Linux, with Linux 6.1.0-14-amd64 (recovery mode)' --class debian --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-6.1.0-14-amd64-recovery-b85ab3cf-18e3-4366-b120-8ceacc4a9e58' {
menuentry 'Debian GNU/Linux, with Linux 6.1.0-13-amd64' --class debian --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-6.1.0-13-amd64-advanced-b85ab3cf-18e3-4366-b120-8ceacc4a9e58' {
menuentry 'Debian GNU/Linux, with Linux 6.1.0-13-amd64 (recovery mode)' --class debian --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-6.1.0-13-amd64-recovery-b85ab3cf-18e3-4366-b120-8ceacc4a9e58' {
menuentry 'Debian GNU/Linux, with Linux 6.1.0-12-amd64' --class debian --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-6.1.0-12-amd64-advanced-b85ab3cf-18e3-4366-b120-8ceacc4a9e58' {
menuentry 'Debian GNU/Linux, with Linux 6.1.0-12-amd64 (recovery mode)' --class debian --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-6.1.0-12-amd64-recovery-b85ab3cf-18e3-4366-b120-8ceacc4a9e58' {
On note alors l’identifiant du noyau qu’on choisit, en l’occurrence gnulinux-6.1.0-13-amd64-advanced-b85ab3cf-18e3-4366-b120-8ceacc4a9e58
.
On modifie alors la variable GRUB_DEFAULT
du fichier /etc/default/grub
avec les deux identifiants notés, séparés par un chevron >
:
GRUB_DEFAULT="gnulinux-advanced-b85ab3cf-18e3-4366-b120-8ceacc4a9e58>gnulinux-6.1.0-13-amd64-advanced-b85ab3cf-18e3-4366-b120-8ceacc4a9e58"
Ensuite il faut lancer update-grub
et redémarrer pour se retrouver sur un noyau qui n’a pas le bug.