Путаница с несколькими образами ядра Linux - Ubuntu загружается на старом ядре

Я использую Ubuntu 16.04. После запроса обновления программного обеспечения, который я удалил, при загрузке я открыл терминал и запустил свой псевдоним обновления:

alias maintain='set -x; sudo apt-get update && sudo apt-get upgrade && sudo apt autoremove && sudo apt autoclean; set +x'

Странно, ни один пакет не был обновлен, но я получил следующее сообщение:

The following packages have been kept back:

Было 3 пакета с именами linux, image, заголовки не помнят точных имен.

После проверки здесь я запускаю

sudo apt-get install [3 packages names here]

и пакеты устанавливаются без ошибок или предупреждений. Думая, что ядро ​​не может быть полностью обновлено во время работы, я также перезагрузил свой ноутбук. Желая проверить, завершено ли обновление, я запустил на своем терминале следующие команды [которые я нашел при проверке предыдущего предупреждения]:

$ uname -r
4.4.0-21-generic
$ dpkg -l | grep linux-image
ii  linux-image-4.4.0-21-generic 4.4.0-21.37 amd64 Linux kernel image for version 4.4.0 on 64 bit x86 SMP
ii  linux-image-4.4.0-22-generic 4.4.0-22.40 amd64 Linux kernel image for version 4.4.0 on 64 bit x86 SMP
ii  linux-image-4.4.0-24-generic 4.4.0-24.43 amd64 Linux kernel image for version 4.4.0 on 64 bit x86 SMP
ii  linux-image-extra-4.4.0-21-generic 4.4.0-21.37 amd64 Linux kernel extra modules for version 4.4.0 on 64 bit x86 SMP
ii  linux-image-extra-4.4.0-22-generic 4.4.0-22.40 amd64 Linux kernel extra modules for version 4.4.0 on 64 bit x86 SMP
ii  linux-image-extra-4.4.0-24-generic 4.4.0-24.43 amd64 Linux kernel extra modules for version 4.4.0 on 64 bit x86 SMP
ii  linux-image-generic 4.4.0.24.25 amd64 Generic Linux kernel image

Помимо того, что у меня три изображения вместо двух из ядра вопрос:

Почему у меня установлено несколько образов ядра? Так как мой псевдоним запускает autoremove / autoclean [и я перезагрузил компьютер еще раз и повторно запустил псевдоним с ошибкой], не следует ли их удалить? Также не следует ли после перезагрузки использовать Ubuntu последней версии ядра?

update1: ls / boot результаты:

$ ls /boot
abi-4.4.0-21-generic     config-4.4.0-22-generic      initrd.img-4.4.0-22-generic  memtest86+_multiboot.bin     vmlinuz-4.4.0-21-generic
abi-4.4.0-22-generic     config-4.4.0-24-generic      initrd.img-4.4.0-24-generic  System.map-4.4.0-21-generic  vmlinuz-4.4.0-22-generic
abi-4.4.0-24-generic     grub                         memtest86+.bin               System.map-4.4.0-22-generic  vmlinuz-4.4.0-24-generic
config-4.4.0-21-generic  initrd.img-4.4.0-21-generic  memtest86+.elf               System.map-4.4.0-24-generic

update2: после запуска sudo update-grub и перезагрузки я все еще получаю :

$ uname -r
4.4.0-21-generic

Я также помню, как обновлялся grub из вывода терминала при установке новых пакетов ядра.

update3: я попытался загрузить ядро ​​4.4.0-24 из дополнительных параметров загрузки grub2, а затем снова запустить sudo update-grub. Но после другой перезагрузки uname -r все еще показывает 4.4.0-21: (

update4: я думаю о других ракурсах, чтобы подойти к проблеме. Я рассмотрел ручную настройку grub для загрузки на новом ядре, но это Обходной путь не является исправлением, так как мне нужно было делать это снова каждый раз, когда я загружаю новое ядро. Во время этого я вспомнил, что я использовал grub-customizer, чтобы сделать некоторые незначительные изменения (потому что у меня двойная загрузка с win7). соответствующие записи из /boot/grub/grub.cfg, если люди могут определить, что не так и как это можно исправить. Это запись меню из ubuntu и 2 (из 9) записей подменю из расширенных параметров загрузки:

# # BEGIN /etc/grub.d/40_custom_proxy ###
menuentry "Ubuntu 16" --class ubuntu --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-simple-4e2b96c0-04a0-4750-bd14-479f684bf3be' {
recordfail
load_video
gfxmode $linux_gfx_mode
insmod gzio
if [ x$grub_platform = xxen ]; then insmod xzio; insmod lzopio; fi
insmod part_msdos
insmod ext2
set root='hd0,msdos5'
if [ x$feature_platform_search_hint = xy ]; then
  search --no-floppy --fs-uuid --set=root --hint-bios=hd0,msdos5 --hint-efi=hd0,msdos5 --hint-baremetal=ahci0,msdos5  4e2b96c0-04a0-4750-bd14-479f684bf3be
else
  search --no-floppy --fs-uuid --set=root 4e2b96c0-04a0-4750-bd14-479f684bf3be
fi
linux   /boot/vmlinuz-4.4.0-21-generic root=UUID=4e2b96c0-04a0-4750-bd14-479f684bf3be ro  quiet splash $vt_handoff
initrd  /boot/initrd.img-4.4.0-21-generic
}
# ## END /etc/grub.d/40_custom_proxy ###

