Debian升级内核

有时候服务器自带的内核版本比较低或者手痒想要升级到更高版本的内核,体验一下新的内核。这篇文章可以指导你如何正确地查询并安装新版内核。

以下方法同时也可用于未来或者以前的 Debian 版本,步骤一致,唯一不同点在于文中的 Debian 系统代号。

新增系统源

1
echo -e "deb http://http.debian.net/debian stretch-backports main\ndeb-src http://http.debian.net/debian stretch-backports main" | sudo tee /etc/apt/sources.list.d/sources.list

假如你的 Debian 版本号为 10,则把命令中的 stretch-backports 修改为 buster-backports

更新系统

1
apt update && apt dist-upgrade

安装新版内核

要安装新版内核,也就是 apt 源官方支持的内核版本,不是编译安装最新版内核,所以我们得先使用 apt search 查看当前支持的最新内核版本

1
apt search linux-image

接下来执行

1
apt install -t $(lsb_release -sc)-backports linux-image-$(dpkg --print-architecture) linux-headers-$(dpkg --print-architecture) --install-recommends -y

云服务器版可以执行以下命令安装专门为云平台提供的内核

1
apt install -t $(lsb_release -sc)-backports linux-image-cloud-$(dpkg --print-architecture) linux-headers-cloud-$(dpkg --print-architecture) --install-recommends -y

接下来更新配置并重启

1
2
update-grub
reboot

重启之后应该已经切换到了新版内核,输入 uname -r 查看当前内核版本

需要注意的点是 cloud 内核当前仅有64位架构的包。
为云平台提供的内核有什么特性可以看这篇文章news from debian cloud team

那么如何找到适合自己的设备呢?以下提供一些例子:

  • 64位普通设备,如你的笔记本或工作站: linux-image-amd64
  • 64位基于虚拟化的设备,如 AWS、Azure: linux-image-cloud-amd64

KVM 虚拟化的机器中,cloud 内核表现良好,已测试不支持 VMware 虚拟化,会找不到根文件系统。

后续清理(可选)

安装完成后清理一下以前的老旧版本内核

执行以下命令获取所有已安装内核版本

1
dpkg -l | grep linux

根据上一条命令的记录删除老旧版本的 linux-imagelinux-header

1
apt purge linux-image-xxx linux-header-xxx

至此,更新的工作已经完成。