После обновления до 15.04 мне нужно иметь заголовки ядра, соответствующие запущенному ядру (для другого пакета).
При обновлении установлено ядро 3.19.0-17. На всякий случай я тоже установил linux-headers-generic
. Затем я запустил sudo update-grub
и перезагрузился. Тем не менее, система загрузилась в ядро 3.16.0-31 (что подтверждается uname -r
).
После долгих раскопок я обнаружил, что GrUB распознает ядро 3.19 в update-grub
и даже заполняет его в /boot/grub/menu.lst
. Однако при запуске GrUB распознает только ядро 3.16 в меню загрузки . Как мне это исправить, чтобы GrUB мог загружаться в 3.19?
Вот некоторые выводы из моей текущей системы.
sudo update-grub
всегда производит следующий вывод:
$ 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
Открытие /boot/grub/menu.lst
после запуска update-grub
, самый первый вариант:
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
Но, удерживая < kbd> Shift kbd> во время загрузки, нет возможности выбрать 3.19 (хотя я могу выбрать любой другой). После запуска uname -r
подтверждает, что он загрузился в 3.16:
$ uname -r
3.16.0-31-generic
Вывод обрезан из dpkg -l
, показывая, что ядро 3.19 действительно установлено:
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
Я также попытался очистить / переустановить grub и заголовки и некоторые другие вещи, которые не имели никакого значения.
Более старая версия GRUB (0.9.7) вероятный используемый menu.lst
определить, что отобразиться, в то время как более новая версия GRUB (GRUB 2) использование grub.cfg
вместо этого. Похоже, что у Вас есть некоторое соединение GRUB и установленного GRUB 2.
Используя update-grub
от grub
пакет обновит menu.lst
файл, который ничего эффективно не сделает, если загрузчик будет GRUB 2, который является тем, что происходит здесь. Вместо этого необходимо установить grub2-common
(который должен удалить grub
пакет). Затем при выполнении update-grub
(или update-grub2
; оба делают то же самое), grub.cfg
файл обновляется вместо этого.
Ответ на основе этого ответа.