menuentry "Ubuntu, with Linux 4.4.0-21-generic" --class ubuntu --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-4.4.0-21-generic-advanced-4e2b96c0-04a0-4750-bd14-479f684bf3be' {
    recordfail
    load_video
    gfxmode $linux_gfx_mode
    insmod gzio
    if [ x$grub_platform = xxen ]; then insmod xzio; insmod lzopio; fi
    insmod part_msdos
    insmod ext2
    set root='hd0,msdos5'
    if [ x$feature_platform_search_hint = xy ]; then
      search --no-floppy --fs-uuid --set=root --hint-bios=hd0,msdos5 --hint-efi=hd0,msdos5 --hint-baremetal=ahci0,msdos5  4e2b96c0-04a0-4750-bd14-479f684bf3be
    else
      search --no-floppy --fs-uuid --set=root 4e2b96c0-04a0-4750-bd14-479f684bf3be
    fi
    echo    'Loading Linux 4.4.0-21-generic ...'
    linux   /boot/vmlinuz-4.4.0-21-generic root=UUID=4e2b96c0-04a0-4750-bd14-479f684bf3be ro  quiet splash $vt_handoff
    echo    'Loading initial ramdisk ...'
    initrd  /boot/initrd.img-4.4.0-21-generic
}

menuentry "Ubuntu, with Linux 4.4.0-24-generic" --class ubuntu --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-4.4.0-24-generic-advanced-4e2b96c0-04a0-4750-bd14-479f684bf3be' {
    recordfail
    load_video
    gfxmode $linux_gfx_mode
    insmod gzio
    if [ x$grub_platform = xxen ]; then insmod xzio; insmod lzopio; fi
    insmod part_msdos
    insmod ext2
    set root='hd0,msdos5'
    if [ x$feature_platform_search_hint = xy ]; then
      search --no-floppy --fs-uuid --set=root --hint-bios=hd0,msdos5 --hint-efi=hd0,msdos5 --hint-baremetal=ahci0,msdos5  4e2b96c0-04a0-4750-bd14-479f684bf3be
    else
      search --no-floppy --fs-uuid --set=root 4e2b96c0-04a0-4750-bd14-479f684bf3be
    fi
    echo    'Loading Linux 4.4.0-24-generic ...'
    linux   /boot/vmlinuz-4.4.0-24-generic root=UUID=4e2b96c0-04a0-4750-bd14-479f684bf3be ro  quiet splash $vt_handoff
    echo    'Loading initial ramdisk ...'
    initrd  /boot/initrd.img-4.4.0-24-generic
}

Я не уверен, насколько это уместно - и этот файл, как предполагается, не будет изменен. Но я предполагаю, что, в чем бы ни была проблема, он может создать след в этом файле для идентификации. (Надеюсь.)

5
задан 14 April 2017 в 01:23

1 ответ

После оглядывания в/boot/grub/grub.cfg, задающемся вопросом, должен ли я изменить материал, я помнил, что использовал личинку-customiser, когда я настроил свою систему. Я открыл его для наблюдения то, что я найду там.

были удаленные записи и из Ubuntu и из Windows 7. Так или иначе удаленная запись Ubuntu имела ver 4.4.0-24 в, он - детали (возможно, автоматическая личинка обновления обновила его?). Я не уверен. Я удалил свою запись и восстановил ту как первую опцию. Теперь Ubuntu загружается в новейшем установленном ядре:

$ uname -r
4.4.0-24-generic

и я надеюсь, что все будет хорошо работать. (По крайней мере, до следующего обновления ядра.)

От некоторых записей в личинке-customizer я подозреваю, что, если запись маркирована как пользовательская, это не становится обновленным, когда более новое ядро установлено? Не уверенный.

Так или иначе, спасибо всем, кто прокомментировал и помог мне понять это. Возможно, не обошелся без Вас.

2
ответ дан 14 April 2017 в 01:23

Другие вопросы по тегам:

Похожие вопросы: