手头上的问题

手头上的问题

我没有足够的信心单独完成此操作,并冒着服务器无法启动或其他问题的风险。

我想从以下版本升级内核:

$ uname -r
4.9.0-6-amd64

$ uname -v
#1 SMP Debian 4.9.88-1+deb9u1 (2018-05-07)

到内核​​版本 4.15 或 4.16。无论你推荐哪个。


我只是想我知道如何列出可用版本:

$ apt-cache search linux-image | grep amd64

linux-headers-4.9.0-6-amd64 - Header files for Linux 4.9.0-6-amd64
linux-headers-4.9.0-6-rt-amd64 - Header files for Linux 4.9.0-6-rt-amd64
linux-image-4.9.0-6-amd64 - Linux 4.9 for 64-bit PCs
linux-image-4.9.0-6-amd64-dbg - Debug symbols for linux-image-4.9.0-6-amd64
linux-image-4.9.0-6-rt-amd64 - Linux 4.9 for 64-bit PCs, PREEMPT_RT
linux-image-4.9.0-6-rt-amd64-dbg - Debug symbols for linux-image-4.9.0-6-rt-amd64
linux-image-amd64 - Linux for 64-bit PCs (meta-package)
linux-image-amd64-dbg - Debugging symbols for Linux amd64 configuration (meta-package)
linux-image-rt-amd64 - Linux for 64-bit PCs (meta-package), PREEMPT_RT
linux-image-rt-amd64-dbg - Debugging symbols for Linux rt-amd64 configuration (meta-package)
linux-headers-4.9.0-3-amd64 - Header files for Linux 4.9.0-3-amd64
linux-headers-4.9.0-3-rt-amd64 - Header files for Linux 4.9.0-3-rt-amd64
linux-headers-4.9.0-4-amd64 - Header files for Linux 4.9.0-4-amd64
linux-headers-4.9.0-4-rt-amd64 - Header files for Linux 4.9.0-4-rt-amd64
linux-headers-4.9.0-5-amd64 - Header files for Linux 4.9.0-5-amd64
linux-headers-4.9.0-5-rt-amd64 - Header files for Linux 4.9.0-5-rt-amd64
linux-image-4.9.0-3-amd64 - Linux 4.9 for 64-bit PCs
linux-image-4.9.0-3-amd64-dbg - Debug symbols for linux-image-4.9.0-3-amd64
linux-image-4.9.0-3-rt-amd64 - Linux 4.9 for 64-bit PCs, PREEMPT_RT
linux-image-4.9.0-3-rt-amd64-dbg - Debug symbols for linux-image-4.9.0-3-rt-amd64
linux-image-4.9.0-4-amd64 - Linux 4.9 for 64-bit PCs
linux-image-4.9.0-4-amd64-dbg - Debug symbols for linux-image-4.9.0-4-amd64
linux-image-4.9.0-4-rt-amd64 - Linux 4.9 for 64-bit PCs, PREEMPT_RT
linux-image-4.9.0-4-rt-amd64-dbg - Debug symbols for linux-image-4.9.0-4-rt-amd64
linux-image-4.9.0-5-amd64 - Linux 4.9 for 64-bit PCs
linux-image-4.9.0-5-amd64-dbg - Debug symbols for linux-image-4.9.0-5-amd64
linux-image-4.9.0-5-rt-amd64 - Linux 4.9 for 64-bit PCs, PREEMPT_RT
linux-image-4.9.0-5-rt-amd64-dbg - Debug symbols for linux-image-4.9.0-5-rt-amd64
linux-headers-4.15.0-0.bpo.2-amd64 - Header files for Linux 4.15.0-0.bpo.2-amd64
linux-headers-4.15.0-0.bpo.2-cloud-amd64 - Header files for Linux 4.15.0-0.bpo.2-cloud-amd64
linux-headers-4.16.0-0.bpo.1-amd64 - Header files for Linux 4.16.0-0.bpo.1-amd64
linux-headers-4.16.0-0.bpo.1-cloud-amd64 - Header files for Linux 4.16.0-0.bpo.1-cloud-amd64
linux-image-4.15.0-0.bpo.2-amd64 - Linux 4.15 for 64-bit PCs
linux-image-4.15.0-0.bpo.2-amd64-dbg - Debug symbols for linux-image-4.15.0-0.bpo.2-amd64
linux-image-4.15.0-0.bpo.2-cloud-amd64 - Linux 4.15 for x86-64 cloud
linux-image-4.15.0-0.bpo.2-cloud-amd64-dbg - Debug symbols for linux-image-4.15.0-0.bpo.2-cloud-amd64
linux-image-4.16.0-0.bpo.1-amd64 - Linux 4.16 for 64-bit PCs
linux-image-4.16.0-0.bpo.1-amd64-dbg - Debug symbols for linux-image-4.16.0-0.bpo.1-amd64
linux-image-4.16.0-0.bpo.1-cloud-amd64 - Linux 4.16 for x86-64 cloud
linux-image-4.16.0-0.bpo.1-cloud-amd64-dbg - Debug symbols for linux-image-4.16.0-0.bpo.1-cloud-amd64
linux-headers-4.9.0-4-grsec-amd64 - Header files for Linux 4.9.0-4-grsec-amd64
linux-image-4.9.0-4-grsec-amd64 - Linux 4.9 for 64-bit PCs, Grsecurity protection (unofficial patch)
linux-image-grsec-amd64 - Linux image meta-package, grsec featureset
linux-image-cloud-amd64 - Linux for x86-64 cloud (meta-package)
linux-image-cloud-amd64-dbg - Debugging symbols for Linux cloud-amd64 configuration (meta-package)

我也需要标题。在 Ubuntu 上也有一个名为extra或 类似的包,所以我很困惑在这里没有看到它。


在 Debian 9 上手动安装新内核的正确方法是什么?

答案1

手头上的问题

您需要比 Debian 实例上安装的内核更新的 Linux 内核。存在一些风险对此。建议您避免偏离 Debian 提供的默认稳定 LTS 内核。但是,由于您的需要,您需要更新的内核。

解决方案

您可以添加向后移植存储库,使用 apt-pinning 来控制此处安装的内容,并安装必要的组件来升级内核。

我强烈推荐apt固定因为您可以添加备用存储库甚至第三方存储库并控制从中安装的内容。这使您可以安装和更新替代软件包和库,并与操作系统的主要组件一起更新它们,同样需要您自担风险。 Apt-pinning 允许对来自替代来源(即不稳定)的包进行精细控制,同时降低破损风险。如果您了解其中的风险,您就可以继续前进。

添加 Backports 存储库并设置 apt-preferences

第一步是将正确的存储库添加到您的sources.list.我建议您使用,/sources.list.d/但您可以在一个文件中执行此操作。

#Main Stable Repo
deb http://deb.debian.org stable main contrib non-free 
deb-src http://deb.debian.org stable main contrib non-free
#Stable-updates
deb http://deb.debian.org stable-updates main contrib non-free 
deb-src http://deb.debian.org stable-updates main contrib non-free 
#Security Updates 
deb http://deb.debian.org/debian-secruity stable/updates main contrib non-free
deb-src http://deb.debian.org/debian-secruity stable/updates main contrib non-free 
#Stretch Backports    
deb http://ftp.debian.org/debian stretch-backports main contrib non-free
deb-src http://ftp.debian.org/debian stretch-backports main contrib non-free

你的sources.list应该看起来像这样。如果您不需要非自由软件,则不需要非自由部分。接下来,您需要使用 为包指定引脚优先级/etc/apt/preferences。该文件应如下所示:

Package: *
Pin: release a=debian-security
Pin-Priority: 1000

Package: *
Pin: release a=stable
Pin-Priority: 900

Package: *
Pin: release a=stable-updates
Pin-Priority: 800

Package: *
Pin: release a=stretch-backports
Pin-Priority: 700

您可以在方法中更精细地指定各个软件包,并为引脚优先级分配更高或更低的值。

之后你就跑了apt-get update

安装所需的内核

使用apt-cache search linux-imageyou 将列出所有可用的内核。当您确定了所需的内核后,您可以使用 来安装它apt-get install linux-image-flavour。建议您也安装匹配的Linux头包。如果您的环境中需要 grsec 映像,请安装该映像。再次使用适当的标头包。

重新启动后,您将能够在 GRUB 菜单中选择要启动的内核。如果遇到问题,您始终可以选择已知良好的内核,然后使用该内核进行引导。

结论

我已经使用 apt-pinning 成功管理了我个人计算机的 Debian 安装。我使用上述方法安装了当时最新的内核(4.15),并且我的系统一直运行良好。不过,请对此持保留态度,因为它是一台个人计算机,而不是我认为您希望安装它的生产服务器。我还提供了我引用的所有来源的链接。我用过这个Debian 维基页面告知必要的步骤以及页面apt固定。这文章也被引用了。

如果您对这篇文章有任何疑问或疑虑,请随时询问我。如果此答案有任何更正或误解,请通知我。我可以根据需要更新帖子。

祝你好运!

答案2

如果您想安装较新的 Debian 打包内核,您应该使用向后移植存储库中的内核。您似乎已将该存储库添加到您的apt配置中,因此一切都已准备就绪。

由于您当前的内核是基本的 amd64 版本,我假设您不需要实时调度程序版本,也不需要云版本。

赶紧跑

apt-get install linux-image-4.16.0-0.bpo.1-amd64 linux-headers-4.16.0-0.bpo.1-amd64

即“安装为 Debian 9 向后移植的 4.16 内核的基本 -amd64 版本,以及相应的头文件包”。

与常规软件包不同,新版本linux-image软件包不会完全取代现有的 4.9.0 内核,而是会与其一起安装。 (这是因为版本号包含在软件包名称中。)引导加载程序将在linux-image安装后自动配置,以基于版本号的顺序显示可用内核,或者如果某些引导加载程序无法做到这一点,只需自动将最近安装的一个设置为首选即可。

如果发现你的新内核无法启动,你可以从引导加载程序中选择以前的内核,然后删除被证明不起作用的内核包。如果您不小心告诉包管理器删除当前正在运行的内核,它会足够聪明地知道这不是一件好事,并且会中止该操作。

答案3

要安装 linux-image 及其头文件包,请使用以下命令:

apt install linux-{image,headers}-4.16.0-0.bpo.1-amd64

运行上述命令后,需要从向后移植安装一些依赖项,可以通过以下方式安装:

apt install -t stretch-backports pckg_name

相关内容