Après la mise à niveau vers 15.04, les en-têtes du noyau doivent correspondre au noyau en cours d’exécution (pour un autre package).
La mise à niveau a installé le noyau 3.19.0-17. Juste au cas où, j'ai aussi installé linux-headers-generic
. Ensuite, j'ai exécuté Sudo update-grub
et redémarré. Pourtant, le système a démarré dans le noyau 3.16.0-31 (comme confirmé par uname -r
).
Après de nombreuses recherches, j'ai découvert que GrUB reconnaît le noyau 3.19 dans update-grub
et le remplit même dans /boot/grub/menu.lst
. Cependant, au démarrage, GrUB ne reconnaît que le noyau 3.16 dans le menu de démarrage . Comment puis-je résoudre ce problème, afin que GrUB puisse démarrer en 3.19?
Voici quelques résultats de mon système actuel.
Sudo update-grub
produit toujours la sortie suivante:
$ Sudo update-grub
Searching for GRUB installation directory ... found: /boot/grub
Searching for default file ... found: /boot/grub/default
Testing for an existing GRUB menu.lst file ... found: /boot/grub/menu.lst
Searching for splash image ... none found, skipping ...
Found kernel: /boot/vmlinuz-3.19.0-17-generic
Found kernel: /boot/vmlinuz-3.16.0-31-generic
Found kernel: /boot/vmlinuz-3.13.0-40-generic
Found kernel: /boot/vmlinuz-3.11.0-19-generic
Found kernel: /boot/vmlinuz-3.8.0-35-generic
Found kernel: /boot/memtest86+.bin
Found kernel: /boot/vmlinuz-3.19.0-17-generic
Found kernel: /boot/vmlinuz-3.16.0-31-generic
Found kernel: /boot/vmlinuz-3.13.0-40-generic
Found kernel: /boot/vmlinuz-3.11.0-19-generic
Found kernel: /boot/vmlinuz-3.8.0-35-generic
Found kernel: /boot/memtest86+.bin
Updating /boot/grub/menu.lst ... done
Ouverture de /boot/grub/menu.lst
après avoir exécuté update-grub
, la toute première option est:
title Ubuntu 15.04, kernel 3.19.0-17-generic
uuid ac9d0eaf-e090-4c29-8e7b-30e98ed07d29
kernel /boot/vmlinuz-3.19.0-17-generic root=UUID=ac9d0eaf-e090-4c29-8e7b-30e98ed07d29 ro quiet splash
initrd /boot/initrd.img-3.19.0-17-generic
Mais, tenant Shift au démarrage, il n'y a pas d'option pour choisir 3.19 (bien que je puisse choisir n'importe lequel des autres). Après le démarrage, uname -r
confirme qu'il a démarré en 3.16:
$ uname -r
3.16.0-31-generic
La sortie recadrée d'un dpkg -l
, montrant que le noyau 3.19 est bien installé:
ii linux-headers-3.19.0-17 3.19.0-17.17 all Header files related to Linux kernel version 3.19.0
ii linux-headers-3.19.0-17-generic 3.19.0-17.17 AMD64 Linux kernel headers for version 3.19.0 on 64 bit x86 SMP
ii linux-headers-generic 3.19.0.17.16 AMD64 Generic Linux kernel headers
J'ai également essayé de purger/réinstaller grub et les en-têtes, et quelques autres choses qui n'ont eu aucune conséquence.
L'ancienne version de GRUB (0.9.7) utilisait probablement menu.lst
pour déterminer les éléments à afficher, tandis que la version plus récente de GRUB (GRUB 2) utilisait plutôt grub.cfg
. Il semble que vous ayez un certain mélange de GRUB et de GRUB 2 installés.
Utiliser update-grub
à partir du paquet grub
mettra à jour le fichier menu.lst
, ce qui ne fera rien si le chargeur de démarrage est GRUB 2, ce qui se passe ici. Au lieu de cela, vous devriez installer grub2-common
(ce qui devrait désinstaller le paquet grub
). Ensuite, lors de l'exécution de update-grub
(ou update-grub2
; les deux font la même chose), le fichier grub.cfg
est mis à jour à la place.
Réponse basée sur this réponse.