Kar*_*sus 5 updates apt kernel 16.04
我正在运行 Ubuntu 16.04。在软件更新提示后,我放弃了,当我启动时,我打开了一个终端并运行我的更新别名:
alias maintain='set -x; sudo apt-get update && sudo apt-get upgrade && sudo apt autoremove && sudo apt autoclean; set +x'
Run Code Online (Sandbox Code Playgroud)
奇怪的是没有升级包,但我确实收到以下消息:
The following packages have been kept back:
Run Code Online (Sandbox Code Playgroud)
有 3 个包名称为 linux,image,headers 不记得确切名称。
在这里检查后我跑了
sudo apt-get install [3 packages names here]
Run Code Online (Sandbox Code Playgroud)
并且安装的软件包没有错误或警告。考虑到内核在运行时无法完全更新,我也重新启动了我的笔记本电脑。想要检查更新是否已完成,我在终端上运行以下命令 [我在检查上一个警告时在此处找到]:
$ 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
Run Code Online (Sandbox Code Playgroud)
除了我有来自内核的三个而不是两个图像的事实之外,问题是:
为什么我安装了多个内核映像?由于我的别名运行 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
Run Code Online (Sandbox Code Playgroud)
update2:运行sudo update-grub并重新启动后,我仍然得到:
$ uname -r
4.4.0-21-generic
Run Code Online (Sandbox Code Playgroud)
我还记得在安装新内核包时看到 grub 从终端输出中更新。
update3:我尝试从 grub2 高级引导选项引导到内核 4.4.0-24,然后sudo update-grub再次运行。但是再次重启后uname -r仍然显示 4.4.0-21 :(
更新4:我正在考虑其他角度来解决这个问题。我考虑过手动设置 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
}
Run Code Online (Sandbox Code Playgroud)
我不确定这有多相关 - 并且该文件不应该被更改。但我猜无论问题是什么,它都可以在要识别的文件中创建一个足迹。(希望。)
在查看 /boot/grub/grub.cfg 后,想知道是否应该更改一些内容,我记得在设置系统时我使用了 grub-customiser。我打开它,看看会在那里找到什么。
Ubuntu 和 Windows 7 中都删除了条目。不知何故,删除的 Ubuntu 条目的详细信息为版本 4.4.0-24(也许 update-grub 自动更新了它?)。我不知道。我删除了我的条目并将其恢复为第一个选项。现在 Ubuntu 会加载最新安装的内核:
$ uname -r
4.4.0-24-generic
Run Code Online (Sandbox Code Playgroud)
我希望一切顺利。(至少到下一次内核更新为止。)
从 grub-customizer 中的一些条目中,我怀疑如果一个条目被标记为自定义,那么在安装较新的内核时它不会得到更新?没有把握。
无论如何,感谢所有评论并帮助我解决问题的人。没有你就不可能完成。
| 归档时间: |
|
| 查看次数: |
3156 次 |
| 最近记录: |