Ubuntu 18.04 Linux内核升级

前言

原本使用Ubuntu Server 18.04.2 LTS来搭建一个NextCloud服务,给公司提供共享盘服务。在本地PVE环境下自己测试的时候,来尝试更新一下Linux的内核,折腾一下内核。网传的ubuntu更新内核的教程都有各种问题,例如我们这次会提到的,更新到4.17版本之后的内核,需要安装的软件包会多一个。这次自己来写一个教程记录一下。

  1. 为什么要更新Linux内核?
  2. 如何查看自己当前的版本?
  3. 更新到哪个内核比较合适?
  4. 正式更新的具体步骤

1. 为什么要更新Linux内核?

更新内核主要是为了获得一些新特性/新功能,例如对新的软硬件的支持。另一个理由就是新版本的内核比之老版本会修复过去的BUG,提供一个更加安全可靠的运行环境。
但是更新也有弊端,随着新特性/新功能的加入,可能会使得部分老旧软件依赖不支持的情况,也会使得运行也变得不稳定(新的漏洞新的BUG)。
至于到底更不更新?还是取决于需求的(盲目更新可能会引发工具链问题!)。这里我们喜欢折腾,那就更新一下试试!

2. 如何查看自己当前的版本?

在更新之前,我们肯定得知道我们现在到底是个什么内核版本?否则如何更新到哪都不清楚!
首先在终端中,输入以下命令后按下回车

uname -sr

可以发现Ubuntu 18.04 server 默认的内核是

Linux 4.15.0-55-generic

这个是已经是2018-02-01时候的一个内核了,比较稳定,当然也有些过时。(本文写的时候是2019-07-29 已经一年半时间过去了)

3. 更新到哪个内核比较合适?

我到底应该更新到哪个版本的内核呢?内核版本众多,哪个比较稳定可靠,哪些则具有创新先进呢?
让我们首先前往 https://www.kernel.org ,然后你会看到有不同版本的内核,例如stable(稳定板),mainline(主线版)等等。我该选择哪个呢?
简单说,选择这个网站上的黄色按钮上的版本即可,如图所示:

The Linux Kernel Archives

黄色按钮内所示的5.2.4,这是一个最新的Stable版本的Linux内核,说明它通过了稳定性的测试,并且解决了诸多重要BUG,可以拿来作为生产环境进行部署。
其实内核有四种,这里列举一下官网上的Releases发布页的介绍:

  • Prepatch(RC) 预发布

Prepatch or "RC" kernels are mainline kernel pre-releases that are mostly aimed at other kernel developers and Linux enthusiasts. They must be compiled from source and usually contain new features that must be tested before they can be put into a stable release. Prepatch kernels are maintained and released by Linus Torvalds.

预发布版内核是添加了新特性/功能的内核,但是这些功能仍然在测试阶段,还存在已知或潜在的BUG等待解决。这一版会不断进行打磨改善,形成了那些结尾有-rc的后缀版本。当Linus确定新的内核没有问题了,这个版本将会进入Stable发布阶段。

  • Mainline 主线版

Mainline tree is maintained by Linus Torvalds. It's the tree where all new features are introduced and where all the exciting new development happens. New mainline kernels are released every 2-3 months.

主线版是添加了所有激动人心的新型功能,新修复的补丁的版本,尽管这些新的东西不一定稳定甚至测试都不一定过得去。这是Linus Torvalds自己的Linux树,我们称这个git树的版本叫主线版,通常2~3个月发布一次。

  • Stable 稳定版

After each mainline kernel is released, it is considered "stable." Any bug fixes for a stable kernel are backported from the mainline tree and applied by a designated stable kernel maintainer. There are usually only a few bugfix kernel releases until next mainline kernel becomes available -- unless it is designated a "longterm maintenance kernel." Stable kernel updates are released on as-needed basis, usually once a week.

