驽马十驾 驽马十驾

驽马十驾,功在不舍

目录
CentOS7 升级内核到指定版本
/    

CentOS7 升级内核到指定版本

开篇

部分组件需要,所以需要升级内核,这里总结下步骤,虚拟机测试了5台,没有发现问题。

最新内核

CentOS7 自带的内核是非常老的3.10,这里某些功能需要新的内核支持,所以记录下升级内核的方法

# 导入公钥
rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org
# 安装ELRepo
yum install -y https://www.elrepo.org/elrepo-release-7.el7.elrepo.noarch.rpm

然后可以查看下当前最新的lt长期支持版,和最新的ml主要分支,生产线当然是推荐lt

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

# 查看内核版本?
yum --enablerepo=elrepo-kernel  list  |grep kernel*

然后就可以安装

# 安装LongTerm内核
yum --disablerepo=\* --enablerepo=elrepo-kernel install  kernel-lt.x86_64  -y
# 安装最新内核
yum --disablerepo=\* --enablerepo=elrepo-kernel install  kernel-ml.x86_64  -y
# 如果有需要安装工具也可以dev
yum --disablerepo=\* --enablerepo=elrepo-kernel install kernel-ml-tools.x86_64  -y
yum --disablerepo=\* --enablerepo=elrepo-kernel install kernel-lt-tools.x86_64  -y

接下来可以查看内核的启动顺序

# 查看插入顺序,看看而已
awk -F \' '$1=="menuentry " {print i++ " : " $2}' /etc/grub2.cfg
# 查看启动顺序
grub2-editenv list

修改启动顺序

# 方法
grub2-set-default 'CentOS Linux (4.4.249-1.el7.elrepo.x86_64) 7 (Core)'

## 然后查看启动顺序
grub2-editenv list

接下来重启

reboot now

重启后可以查看最新的内核,有需要也可以删除内核

uname -r
yum remove $(rpm -qa | grep kernel | grep -v $(uname -r))

指定内核

首先从如下链接选择内核版本 http://mirrors.coreix.net/elrepo-archive-archive/kernel/el7/x86_64/RPMS/,然后通过rpm -ivh xx进行安装。

下面通过我需要的kernel-lt-4.4.249-1.el7.elrepo.x86_64来举例

# https://www.cnblogs.com/erlou96/p/12904902.html
wget http://mirrors.coreix.net/elrepo-archive-archive/kernel/el7/x86_64/RPMS/kernel-lt-4.4.249-1.el7.elrepo.x86_64.rpm

# 安装内核
rpm -ivh kernel-lt-4.4.249-1.el7.elrepo.x86_64.rpm --force

# 查看插入顺序,看看而已
awk -F \' '$1=="menuentry " {print i++ " : " $2}' /etc/grub2.cfg

# 设置需要的内核最为启动项目
grub2-set-default 'CentOS Linux (4.4.249-1.el7.elrepo.x86_64) 7 (Core)'

# 然后查看启动顺序
grub2-editenv list

# 重启进入新的内核后执行下述代码可以删除老的内核
yum remove $(rpm -qa | grep kernel | grep -v $(uname -r))

我的目的是为了安装 kubernetes,我发现超过 4.4版本的内核在开启 ipvs 的时候会出现问题,所以我选择的是 4.4版本的最新内核。

骐骥一跃,不能十步。驽马十驾,功在不舍。