linux 全系列之一 ——《升级内核》

1 操作系统的内核与发行版

  首先简单解释一下操作系统的内核和发行版。

  内核是管理 CPU、内存、磁盘、进程、中断、文件系统和网络协议栈的程序。

  用户对内核感知度不高,因为用户只需要应用程序。比如某人迷恋日本电影,ta 并不在乎内核,ta 需要的只是一个播放器,这怎么办呢?于是就有好事者在内核之外预安装了一个播放器给 ta 使用,随着类似的需求不断增多,预安装的程序也越来越多,逐渐就发展成了内核和应用程序集的”结合体”,这个”结合体”我们就称之为操作系统的发行版,比如我们耳熟能详的 Red Hat、CentOS、Ubuntu 都属于操作系统的发行版。

  本节我们将讨论如何升级 linux 内核,常见内核升级方式有如下三种,读者可根据喜好自由选择:

  • 在线升级
  • 离线升级
  • 定制升级

2 查看内核版本

  使用如下命令查看当前内核版本:

# uname -r

  命令执行结果如下所示:

[root@localhost ~]# uname -r
3.10.0-327.el7.x86_64

3 在线升级

  使用 yum 在线升级是最安全的升级方式,因为使用该方式升级的版本是经过厂商验证过的版本,虽然它并不是最新的,但却是最稳定的。

# yum install -y kernel

4 手动升级

  手动升级是一件比较刺激的事情,升级前需要到 linux 内核网站 下载指定版本的内核包:

4.1 下载安装包

  手动升级采用 4.x 版本,下载网址请点击

4.2 解压缩安装包

# tar -zxvf linux-4.14.tar.gz

4.3 编译安装步骤

  编译安装步骤如下,只需一步一步执行即可。

# yum install -y gcc bc openssl-devel perl 
# make mrproper  # 删除编译生成的文件,包括内核配置文件和各种配置文件,一般只在第一次执行内核编译前才使用此命令
# make oldconfig # 使用原有的内核配置。执行过程中需要交互,一路回车即可
# make 		 # 编译源码。所有执行操作中最耗时的部分。你可以睡个午觉
# make modules_install	# 将编译出的内核模块复制到 /lib/modules
# make install		# make是编译;make install 安装到指定位置(/boot)

4.4 重启

  编译安装后重启系统,发现 4.14 版本已经成功安装,如下图所示:


5 定制升级

  上面在线升级方式升级的版本一般较老,如果既想在线安装,又想指定版本,可采用定制升级。

5.1 安装 elrepo yum 源

  elrepo 是 CentOS 稳定的软件源,可以通过它将内核升级到指定版本,elrepo 网址请点击

# yum install -y https://www.elrepo.org/elrepo-release-7.0-4.el7.elrepo.noarch.rpm

5.2 查看内核版本列表

# yum --disablerepo="*" --enablerepo="elrepo-kernel" list available

5.3 升级内核

  elrepo 源有ml、lt两种内核。ml(mainline)为最新版本的内核,lt为长期支持的内核,我们选择 ml。

# yum --enablerepo=elrepo-kernel -y install kernel-ml

5.4 修改内核启动顺序

  修改 /etc/default/grub 文件,将 GRUB_DEFAULT 值改为 0:

  编辑完后,执行如下命令让配置生效:

# grub2-mkconfig -o /boot/grub2/grub.cfg

5.5 重启系统

  执行 reboot 命令完成定制升级。

# reboot