如何将内核更新到特定版本

unk*_*own 6 upgrade updates apt kernel 18.04

我想从不同服务器上的当前状态升级到特定内核版本(5.4.0-81-generic)。我想使用 apt 软件包管理器来更新内核。

Ubuntu 18.04.3 LTS  4.15.0-55-generic
Ubuntu 18.04 LTS    4.15.0-51-generic
Ubuntu 18.04 LTS    4.15.0-20-generic
Ubuntu 18.04 LTS    4.15.0-106-generic
Ubuntu 18.04 LTS    4.15.0-133-generic
Ubuntu 18.04 LTS    4.15.0-140-generic
Ubuntu 18.04 LTS    4.15.0-107-generic
Ubuntu 18.04.4 LTS  5.4.0-74-generic
Ubuntu 18.04.4 LTS  5.4.0-77-generic

ls /boot
config-4.15.0-76-generic  grub                          initrd.img-5.4.0-70-generic   System.map-5.4.0-70-generic  vmlinuz-5.4.0-70-generic
config-5.4.0-70-generic   initrd.img-4.15.0-76-generic  System.map-4.15.0-76-generic  vmlinuz-4.15.0-76-generic

uname -r
5.4.0-70-generic
Run Code Online (Sandbox Code Playgroud)

当尝试搜索内核版本时,我得到以下 2 张图像,选择使用哪一张。

apt-cache search linux-image | grep 5.4.0-81-generic
linux-image-5.4.0-81-generic - Signed kernel image generic
linux-image-unsigned-5.4.0-81-generic - Linux kernel image for version 5.4.0 on 64 bit x86 SMP
Run Code Online (Sandbox Code Playgroud)

现在,如何安全、优雅地仅更新内核版本 -

apt-get upgrade linux-image-5.4.0-81-generic
Run Code Online (Sandbox Code Playgroud)

N0r*_*ert 5

警告:如果您关心系统安全,执行以下操作是危险的。仅当您确定自己想要实现什么目标时才继续。

所以你必须删除元包(它通常取决于最新的内核,现在在这个HWE堆栈中是5.4.0-86)

sudo apt-get update
sudo apt-get remove linux-image-generic-hwe-18.04
sudo apt-get autoremove
Run Code Online (Sandbox Code Playgroud)

然后安装固定版本

sudo apt-get install linux-image-5.4.0-81-generic
Run Code Online (Sandbox Code Playgroud)

但请再次注意,最新的内核更安全,它可能修复了许多 CVE。检查变更日志以了解详细信息。

因此,要获取所有最新升级,您必须执行以下命令:

sudo apt-get update
sudo apt-get install --install-recommends linux-generic-hwe-18.04  
sudo apt-get dist-upgrade # to get all latest dependencies
Run Code Online (Sandbox Code Playgroud)

然后重新启动以使用包括内核在内的所有最新软件。


更多值得阅读的内容:

  • 您必须更仔细地了解 dpkg/APT 内部结构。请阅读相关文档。然后执行 apt-cache rdepends linux-image-5.4.0-70-generic 来了解它和 linux-image-generic-hwe-18.04 包之间的关系。恕我直言,在做奇怪的事情之前,你必须学习工具和系统。 (2认同)