首页 > 其他分享 >内核升级

内核升级

时间:2023-09-08 17:45:16浏览次数:34  
标签:kernel x86 elrepo 升级 64 内核 el7

一、内核升级

在企业用过的内核升级
# centos7.6内核升级4.19
前提条件
已配置好基础yum源,参考yum源配置

1、获取内核的rpm包
http://193.49.22.109/elrepo/kernel/el7/x86_64/RPMS/
从上述页面上下载4.19.12的rpm包kernel-ml-4.19.12-1.el7.elrepo.x86_64.rpm
然后拷贝到主机上

wget http://193.49.22.109/elrepo/kernel/el7/x86_64/RPMS/kernel-ml-4.19.12-1.el7.elrepo.x86_64.rpm
或者
curl -O http://193.49.22.109/elrepo/kernel/el7/x86_64/RPMS/kernel-ml-4.19.12-1.el7.elrepo.x86_64.rpm

2、安装
sudo yum -y localinstall kernel-ml-4.19.12-1.el7.elrepo.x86_64.rpm
3、 重新生成启动配置
修改/etc/default/grub文件,修改其中一行GRUB_DEFAULT=saved为GRUB_DEFAULT=0

$ sudo vi /etc/default/grub
GRUB_DEFAULT=0
然后重新编译内核启动文件(每一次升级完都要执行一次)

$ sudo grub2-mkconfig -o /boot/grub2/grub.cfg
注意,如果你的系统是用uefi引导的,则命令为

$ sudo grub2-mkconfig -o /boot/efi/EFI/centos/grub.cfg
可以通过df -hT命令判断你的系统是否由uefi引导,如果输出结果中有/boot/efi(即该目录挂载了一个盘),则为uefi引导;或者通过命令ls /sys/firmware/efi看该目录是否存在

4、重启主机 reboot
重启主机,检查内核版本
$ uname -r
1、自己虚拟机测试实战: 自己下载需要的内核版本号

去哪下载内核版本号是最麻烦的!

有以下网址可供参考

http://193.49.22.109/elrepo/kernel/el7/x86_64/RPMS/

https://elrepo.org/linux/kernel/el7/x86_64/RPMS/

http://mirrors.aliyun.com/centos/?spm=a2c6h.25603864.0.0.69e419292YfNND

可以用杰哥给的网址,下载最新rpm包

http://mirror.mat.mines-paristech.fr/elrepo/kernel/el7/x86_64/RPMS/

高版本的内核修复了许多的低版本内核的bug,因此,系统是需要提高内核版本的,从而提高安全性,稳定性,并增加更多的功能。
# 注意:确保您已备份重要数据并了解正在运行的CentOS版本和内核版本。   如果是新的机子,直接升级就行了,都没有数据
1、查看当前的CentOS版本和内核版本,使用以下命令
[root@db01 ~]# cat /etc/redhat-release 
CentOS Linux release 7.9.2009 (Core)
[root@db01 ~]# uname -r
3.10.0-1160.el7.x86_64

版本号中各个数字分开详细说明:
3 :主版本号
10 :次版本号
0 :修订号
1160.83.1:发行版本的补丁版本
el7 : CentOS 7内核
X86_64 :64位的CPU的操作系统

2、查找并下载新的内核版本
到https://elrepo.org/tiki/Download去找当前centos系统的稳定版本内核,下载安装
注意:稳定的并且大部分bug已经修复的内核种类为longterm,因此在网页挑选一个longterm种类的内核即可,longterm的缩写为lt
下载网站: https://hkg.mirror.rackspace.com/elrepo/kernel/el7/x86_64/RPMS/

3、内核升级步骤
#下载内核包
[root@db01 ~]# wget https://hkg.mirror.rackspace.com/elrepo/kernel/el7/x86_64/RPMS/kernel-lt-5.4.255-1.el7.elrepo.x86_64.rpm

#rpm安装该包
[root@db01 ~]# ll
-rw-r--r-- 1 root root 52920808 Aug 31 09:08 kernel-lt-5.4.255-1.el7.elrepo.x86_64.rpm
[root@db01 ~]# rpm -ivh kernel-lt-5.4.255-1.el7.elrepo.x86_64.rpm 

