0%

CentOS7 升级内核

Linux 内核官网: https://www.kernel.org/
Linux 内核各个版本的支持时间: https://www.kernel.org/category/releases.html

查看当前的内核版本

概述

Linux 只表示内核。各大 Linux 发行版(RedHat、Ubuntu、CentOS 等)在内核基础上集成了其他的一系列软件,按照各自的版本规则发布。

常用的查看内核信息的命令

uname

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
uname

打印指定的系统信息。不带参数时,默认使用 -s 参数。
参数:
-a, –all:按照下面的顺序打印所有信息,如果 -p 和 -i 未知时排除掉。
-s, –kernel-name:打印内核名字,一般就是 Linux。
-n, –nodename:打印网络节点的主机名。
-r, –kernel-release:打印内核发行版的版本。常用。3.10.0-514.26.2.el7.x86_64
-v, –kernel-version:打印内核的版本。#1 SMP Tue Jul 4 15:04:05 UTC 2017
-m, –machine:打印机器硬件名。
-p, –processor:打印处理器名字或“unknown”。
-i, –hardware-platform:打印硬件平台或“unknown”。
-o, –operating-system:打印操作系统。
–help:显示这个帮助并退出。
–version:显示这版本信息并退出。

proc 虚拟文件系统

内核空间和用户空间通过 /proc 虚拟文件系统可以通信。
/proc 目录中包含一些目录和虚拟文件,这些虚拟文件可以向用户呈现内核信息或者从用户空间向内核发送信息。
常用文件:

  • cpuinfo:标识了处理器的类型和速度

  • pci:显示在 PCI 总线上找到的设备

  • modules:当前加载到内核中的模块

  • version:系统版本及内核版本

1
2
[root@VM_20_6_centos ~]# cat /proc/version 
Linux version 4.4.158-1.el7.elrepo.x86_64 (mockbuild@Build64R7) (gcc version 4.8.5 20150623 (Red Hat 4.8.5-28) (GCC) ) #1 SMP Wed Sep 26 14:58:11 EDT 2018

升级内核

更新仓库

1
yum -y update

启用 ELRepo 仓库

ELRepo 仓库是基于社区的用于企业级 Linux 仓库,提供对 RedHat Enterprise (RHEL) 和 其他基于 RHEL的 Linux 发行版(CentOS、Scientific、Fedora 等)的支持。
ELRepo 聚焦于和硬件相关的软件包,包括文件系统驱动、显卡驱动、网络驱动、声卡驱动和摄像头驱动等。

启用 ELRepo 仓库:

1
2
rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org
rpm -Uvh http://www.elrepo.org/elrepo-release-7.0-3.el7.elrepo.noarch.rpm

查看可用的系统内核包

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

安装最新内核

1
yum --enablerepo=elrepo-kernel install kernel-lt

设置 grub2

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
# 查看系统上的所有可以内核
sudo awk -F\' '$1=="menuentry " {print i++ " : " $2}' /etc/grub2.cfg

# 设置 grub2
grub2-set-default 0 命令或编辑 /etc/default/grub

# vi /etc/default/grub
# 设置 GRUB_DEFAULT=0,表示使用上一步的 awk 命令显示的编号为 0 的内核作为默认内核
> GRUB_TIMEOUT=5
> GRUB_DISTRIBUTOR="$(sed 's, release .*$,,g' /etc/system-release)"
> GRUB_DEFAULT=0
> GRUB_DISABLE_SUBMENU=true
> GRUB_TERMINAL_OUTPUT="console"
> GRUB_CMDLINE_LINUX="crashkernel=auto console=ttyS0 console=tty0 panic=5"
> GRUB_DISABLE_RECOVERY="true"
> GRUB_TERMINAL="serial console"
> GRUB_TERMINAL_OUTPUT="serial console"
> GRUB_SERIAL_COMMAND="serial --speed=9600 --unit=0 --word=8 --parity=no --stop=1"

生成 grub 配置文件并重启

通过 gurb2-mkconfig 命令创建 grub2 的配置文件,然后重启

1
2
sudo grub2-mkconfig -o /boot/grub2/grub.cfg
sudo reboot

删除旧内核(可选)

1
2
3
4
5
6
7
rpm -qa | grep kernel

# 删除旧版本工具包
yum remove kernel-tools-libs.x86_64 kernel-tools.x86_64
# 安装新版本工具包
yum --disablerepo=\* --enablerepo=elrepo-kernel install -y kernel-ml-tools.x86_64