当一个主线版发布之后,它就被视为是一个稳定版了。任何对于稳定板的漏洞修补都是从主线版上面反向移植(backport)来的。通常到下一次主线版发布前,只有一些漏洞修补的内核会进行发布,除非这个版本的内核被设计成一个长期支持版内核。稳定版内核是按需进行发布的,通常每周一次。

  • Longterm 长期维护版

There are usually several "longterm maintenance" kernel releases provided for the purposes of backporting bugfixes for older kernel trees. Only important bugfixes are applied to such kernels and they don't usually see very frequent releases, especially for older trees.

长期支持版本通常有数个,这是为了对旧版内核的漏洞进行反向移植修补,只有一些重要的漏洞修补才会加入这些内核,它们不会经常更新,尤其是更旧版的内核。


各版本内核比较

四个版本的Linux Kernel,生产环境可以选择longterm或stable,实验环境都可以选择,根据实际情况以及需要。这里我们选的是stable,相对较新,且较稳定。
这里推荐大家阅读这篇 哪个 Linux 内核版本是 “稳定的”? | Linux 中国 其中的解释比较通俗易懂(这篇是翻译自国外一篇博文的)

4. 正式更新

接下来我们将会进行正式的更新,以更新到5.2.4为例
首先打开Ubuntu内核网站,下拉找到我们要的版本5.2.4,如图

多个版本的内核

然后点击这个进入页面,根据自己的硬件设备,选择不同的版本。这里我用的是PVE虚拟的intelskylake的cpu,是X86的芯片,那么就选这个amd64的版本。
具体硬件版本

我们需要的软件包共有四个,即两个header头文件,一个image镜像,一个modules模块:

  • linux-headers-5.2.4-050204_5.2.4-050204.201907280731_all.deb
  • linux-headers-5.2.4-050204-generic_5.2.4-050204.201907280731_amd64.deb
  • linux-image-unsigned-5.2.4-050204-generic_5.2.4-050204.201907280731_amd64.deb
  • linux-modules-5.2.4-050204-generic_5.2.4-050204.201907280731_amd64.deb

\color{red}{Warning}:在内核版本4.17之前(不含4.17)中是无modules文件的,所以你只需要3个软件包即两个header,一个image即可完成更新。且网上目前搜索到的内核更新教程通常都是适合4.17内核之前的,而我们更新到4.17之后版本,例如我们更新到5.2.4,在dkp步骤时候会提示缺少依赖项,没有modules文件!

随后,我们输入以下的四条命令,使用wget一个个下载对应的软件包:
输入一条命令后,按下回车,根据网络情况,等待几分钟即可,具体时间可查看输出的etc后的时间

wget https://kernel.ubuntu.com/~kernel-ppa/mainline/v5.2.4/linux-headers-5.2.4-050204_5.2.4-050204.201907280731_all.deb
wget https://kernel.ubuntu.com/~kernel-ppa/mainline/v5.2.4/linux-headers-5.2.4-050204-generic_5.2.4-050204.201907280731_amd64.deb
wget https://kernel.ubuntu.com/~kernel-ppa/mainline/v5.2.4/linux-image-unsigned-5.2.4-050204-generic_5.2.4-050204.201907280731_amd64.deb
wget https://kernel.ubuntu.com/~kernel-ppa/mainline/v5.2.4/linux-modules-5.2.4-050204-generic_5.2.4-050204.201907280731_amd64.deb

等待所有四个软件包都下载完成后,输入下述命令进行解压安装:

sudo dpkg -i *.deb

因为使用了sudo,所以会提示输入密码,我们输入密码,按下回车等待安装。

当提示成功安装后,输入以下命令进行重启

reboot

等待重启后登陆系统,然后输入

uname -sr

查看目前的系统

Linux 5.2.4-050204-generic

至此,更新内核就完成了!!!

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,793评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 87,567评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,342评论 0 338
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,825评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,814评论 5 368
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,680评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,033评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,687评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 42,175评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,668评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,775评论 1 332
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,419评论 4 321
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,020评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,978评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,206评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,092评论 2 351
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,510评论 2 343

推荐阅读更多精彩内容