Я использую 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
}
Я не уверен, насколько это уместно - и этот файл, как предполагается, не будет изменен. Но я предполагаю, что, в чем бы ни была проблема, он может создать след в этом файле для идентификации. (Надеюсь.)
После оглядывания в/boot/grub/grub.cfg, задающемся вопросом, должен ли я изменить материал, я помнил, что использовал личинку-customiser, когда я настроил свою систему. Я открыл его для наблюдения то, что я найду там.
были удаленные записи и из Ubuntu и из Windows 7. Так или иначе удаленная запись Ubuntu имела ver 4.4.0-24 в, он - детали (возможно, автоматическая личинка обновления обновила его?). Я не уверен. Я удалил свою запись и восстановил ту как первую опцию. Теперь Ubuntu загружается в новейшем установленном ядре:
$ uname -r
4.4.0-24-generic
и я надеюсь, что все будет хорошо работать. (По крайней мере, до следующего обновления ядра.)
От некоторых записей в личинке-customizer я подозреваю, что, если запись маркирована как пользовательская, это не становится обновленным, когда более новое ядро установлено? Не уверенный.
Так или иначе, спасибо всем, кто прокомментировал и помог мне понять это. Возможно, не обошелся без Вас.