#编辑grub文件,把GRUB_DEFAULT=saved改成GRUB_DEFAULT=0
[root@db01 ~]# sed -i '3s/saved/0/' /etc/default/grub
[root@db01 ~]# cat /etc/default/grub
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="biosdevname=0 net.ifnames=0 rhgb quiet"
GRUB_DISABLE_RECOVERY="true"

#根据/etc/default/grub自动生成开机配置文件
[root@db01 ~]# grub2-mkconfig -o /boot/grub2/grub.cfg
Generating grub configuration file ...
Found linux image: /boot/vmlinuz-5.4.255-1.el7.elrepo.x86_64
Found initrd image: /boot/initramfs-5.4.255-1.el7.elrepo.x86_64.img
Found linux image: /boot/vmlinuz-3.10.0-1160.el7.x86_64
Found initrd image: /boot/initramfs-3.10.0-1160.el7.x86_64.img
Found linux image: /boot/vmlinuz-0-rescue-74559b9147b04496aed06d73e5dd78fa
Found initrd image: /boot/initramfs-0-rescue-74559b9147b04496aed06d73e5dd78fa.img
done

#重启机器生效
[root@db01 ~]# reboot

# 版本验证
[root@db01 ~]# uname -r
5.4.255-1.el7.elrepo.x86_64

