CentOS7.x内核升级方法

本文介绍了如何解决CentOS7.x内核存在的问题,通过两种方法升级内核至4.4.x以上版本。方法一涉及从源码编译安装,包括下载源码、安装依赖、配置、编译和安装步骤;方法二是通过下载内核升级包直接安装。升级后,需修改GRUB默认启动项并重启系统以应用新内核。
摘要由CSDN通过智能技术生成

CentOS内核升级方法

根据实验记录,不同环境会有差异,但基本过程方法类似。
CentOS 7.x 系统自带的 3.10.x 内核存在一些 Bugs,导致运行的 Docker、Kubernetes 不稳定,例如:

  • 高版本的 docker(1.13 以后) 启用了 3.10 kernel 实验支持的 kernel memory account 功能(无法关闭),当节点压力大,如频繁启动和停止容器时会导致 cgroup memory leak。
  • 网络设备引用计数泄漏,会导致类似于报错:“kernel:unregister_netdevice: waiting for eth0 to become free. Usage count = 1”。

一、升级内核到 4.4.X 以上

查看当前内核:

[root@vms33 kernel]# uname -sr
Linux 3.10.0-693.el7.x86_64
[root@vms33 ~]# ls -l  /boot/config*
-rw-r--r--. 1 root root 140894 8月  23 2017 /boot/config-3.10.0-693.el7.x86_64
[root@vms33 ~]# awk -F\' '$1=="menuentry " {print i++ " : " $2}' /etc/grub2.cfg
0 : CentOS Linux (3.10.0-693.el7.x86_64) 7 (Core)
1 : CentOS Linux (0-rescue-2d7c33c76c954ad28141d7ce515d455a) 7 (Core)

方法一:使用官网源码包编译安装

==此方法时间较长,但可以按指定版本升级。==这里升级到长期维护稳定版本longterm:5.4.77

[root@vms33 ~]# xz -d linux-5.4.77.tar.xz
[root@vms33 ~]# tar -xf linux-5.4.77.tar
[root@vms33 ~]# yum install gcc make ncurses-devel openssl-devel flex bison  elfutils-libelf-devel -y
...
[root@vms33 ~]# yum upgrade -y
...
[root@vms33 ~]# ls -l  /boot/config*
-rw-r--r--  1 root root 153595 10月 21 00:57 /boot/config-3.10.0-1160.2.2.el7.x86_64
-rw-r--r--. 1 root root 140894 8月  23 2017 /boot/config-3.10.0-693.el7.x86_64
[root@vms33 ~]# cd linux-5.4.77/
[root@vms33 linux-5.4.77]# cp /boot/config-3.10.0-693.el7.x86_64 .config
[root@vms33 linux-5.4.77]# make menuconfig
  • 选项采用默认,选择Save,选择Ok即可,最后Exit退出。
    在这里插入图片描述
  • 编译,完毕后, echo $?查看下,看看是否正常,如返回0,重启机器,如别的数字,根据报错更正即可。
[root@vms33 linux-5.4.77]# make -j `nproc` && make modules_install && make install
...
[root@vms33 linux-5.4.77]# echo $?
0

方法二:下载内核升级包进行安装

此方法升级快、简单,只能按已有的内核升级包进行升级。

~]# wget https://mirror.rc.usf.edu/elrepo/kernel/el7/x86_64/RPMS/kernel-ml-5.9.8-1.el7.elrepo.x86_64.rpm  --no-check-certificate
~]# wget https://mirror.rc.usf.edu/elrepo/kernel/el7/x86_64/RPMS/kernel-ml-devel-5.9.8-1.el7.elrepo.x86_64.rpm  --no-check-certificate
~]# yum -y install kernel-ml-5.9.8-1.el7.elrepo.x86_64.rpm && yum -y install kernel-ml-devel-5.9.8-1.el7.elrepo.x86_64.rpm

二、修改grub中默认的内核版本,重启系统,并查看内核

操作命令:

~]# grub2-set-default 0
~]# reboot
~]# uname -sr

针对编译升级

[root@vms33 ~]# awk -F\' '$1=="menuentry " {print i++ " : " $2}' /etc/grub2.cfg
0 : CentOS Linux (5.4.77) 7 (Core)
1 : CentOS Linux 7 Rescue 52ddad69761d4cdeb2be190717e0c395 (3.10.0-1160.2.2.el7.x86_64)
2 : CentOS Linux (3.10.0-1160.2.2.el7.x86_64) 7 (Core)
3 : CentOS Linux (3.10.0-693.el7.x86_64) 7 (Core)
4 : CentOS Linux (0-rescue-2d7c33c76c954ad28141d7ce515d455a) 7 (Core)
[root@vms33 ~]# grub2-set-default 0
...
[root@vms33 ~]# uname -sr
Linux 5.4.77

针对升级包安装

[root@vms32 ~]# uname -sr
Linux 3.10.0-693.el7.x86_64
[root@vms32 ~]# awk -F\' '$1=="menuentry " {print i++ " : " $2}' /etc/grub2.cfg
0 : CentOS Linux 7 Rescue 74b76b31501d48fd8c66ab518d23a0bf (5.9.8-1.el7.elrepo.x86_64)
1 : CentOS Linux (5.9.8-1.el7.elrepo.x86_64) 7 (Core)
2 : CentOS Linux (3.10.0-693.el7.x86_64) 7 (Core)
3 : CentOS Linux (0-rescue-2d7c33c76c954ad28141d7ce515d455a) 7 (Core)
[root@vms32 ~]# grub2-set-default 0
[root@vms32 ~]# reboot
...
[root@vms32 ~]# uname -sr
Linux 5.9.8-1.el7.elrepo.x86_64

–210214 广州–

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值