CentOS7.5更新系统内核

1.更新例子

通过elrepo源升级内核
官网:http://elrepo.org/tiki/tiki-index.php

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
# 安装源
[root@vm50 ~]# rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org
[root@vm50 ~]# rpm -Uvh https://www.elrepo.org/elrepo-release-7.0-3.el7.elrepo.noarch.rpm
# 查看可用内核包
[root@vm50 ~]# yum --disablerepo="*" --enablerepo="elrepo-kernel" list available
......
kernel-lt.x86_64 4.4.163-1.el7.elrepo elrepo-kernel
kernel-lt-devel.x86_64 4.4.163-1.el7.elrepo elrepo-kernel
kernel-lt-doc.noarch 4.4.163-1.el7.elrepo elrepo-kernel
kernel-lt-headers.x86_64 4.4.163-1.el7.elrepo elrepo-kernel
kernel-lt-tools.x86_64 4.4.163-1.el7.elrepo elrepo-kernel
kernel-lt-tools-libs.x86_64 4.4.163-1.el7.elrepo elrepo-kernel
kernel-lt-tools-libs-devel.x86_64 4.4.163-1.el7.elrepo elrepo-kernel
kernel-ml.x86_64 4.19.2-1.el7.elrepo elrepo-kernel
kernel-ml-devel.x86_64 4.19.2-1.el7.elrepo elrepo-kernel
kernel-ml-doc.noarch 4.19.2-1.el7.elrepo elrepo-kernel
kernel-ml-headers.x86_64 4.19.2-1.el7.elrepo elrepo-kernel
kernel-ml-tools.x86_64 4.19.2-1.el7.elrepo elrepo-kernel
kernel-ml-tools-libs.x86_64 4.19.2-1.el7.elrepo elrepo-kernel
kernel-ml-tools-libs-devel.x86_64 4.19.2-1.el7.elrepo elrepo-kernel
perf.x86_64 4.19.2-1.el7.elrepo elrepo-kernel
python-perf.x86_64 4.19.2-1.el7.elrepo elrepo-kernel
# kernel-ml.x86_64 4.19.2-1.el7.elrepo elrepo-kernel 是ml stands for mainline stable 主线稳定版本。就安装它了。
[root@vm50 ~]# yum --enablerepo=elrepo-kernel install kernel-ml
# 重启,并在过程中启动菜单列表,选择新安装的内核,进行启动
[root@vm50 ~]# uname -sr
Linux 4.19.2-1.el7.elrepo.x86_64
[root@vm50 ~]#

# 修改grub,使用第一个内核作为默认启动。
[root@vm50 ~]# sed -i "s/GRUB_DEFAULT=saved/GRUB_DEFAULT=0/g" /etc/default/grub
# 重新生成grub配置
[root@vm50 ~]# grub2-mkconfig -o /boot/grub2/grub.cfg
或者:grub2-set-default 0

# 重启系统,验证内核版本:
[root@vm50 ~]# uname -sr
Linux 4.19.2-1.el7.elrepo.x86_64
[root@vm50 ~]#
# 升级完成。

2.脚本更新

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
#!/usr/bin/env bash

# 日志函数
function log()
{
local _level=$1
shift
local _msg=$*
local _ts=$(date +"%F %T")
case $_level in
info) echo -e "$_ts [INFO] $_msg";;
notice) echo -e "$_ts [NOTE] \033[92m$_msg\033[0m";;
warn) echo -e "$_ts [WARN] \033[93m$_msg\033[0m";;
error) echo -e "$_ts [ERROR] \033[91m$_msg\033[0m";;
esac
}

function up_kernel() {
log notice "添加yum源..."
rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org
rpm -Uvh https://www.elrepo.org/elrepo-release-7.0-3.el7.elrepo.noarch.rpm
log notice "列出可用内核..."
yum --disablerepo="*" --enablerepo="elrepo-kernel" list available
log notice "安装最新稳定版内核..."
yum --enablerepo=elrepo-kernel install kernel-ml -y
log notice "设置使用新内核启动"
grub2-set-default 0
}

up_kernel

重启系统生效。

文章目录
  1. 1.更新例子
  2. 2.脚本更新