centos是可以多内核共存的,上下选择就行(因此不建议删除旧版本的内核,仅仅安装新版本内核后,grub选择新版本内核进入系统并使用即可,(谁也不敢保证新的内核就一定好用,留个旧的,不好用可以换)

image-20230907094646329

2、测试实战: 使用 ELRepo,这是一个第三方仓库,可以将内核升级到最新版本。无法指定版本号,只能选择最新稳定的
一、查看当前的CentOS版本和内核版本
[root@db01 ~]# cat /etc/redhat-release       # 查看CentOS版本
CentOS Linux release 7.9.2009 (Core)
[root@db01 ~]# uname -r                      # 查看当前内核版本
3.10.0-1160.el7.x86_64

二、在 CentOS 7 中升级内核
CentOS 允许使用 ELRepo,这是一个第三方仓库,可以将内核升级到最新版本。在 CentOS 7 上启用 ELRepo 仓库,运行如下命令:
[root@db01 ~]# rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org                   #导入该源的秘钥
[root@db01 ~]# rpm -Uvh http://www.elrepo.org/elrepo-release-7.0-2.el7.elrepo.noarch.rpm    #启用该源仓库
Retrieving http://www.elrepo.org/elrepo-release-7.0-2.el7.elrepo.noarch.rpm
Retrieving http://elrepo.org/elrepo-release-7.0-4.el7.elrepo.noarch.rpm
Preparing...                          ################################# [100%]
Updating / installing...
   1:elrepo-release-7.0-4.el7.elrepo  ################################# [100%]
[root@db01 ~]# yum --disablerepo="*" --enablerepo="elrepo-kernel" list available          #查看有哪些内核版本可供安装
Loaded plugins: fastestmirror
Determining fastest mirrors
 * elrepo-kernel: mirrors.tuna.tsinghua.edu.cn
elrepo-kernel                                                                                                                           | 3.0 kB  00:00:00     
elrepo-kernel/primary_db                                                                                                                | 2.1 MB  00:00:00     
Available Packages
elrepo-release.noarch                                                          7.0-6.el7.elrepo                                                   elrepo-kernel
kernel-lt.x86_64                                                               5.4.256-1.el7.elrepo                                               elrepo-kernel
kernel-lt-devel.x86_64                                                         5.4.256-1.el7.elrepo                                               elrepo-kernel
kernel-lt-doc.noarch                                                           5.4.256-1.el7.elrepo                                               elrepo-kernel
kernel-lt-headers.x86_64                                                       5.4.256-1.el7.elrepo                                               elrepo-kernel
kernel-lt-tools.x86_64                                                         5.4.256-1.el7.elrepo                                               elrepo-kernel
kernel-lt-tools-libs.x86_64                                                    5.4.256-1.el7.elrepo                                               elrepo-kernel
kernel-lt-tools-libs-devel.x86_64                                              5.4.256-1.el7.elrepo                                               elrepo-kernel
kernel-ml.x86_64                                                               6.5.2-1.el7.elrepo                                                 elrepo-kernel
kernel-ml-devel.x86_64                                                         6.5.2-1.el7.elrepo                                                 elrepo-kernel
kernel-ml-doc.noarch                                                           6.5.2-1.el7.elrepo                                                 elrepo-kernel
kernel-ml-headers.x86_64                                                       6.5.2-1.el7.elrepo                                                 elrepo-kernel
kernel-ml-tools.x86_64                                                         6.5.2-1.el7.elrepo                                                 elrepo-kernel
kernel-ml-tools-libs.x86_64                                                    6.5.2-1.el7.elrepo                                                 elrepo-kernel
kernel-ml-tools-libs-devel.x86_64                                              6.5.2-1.el7.elrepo                                                 elrepo-kernel
perf.x86_64                                                                    5.4.256-1.el7.elrepo                                               elrepo-kernel
python-perf.x86_64                                                             5.4.256-1.el7.elrepo                                               elrepo-kernel

三、安装新的内核,使用以下命令:
开始安装: yum --enablerepo=elrepo-kernel install kernel-ml -y  #安装的是主线版本,该版本比较激进,慎重选择。版本号5.8.13
          yum --enablerepo=elrepo-kernel install kernel-lt -y  #安装的长期稳定版本,稳定可靠,版本为4.4.238
两个yum命令选择一个安装。安装完毕后,重启机器,手动选择新安装的新版本哦!!!

[root@db01 ~]# yum --enablerepo=elrepo-kernel install kernel-lt -y
[root@db01 ~]# awk -F\' '$1=="menuentry " {print i++ " : " $2}' /etc/grub2.cfg      # 列出可用的引导项,记录相应的编号
0 : CentOS Linux (5.4.256-1.el7.elrepo.x86_64) 7 (Core)
1 : CentOS Linux (3.10.0-1160.el7.x86_64) 7 (Core)
2 : CentOS Linux (0-rescue-74559b9147b04496aed06d73e5dd78fa) 7 (Core)

四、设置 GRUB 默认的内核版本,使用以下命令:
打开并编辑 /etc/default/grub 并设置 GRUB_DEFAULT=0。意思是 GRUB 初始化页面的第一个内核将作为默认内核
[root@db01 ~]# sed -i '3s/saved/0/' /etc/default/grub
GRUB_TIMEOUT=5
GRUB_DISTRIBUTOR="$(sed 's, release .*$,,g' /etc/system-release)"
GRUB_DEFAULT=saved                   #这里的saved改为0即可,重启后,默认就是你上次所选的版本了。
GRUB_DISABLE_SUBMENU=true
GRUB_TERMINAL_OUTPUT="console"
GRUB_CMDLINE_LINUX="rhgb quiet"
GRUB_DISABLE_RECOVERY="true"

五、重新生成GRUB配置文件
[root@db01 ~]# grub2-mkconfig -o /boot/grub2/grub.cfg
Generating grub configuration file ...
Found linux image: /boot/vmlinuz-5.4.256-1.el7.elrepo.x86_64
Found initrd image: /boot/initramfs-5.4.256-1.el7.elrepo.x86_64.img
Found linux image: /boot/vmlinuz-3.10.0-1160.el7.x86_64
Found initrd image: /boot/initramfs-3.10.0-1160.el7.x86_64.img
Found linux image: /boot/vmlinuz-0-rescue-74559b9147b04496aed06d73e5dd78fa
Found initrd image: /boot/initramfs-0-rescue-74559b9147b04496aed06d73e5dd78fa.img
done

六、重启CentOS系统,使用以下命令:
reboot
在启动时选择新安装的内核。
[root@db01 ~]# uname -r
5.4.256-1.el7.elrepo.x86_64
最后总结
CentOS 升级内核的三种方式(yum/rpm/源码)
注意事项
关于内核种类:
kernel-ml 中的ml是英文【 mainline stable 】的缩写,elrepo-kernel中罗列出来的是最新的稳定主线版本。
kernel-lt 中的lt是英文【 long term support 】的缩写,elrepo-kernel中罗列出来的长期支持版本。
# 检查内核版本
uname -r
一、yum安装
1、导入仓库源
rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.orgrpm -Uvh http://www.elrepo.org/elrepo-release-7.0-2.el7.elrepo.noarch.rpm

2、查看可安装的软件包
yum --enablerepo="elrepo-kernel" list --showduplicates | sort -r | grep kernel-ml.x86_64

3、选择 ML 或 LT 版本安装, 无指定版本默认安装最新
# 安装 ML 版本
yum --enablerepo=elrepo-kernel install  kernel-ml-devel kernel-ml -y   # 安装 LT 版本,K8S全部选这个
yum --enablerepo=elrepo-kernel install kernel-lt-devel kernel-lt -y

4、查看现有内核启动顺序
awk -F\' '$1=="menuentry " {print $2}' /etc/grub2.cfg

5、修改默认启动项
xxx 为序号数字,以指定启动列表中第x项为启动项,x从0开始计数
grub2-set-default xxxx

6、例如设置以4.4内核启动, 则直接输入“grub2-set-default 0”,下次启动即可从4.4启动
# 查看内核启动序号
[root@localhost ~] awk -F\' '$1=="menuentry " {print $2}' /etc/grub2.cfgCentOS Linux (4.4.179-1.el7.elrepo.x86_64) 7 (Core)CentOS Linux (3.10.0-693.el7.x86_64) 7 (Core)CentOS Linux (0-rescue-6d4c599606814867814f1a8eec7bfd1e) 7 (Core)# 设置启动序号
[root@localhost ~] grub2-set-default 0# 重启
reboot# 检查内核版本
uname -r
===========================================================================
二、RPM安装
检查内核版本
uname -r
1、查找版本
因 ELRepo 源都是最新版本,所以旧版本内核只能手动下载。
查找 kernel rpm 历史版:
http://mirrors.coreix.net/elrepo-archive-archive/kernel/el7/x86_64/RPMS/

2、共需要下载三个类型 rpm
wget http://mirrors.coreix.net/elrepo-archive-archive/kernel/el7/x86_64/RPMS/kernel-lt-devel-4.4.215-1.el7.elrepo.x86_64.rpm
wget http://mirrors.coreix.net/elrepo-archive-archive/kernel/el7/x86_64/RPMS/kernel-lt-headers-4.4.215-1.el7.elrepo.x86_64.rpm
wget http://mirrors.coreix.net/elrepo-archive-archive/kernel/el7/x86_64/RPMS/kernel-lt-4.4.215-1.el7.elrepo.x86_64.rpm

3、安装内核
rpm -ivh kernel-lt-4.4.215-1.el7.elrepo.x86_64.rpm
rpm -ivh kernel-lt-devel-4.4.215-1.el7.elrepo.x86_64.rpm
或者
#一键安装所有
rpm -Uvh *.rpm

4、确认已安装内核版本
[root@localhost ~]# rpm -qa | grep kernel
kernel-headers-3.10.0-1160.15.2.el7.x86_64
kernel-devel-3.10.0-1160.49.1.el7.x86_64
kernel-tools-libs-3.10.0-957.el7.x86_64
kernel-3.10.0-957.el7.x86_64
kernel-ml-4.9.9-1.el7.elrepo.x86_64
kernel-lt-4.4.215-1.el7.elrepo.x86_64
kernel-tools-3.10.0-957.el7.x86_64
kernel-lt-devel-4.4.215-1.el7.elrepo.x86_64

5、设置启动
# 查看启动顺序
[root@localhost ~]# awk -F\' '$1=="menuentry " {print $2}' /etc/grub2.cfg
CentOS Linux (4.4.215-1.el7.elrepo.x86_64) 7 (Core)
CentOS Linux (4.9.9-1.el7.elrepo.x86_64) 7 (Core)
CentOS Linux (3.10.0-957.el7.x86_64) 7 (Core)
CentOS Linux (0-rescue-b91f945269084aa98e8257311ee713c5) 7 (Core)# 设置启动顺序
[root@localhost ~]# grub2-set-default 0# 重启生效
[root@localhost ~]# reboot
====================================================================
三、源码安装
1、安装核心软件包
yum install -y gcc make git ctags ncurses-devel openssl-devel
yum install -y bison flex elfutils-libelf-devel bc

2、创建内核编译目录
使用 home 下的 kernelbuild 目录
mkdir ~/kernelbuild

3、获取内核源码
清华大学镜像站:https://mirror.tuna.tsinghua.edu.cn/kernel/v4.x/?C=M&O=D
其他源码安装包下载地址:https://mirrors.edge.kernel.org/pub/linux/kernel/
linux-4.xx.xx.tar.xz
linux-4.xx.xx.tar.gz
这两个格式都可以的,tar.xz压缩率更高,文件更小。
在线下载:wget https://mirror.tuna.tsinghua.edu.cn/kernel/v4.x/linux-4.17.11.tar.xz

4、解压内核代码
将其解压后进入源码目录:
tar -xvJf linux-4.17.11.tar.xz
为确保内核树绝对干净,进入内核目录并执行 make mrproper 命令:
cd linux-4.17.11
make clean && make mrproper

5、内核配置
复制当前的内核配置文件
config-3.10.0-862.el7.x86_64是我当前环境的内核配置文件,根据实际情况修改
cp /boot/config-3.10.0-862.el7.x86_64 .config
高级配置
y 是启用, n 是禁用, m 是需要时启用.
make menuconfig: 老的 ncurses 界面,被 nconfig 取代
make nconfig: 新的命令行 ncurses 界面

6、编译和安装
编译内核
如果你是四核的机器,x可以是8
make -j x
安装内核
编译完内核后安装:Warning: 从这里开始,需要 root 权限执行命令,否则会失败.
make modules_install install

7、设置启动
# 查看启动顺序
[root@localhost ~]# awk -F\' '$1=="menuentry " {print $2}' /etc/grub2.cfg
CentOS Linux (4.17.11-1.el7.elrepo.x86_64) 7 (Core)
CentOS Linux (4.9.9-1.el7.elrepo.x86_64) 7 (Core)
CentOS Linux (3.10.0-957.el7.x86_64) 7 (Core)
CentOS Linux (0-rescue-b91f945269084aa98e8257311ee713c5) 7 (Core)# 设置启动顺序
[root@localhost ~]# grub2-set-default 0# 重启生效
[root@localhost ~]# reboot
===================================================================
四、卸载 / 降级 内核
例如:
当系统已存在 LT 内核的 5.4.103 版本时,继续安装 LT 内核的 4.4.215 版本则会提示: package kernel-lt-5.4.103-1.el7.elrepo.x86_64 (which is newer than kernel-lt-4.4.215-1.el7.elrepo.x86_64) is already installed
这时就需要进行内核降级,卸载最新版的内核。

1、查看系统当前内核版本
[root@localhost ~]# uname -r
5.4.103-1.el7.elrepo.x86_64

2、查看系统中全部内核
[root@localhost ~]# rpm -qa | grep kernel
kernel-headers-3.10.0-1160.15.2.el7.x86_64
kernel-devel-3.10.0-1160.49.1.el7.x86_64
kernel-tools-libs-3.10.0-957.el7.x86_64
kernel-3.10.0-957.el7.x86_64
kernel-ml-4.9.9-1.el7.elrepo.x86_64
kernel-lt-5.4.103-1.el7.elrepo.x86_64
kernel-tools-3.10.0-957.el7.x86_64
kernel-lt-devel-5.4.103-1.el7.elrepo.x86_64

3、删除指定内核
此处以删除 LT 内核的 5.4.103 版本为例
**注意:**无法卸载当前在用的内核版本。卸载完后不一定需要重启

yum remove -y kernel-lt-devel-5.4.103-1.el7.elrepo.x86_64yum remove -y kernel-lt-5.4.103-1.el7.elrepo.x86_64
检查卸载后内核版本
[root@localhost ~]# rpm -qa | grep kernel
kernel-headers-3.10.0-1160.15.2.el7.x86_64
kernel-devel-3.10.0-1160.49.1.el7.x86_64
kernel-tools-libs-3.10.0-957.el7.x86_64
kernel-3.10.0-957.el7.x86_64
kernel-ml-4.9.9-1.el7.elrepo.x86_64
kernel-tools-3.10.0-957.el7.x86_64

标签:kernel,x86,elrepo,升级,64,内核,el7
From: https://www.cnblogs.com/-genian/p/17688188.html

相关文章

  • linux下mysql升级
    在Ubuntu/Debian、CentOS/RHEL系统上,你可以使用不同的命令来查看Linux系统的版本信息。1.查看Ubuntu/Debian版本:```lsb_release-a```或者```cat/etc/os-release```这些命令将输出包含系统版本信息的文本,其中包括发行版名称、发行版版本和系统......
  • RDMA-内核接口-rxe_map_mr_sg
    描述:映射mr的sg调用链:此处多处调用staticintnvme_rdma_map_sg_fr(structnvme_rdma_queue*queue,    structnvme_rdma_request*req,structnvme_command*c,    intcount){   req->mr=ib_mr_pool_get(queue->qp,&queue->qp->rdma_mrs);  /*  ......
  • Tita 升级 | 「1:1 面谈」全新上线
    创建面谈Tita-OKR和新绩效一体化管理平台无论是管理者还是员工,都可以可以添加不同主题与面谈人来发起1:1面谈,例如:目标设立与对齐、本周重点工作计划、月度绩效表现面谈等创建后将向对方发送面谈主题与时间的通知面谈详情页创建面谈后进入到面谈详情页中,可在页面中心......
  • WorkPlus Meet白板和文档共享功能上线,私有化视频会议全新升级
    在迅猛发展的数字化时代,私有化视频会议成为企业高效沟通和协作的关键工具。WorkPlusMeet作为领先品牌,倾力打造私有化视频会议平台,并且最新上线了全新的白板和文档共享模块。本文将重点介绍WorkPlusMeet如何通过创新功能和稳定性,提供卓越的私有化视频会议体验,助力企业实现高效沟通......
  • 视频监控/安防监控/视频云存储EasyCVR平台设备分配模块升级详解
    安防视频监控/视频集中存储/云存储/磁盘阵列EasyCVR平台支持将部署在监控现场的前端设备进行统一集中接入,可兼容多协议、多类型设备,管理员可选择任意一路或多路视频实时观看,视频画面支持单画面、多画面显示,视频窗口数量有1、4、9、16个可选,还能支持视频轮巡播放。平台分发的视频流......
  • 视频监控汇聚平台EasyNVR安防视频内核启动正常,但视频无法播放是什么原因?
    EasyNVR是基于RTSP/Onvif协议的安防视频云服务平台,可实现设备接入、实时直播、录像、检索与回放、云存储、视频分发、级联等视频能力服务,可覆盖全终端平台(电脑、手机、平板等终端),在智慧工厂、智慧工地、智慧社区、智慧校园等场景中有大量落地应用。 近期有用户向我们求助,EasyNV......
  • 视频监控/安防监控/视频云存储EasyCVR平台设备分配模块升级详解
    安防视频监控/视频集中存储/云存储/磁盘阵列EasyCVR平台支持将部署在监控现场的前端设备进行统一集中接入,可兼容多协议、多类型设备,管理员可选择任意一路或多路视频实时观看,视频画面支持单画面、多画面显示,视频窗口数量有1、4、9、16个可选,还能支持视频轮巡播放。平台分发的视频流......
  • STM32之IAP升级
    STM32有哪几种下载的程序的方式:ISP、ICP、IAPIAP和OTA的区别:https://blog.csdn.net/xue_nuo/article/details/128217126IAP升级的策略:https://zhuanlan.zhihu.com/p/583161271......
  • npm:升级自身时报错:EBADENGINE
    一,报错信息root@lhdpc:~#npminstall-gnpmnpmERR!codeEBADENGINEnpmERR!engineUnsupportedenginenpmERR!engineNotcompatiblewithyourversionofnode/npm:[email protected]!notsupNotcompatiblewithyourversionofnode/npm:[email protected]......
  • Tita 升级 | 「OKR 审批」全新发布
    一、如何开启OKR审批?Tita-OKR和新绩效一体化管理平台超管、目标管理员、老板/助理可在企业管理规定中-OKR规定-审批设置中开启OKR审批我们提供了四种OKR审批类型,包括:新建OKR、更改OKR名称、更改时间与删除OKR(操作包含对目标与关键成果)开启后,员工在上述操......