Ubuntu系统怎么升级到最新内核

前言
本文主要如何安全地升级Ubuntu内核,以18.04 Server版为例纂写本教程 。
我们先来了解一下什么是主线内核构建(Mainline Kernel Build)
Mainline Kernel Build是一个从kernel.org开发的一个vanilla内核,作为deb包打包 。Canonical Kernel Team构建和定制Ubuntu的内核源代码,并将其构建为.deb包,以便于apt包管理器进行安装 。只有在需要最新的内核功能的情况下才能使用Mainline内核,因为与Ubuntu一起运行的生产内核可能不太稳定 。
我们可以从 Canonical Kernel Team Mainline Kernel Build官方网站查找需要的内核:
https://kernel.ubuntu.com/~kernel-ppa/mainline/
确认升级目标版本

Ubuntu系统怎么升级到最新内核

文章插图
 
确认升级目标版本
可以看出,目前Ubuntu最新的mainline内核版本为4.20.5和v5.0-rc2 。确定升级内核的步聚
  1. 把当前系统所有软件包和内核升级到最新
  2. 检查当前内核版本
  3. 下载并安装新内核版本
  4. 删除旧内核
把当前系统所有软件包和内核升级到最新
zcwyou@ubuntu1804:~$ sudo apt update已下载 61.7 MB,耗时 1分 13秒 (842 kB/s)
正在读取软件包列表… 完成
正在分析软件包的依赖关系树
正在读取状态信息… 完成
有 29 个软件包可以升级 。请执行 ‘apt list --upgradable’ 来查看它们 。
查询系统更新包
Ubuntu系统怎么升级到最新内核

文章插图
 
查询系统更新包
可以看出,有29个软件包需要升级 。
查看哪些软件包需要升级,这个步聚非必要:
zcwyou@ubuntu1804:~$ sudo apt list --upgradable开始升级系统所有的软件包,类似于windows系统更新 。
zcwyou@ubuntu1804:~$ sudo apt upgrade -y[sudo] password for zcwyou:
Reading package lists… Done
Building dependency tree
Reading state information… Done
Calculating upgrade… Done
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
1 not fully installed or removed.
After this operation, 0 B of additional disk space will be used.
Setting up Docker-ce (5:18.09.1~3-0~ubuntu-bionic) …
update-alternatives: warning: forcing reinstallation of alternative /usr/bin/dockerd-ce because link group dockerd is broken
Ubuntu系统怎么升级到最新内核

文章插图
 
系统更新
Ubuntu系统怎么升级到最新内核

文章插图
 
正在显示系统更新过程
重启服务器,既然已经决定要升级内核了,服务器应该可以重启吧?
zcwyou@ubuntu1804:~$ sudo reboot重新登录系统,再次检查可升级包,并使用以下命令 。
zcwyou@ubuntu1804:~$ sudo apt list --upgradeable如果执行命令的结果为:Listing... Done,就说明系统组件已经是最新的,没有需要更新的软件 。
检查当前内核版本
zcwyou@ubuntu1804:~$ uname -r4.15.0-43-generic
可以看出当前的内核版本为4.15.0-43-generic
下载并安装最新的内核
正如上文所说的,主线内核的官方地址为https://kernel.ubuntu.com/~kernel-ppa/mainline/
我们的目标是安装最新稳定的版本v4.20.5,它对应的下载页面是:
https://kernel.ubuntu.com/~kernel-ppa/mainline/v4.20.5/
下载最新内核文件
Ubuntu系统怎么升级到最新内核

文章插图
 
下载最新内核文件
选择我们服务器的架构,我们的服务器一般使用AMD64架构吧?注意,由于64位架构是AMD先推出的,所以Intel 64位处理器也被称为AMD64架构 。所以这里并不仅仅是指因特尔的64位CPU 。
generic表示通用版内核 。
lowlatency表示低延迟内核 。
我们一般选择通用版内核
先安装下载工具wget
zcwyou@ubuntu1804:~$ sudo apt install -y wget创建专用目录
zcwyou@ubuntu1804:~$ cd ~ && mkdir newkernel && cd newkernel我们应该使用wget分别下载4个generic版本的内核文件:
wget https://kernel.ubuntu.com/~kernel-ppa/mainline/v4.20.5/linux-headers-4.20.5-042005_4.20.5-042005.201901260434_all.debwget https://kernel.ubuntu.com/~kernel-ppa/mainline/v4.20.5/linux-headers-4.20.5-042005-generic_4.20.5-042005.201901260434_amd64.debwget https://kernel.ubuntu.com/~kernel-ppa/mainline/v4.20.5/linux-image-unsigned-4.20.5-042005-generic_4.20.5-042005.201901260434_amd64.debwget https://kernel.ubuntu.com/~kernel-ppa/mainline/v4.20.5/linux-modules-4.20.5-042005-generic_4.20.5-042005.201901260434_amd64.deb


推荐阅读