0%

centos7 升级内核

引子

centos7 默认内核是 3.10.0 有点老,升级下

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

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:显示这版本信息并退出。

示例:

1
2
3
4
5
6
# uname -r
3.10.0-957.27.2.el7.x86_64
# uname -a
Linux localhost.localdomain 3.10.0-957.27.2.el7.x86_64 #1 SMP Mon Jul 29 17:46:05 UTC 2019 x86_64 x86_64 x86_64 GNU/Linux
# cat /etc/redhat-release
CentOS Linux release 7.6.1810 (Core)

更新内核

1
yum -y update

安装elrepo的yum源

升级内核需要使用elrepo的yum源,在安装yum源之前还需要我们导入elrepo的key,如下:

1
2
3
rpm –import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org

rpm -Uvh http://www.elrepo.org/elrepo-release-7.0-2.el7.elrepo.noarch.rpm

elrepo的key安装完毕后,我们下面开始正式升级内核。

查看可用的系统内核包:

1
yum --disablerepo="*" --enablerepo="elrepo-kernel" list available
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
# yum --disablerepo="*" --enablerepo="elrepo-kernel" list available
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
* elrepo-kernel: hkg.mirror.rackspace.com
Available Packages
kernel-lt.x86_64 4.4.190-1.el7.elrepo elrepo-kernel
kernel-lt-devel.x86_64 4.4.190-1.el7.elrepo elrepo-kernel
kernel-lt-doc.noarch 4.4.190-1.el7.elrepo elrepo-kernel
kernel-lt-headers.x86_64 4.4.190-1.el7.elrepo elrepo-kernel
kernel-lt-tools.x86_64 4.4.190-1.el7.elrepo elrepo-kernel
kernel-lt-tools-libs.x86_64 4.4.190-1.el7.elrepo elrepo-kernel
kernel-lt-tools-libs-devel.x86_64 4.4.190-1.el7.elrepo elrepo-kernel
kernel-ml-devel.x86_64 5.2.10-1.el7.elrepo elrepo-kernel
kernel-ml-doc.noarch 5.2.10-1.el7.elrepo elrepo-kernel
kernel-ml-headers.x86_64 5.2.10-1.el7.elrepo elrepo-kernel
kernel-ml-tools.x86_64 5.2.10-1.el7.elrepo elrepo-kernel
kernel-ml-tools-libs.x86_64 5.2.10-1.el7.elrepo elrepo-kernel
kernel-ml-tools-libs-devel.x86_64 5.2.10-1.el7.elrepo elrepo-kernel
perf.x86_64 5.2.10-1.el7.elrepo elrepo-kernel
python-perf.x86_64 5.2.10-1.el7.elrepo elrepo-kernel

通过上图,我们可以很明显的看出目前最新的内核版本为5.2.10。可用的版本为 4.4 ,5.2

升级内核

安装最新的主线稳定内核,使用如下命令:

1
yum -y –enablerepo=elrepo-kernel install kernel-ml

centos7内核升级完毕后,不会立即生效,还需要我们修改grub默认的内核版本。

修改grub默认的内核版本

centos7内核升级完毕后,还需要我们修改内核的启动顺序,使用如下命令:

查看系统上的所有可以内核:

1
2
3
4
# sudo awk -F\' '$1=="menuentry " {print i++ " : " $2}' /etc/grub2.cfg
0 : CentOS Linux (5.2.10-1.el7.elrepo.x86_64) 7 (Core)
1 : CentOS Linux (3.10.0-957.27.2.el7.x86_64) 7 (Core)
2 : CentOS Linux (0-rescue-ba4b6c04d1c84a009510755e7d3aa0cd) 7 (Core)

设置grub2

1. 通过 grub2-set-default 0 命令设置:

1
sudo grub2-set-default 0

2. 编辑 /etc/default/grub 文件

1
2
3
4
vim /etc/default/grub

GRUB_DEFAULT=0

生成 grub 配置文件并重启

接下来还需要运行grub2-mkconfig 命令来重新创建内核配置,如下:

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

重启系统并查看系统内核

系统启动完毕后,我们来查看内核版本,如下:

1
2
# uname -r
5.2.10-1.el7.elrepo.x86_64

欢迎关注我的其它发布渠道