Centos和Ubutun系统内核升级操作

网友投稿 803 2023-04-03

本站部分文章、图片属于网络上可搜索到的公开信息,均用于学习和交流用途,不能代表睿象云的观点、立场或意见。我们接受网民的监督,如发现任何违法内容或侵犯了您的权益,请第一时间联系小编邮箱jiasou666@gmail.com 处理。

Centos和Ubutun系统内核升级操作

在日常运维中有时候会出现内核版本过低,导致一系列的问题,比如k8s使用3.10会出现cgroup内存泄漏,或者有的软件依赖内核版本,最近我在安装Pixie就需要内核版本大于4.14+,因此就专门总结了centos和ubutun操作系统的内核升级操作步骤

1 centos7升级内核

1.1 检查已安装的内核版本

让我们安装了一个发行版,它包含了一个特定版本的内核。为了展示当前系统中已安装的版本,我们可以:

# uname -sr Linux 3.10.0-862.el7.x86_64

1.2 升级内核

1.3 查看可用的系统内核包

仓库启用后,你可以使用下面的命令列出可用的内核相关包:可以看到5.4和5.12两个版本

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

1.4 安装最新版本内核

#--enablerepo 选项开启 CentOS 系统上的指定仓库。默认开启的是 elrepo,这里用 elrepo-kernel 替换。 yum -y --enablerepo=elrepo-kernel install kernel-ml

1.5 设置 GRUB 默认的内核版本

内核安装好后,需要设置为默认启动选项并重启后才会生效

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

# sudo awk -F\' '$1=="menuentry " {print i++ " : " $2}' /etc/grub2.cfg 0 : CentOS Linux 7 Rescue 8916e15095f33283a3b46d8f9ac7c654 (5.12.1-1.el7.elrepo.x86_64) 1 : CentOS Linux (5.12.1-1.el7.elrepo.x86_64) 7 (Core) 2 : CentOS Linux (3.10.0-862.el7.x86_64) 7 (Core) 3 : CentOS Linux (0-rescue-ea3169a040da42e0b632f72ceb5abd82) 7 (Core)

设置新的内核为grub2的默认版本

服务器上存在4 个内核,我们要使用 5.12 这个版本,为了让新安装的内核成为默认启动选项,可以通过 grub2-set-default 0 命令或编辑 /etc/default/grub 文件来设置

#设置 GRUB_DEFAULT=0。意思是 GRUB 初始化页面的第一个内核将作为默认内核 grub2-set-default 0

生成 grub 配置文件并重启

#接下来运行下面的命令来重新创建内核配置 # grub2-mkconfig -o /boot/grub2/grub.cfg Generating grub configuration file ... Found linux image: /boot/vmlinuz-5.12.1-1.el7.elrepo.x86_64 Found initrd image: /boot/initramfs-5.12.1-1.el7.elrepo.x86_64.img Found linux image: /boot/vmlinuz-3.10.0-862.el7.x86_64 Found initrd image: /boot/initramfs-3.10.0-862.el7.x86_64.img Found linux image: /boot/vmlinuz-0-rescue-8916e15095f33283a3b46d8f9ac7c654 Found initrd image: /boot/initramfs-0-rescue-8916e15095f33283a3b46d8f9ac7c654.img Found linux image: /boot/vmlinuz-0-rescue-ea3169a040da42e0b632f72ceb5abd82 Found initrd image: /boot/initramfs-0-rescue-ea3169a040da42e0b632f72ceb5abd82.img done

验证

# reboot # uname -r 5.12.1-1.el7.elrepo.x86_64

已升级成功

题外话

没有外网,制作离线内核升级包

删除旧内核

查看系统中全部的内核:

[root@hadoop-iot-test-01 ~]# rpm -qa | grep kernel kernel-headers-3.10.0-957.27.2.el7.x86_64 kernel-tools-3.10.0-862.el7.x86_64 kernel-debug-devel-3.10.0-957.27.2.el7.x86_64 kernel-ml-5.12.1-1.el7.elrepo.x86_64 kernel-3.10.0-862.el7.x86_64 kernel-tools-libs-3.10.0-862.el7.x86_64

方法1、yum remove 删除旧内核的 RPM 包

# yum remove kernel-3.10.0-514.el7.x86_64 \ kernel-tools-libs-3.10.0-862.11.6.el7.x86_64 \ kernel-tools-3.10.0-862.11.6.el7.x86_64 \ kernel-3.10.0-862.11.6.el7.x86_64

方法2、yum-utils 工具

如果安装的内核不多于 3 个,yum-utils 工具不会删除任何一个。只有在安装的内核大于 3 个时,才会自动删除旧内核。

# 安装yum-utils yum install -y yum-utils # 删除旧版本   package-cleanup --oldkernels

2 Ubutun升级内核

2.1 环境

在虚拟机上运行的ubuntu16.04 , 使用命令uname -r查看当前系统内核版本 当前版本为4.15.0-45-generic 要升级的内核为4.20.2

2.2 准备需要的材料

选择对应的文件,我的是amd64

使用命令下载(也可以网页下载)

2.3 安装

直接使用dpkg命令安装下载好的deb包

sudo dpkg -i *.deb

安装完成后,重启ubuntu系统 使用命令uname -r查看当前版本号

# reboot 等待机子重启 # uname -r Linux hadoop-master02 4.20.5-042005-generic

内核升级成功。

2.4 遇到问题及解决方案

* 遇到问题

升级ubuntu 16.04的新内核时出现依赖libssl1.1.0问题

解决方案

上一篇:Windows 10系统又卡又慢?一招让电脑系统恢复如新,流畅度提升100%
下一篇:.NET之生成数据库全流程
相关文章

 发表评论

暂时没有评论,来抢沙发吧~