如何升级linux内核(centos7.9升级内核3.10版本到5.4版本) 您所在的位置:网站首页 macos1011如何升级到1012 如何升级linux内核(centos7.9升级内核3.10版本到5.4版本)

如何升级linux内核(centos7.9升级内核3.10版本到5.4版本)

2024-06-10 06:05| 来源: 网络整理| 查看: 265

前言

环境:centos7.9 kernel版本:3.10.0-1160.71.1.el7.x86_64 kernel内核的官网:https://www.kernel.org/ 一个linux社区的仓库源,ELRepo官网:http://elrepo.org/tiki/tiki-index.php

说明

由于需要安装jumpserver,而jumpserver官网显示需要4.0以上的内核,所以需要升级内核:

#查看内核版本 [root@jump ~]# uname -r 3.10.0-1160.71.1.el7.x86_64 #有很多内核的包 [root@jump ~]# rpm -qa | grep kernel kernel-3.10.0-1160.el7.x86_64 kernel-3.10.0-1160.71.1.el7.x86_64 kernel-devel-3.10.0-1160.71.1.el7.x86_64 kernel-headers-3.10.0-1160.71.1.el7.x86_64 kernel-tools-libs-3.10.0-1160.71.1.el7.x86_64 kernel-tools-3.10.0-1160.71.1.el7.x86_64 联网升级内核版本

1、方法一、下载官网的稳定版本内核: wget https://cdn.kernel.org/pub/linux/kernel/v5.x/linux-5.19.14.tar.xz进行编译安装,由于内核编译安装不像平时的 ./confgue&& make && make install 那么简单,所以本次不讲这种编译安装方式。

2、方法二,使用yum 更新内核: 大多数 Linux 发行版提供自行维护的内核,可以通过 yum 或 rpm 等包管理系统升级。 ELRepo是一个为Linux提供驱动程序和内核映像的存储库,本篇内核升级方案就是采用ELRepo提供的内核通道。 ELRepo官网:http://elrepo.org/tiki/tiki-index.php

#导入公钥 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 #官网提示安装的,那就安装 yum install -y yum-plugin-fastestmirror #这里能离线下载到内核的rpm包,如果你的linux不联网,则可以离线下载安装包 https://elrepo.org/linux/kernel/el7/x86_64/RPMS/ #查看elrepo源里可用内核版本,可以看到有长期支持的版本5.4.257和稳定的主线版本6.0.0 # lt = long time 长期支持内核,采用长期支持版本(kernel-lt),更加稳定一些 # ml=mainline 稳定主线内核 [root@jump ~]# yum --disablerepo="*" --enablerepo="elrepo-kernel" list available Available Packages kernel-lt.x86_64 5.4.257-1.el7.elrepo elrepo-kernel kernel-lt-devel.x86_64 5.4.257-1.el7.elrepo elrepo-kernel kernel-lt-doc.noarch 5.4.257-1.el7.elrepo elrepo-kernel kernel-lt-headers.x86_64 5.4.257-1.el7.elrepo elrepo-kernel kernel-lt-tools.x86_64 5.4.257-1.el7.elrepo elrepo-kernel kernel-lt-tools-libs.x86_64 5.4.257-1.el7.elrepo elrepo-kernel kernel-lt-tools-libs-devel.x86_64 5.4.257-1.el7.elrepo elrepo-kernel kernel-ml.x86_64 6.0.0-1.el7.elrepo elrepo-kernel kernel-ml-devel.x86_64 6.0.0-1.el7.elrepo elrepo-kernel kernel-ml-doc.noarch 6.0.0-1.el7.elrepo elrepo-kernel kernel-ml-headers.x86_64 6.0.0-1.el7.elrepo elrepo-kernel kernel-ml-tools.x86_64 6.0.0-1.el7.elrepo elrepo-kernel kernel-ml-tools-libs.x86_64 6.0.0-1.el7.elrepo elrepo-kernel kernel-ml-tools-libs-devel.x86_64 6.0.0-1.el7.elrepo elrepo-kernel perf.x86_64 5.19.12-1.el7.elrepo elrepo-kernel python-perf.x86_64 5.19.12-1.el7.elrepo elrepo-kernel #安装长期稳定版本,稳定可靠,版本为5.4.257 yum --enablerepo=elrepo-kernel install kernel-lt-5.4.257-1.el7.elrepo.x86_64 #安装5.4.257版本的这些依赖包 #安装之前需要卸载低版本内核的kernel-tools和kernel-headers,不然会报冲突 yum remove -y kernel-tools* kernel-headers* yum --enablerepo=elrepo-kernel install kernel-lt-devel-5.4.257-1.el7.elrepo.x86_64 \ kernel-lt-doc-5.4.257-1.el7.elrepo.noarch \ kernel-lt-headers-5.4.257-1.el7.elrepo.x86_64 \ kernel-lt-tools-5.4.257-1.el7.elrepo.x86_64 \ kernel-lt-tools-libs-5.4.257-1.el7.elrepo.x86_64 \ kernel-lt-tools-libs-devel-5.4.257-1.el7.elrepo.x86_64 -y #查看内核是否载入到grub2 #/etc/grub2.cfg文件是/boot/grub2/grub.cfg文件的软链接,grub.cfg文件是grub引导加载器的配置文件 #注意:如果服务器使用efi模式启动,那么可能没有/boot/grub2/grub.cfg文件,其对应的配置文件可能是/boot/efi/EFI/centos/grub.cfg sudo awk -F\' '$1=="menuentry " {print i++ " : " $2}' /etc/grub2.cfg 0 : CentOS Linux (5.4.257-1.el7.elrepo.x86_64) 7 (Core) 1 : CentOS Linux (3.10.0-1160.71.1.el7.x86_64) 7 (Core) 2 : CentOS Linux (3.10.0-1160.el7.x86_64) 7 (Core) 3 : CentOS Linux (0-rescue-20220727115107055496013495205931) 7 (Core) 刚刚安装的内核即0 : CentOS Linux (5.4.257-1.el7.elrepo.x86_64) 7 (Core) 我们需要把grub默认设置为0 可以通过 grub2-set-default 0 命令设置或编辑 vim /etc/default/grub 文件来设置 vim /etc/default/grub GRUB_DEFAULT=0 #这句改为GRUB_DEFAULT=0 意思是GRUB初始化页面的第一个内核将作为默认内核,保存退出 #检查默认内核是不是5.4 grubby --default-kernel #生成 grub 配置文件 grub2-mkconfig -o /boot/grub2/grub.cfg #重启linux系统 reboot #重启完成,查看现在linux内核,已经变成5.4.257了 [root@jump ~]# uname -r 5.4.257-1.el7.elrepo.x86_64 [root@jump ~]# #查看系统中的全部内核,现在旧的3.10内核还在 [root@jump ~]# rpm -qa | grep kernel kernel-lt-tools-5.4.257-1.el7.elrepo.x86_64 kernel-lt-devel-5.4.257-1.el7.elrepo.x86_64 kernel-3.10.0-1160.el7.x86_64 kernel-lt-tools-libs-5.4.257-1.el7.elrepo.x86_64 kernel-lt-tools-libs-devel-5.4.257-1.el7.elrepo.x86_64 kernel-lt-headers-5.4.257-1.el7.elrepo.x86_64 kernel-3.10.0-1160.92.1.el7.x86_64 kernel-lt-5.4.257-1.el7.elrepo.x86_64 kernel-lt-doc-5.4.257-1.el7.elrepo.noarch #可以选择移除全部旧内核版本的相关包(自行决定是否卸载) #补充一句,Linux是支持多版本内核共存的,无非是系统启动的时候应用哪个版本内核而已 yum remove kernel-3.10.0-1160* -y #查看grub2已经没有3.10的内核了 sudo awk -F\' '$1=="menuentry " {print i++ " : " $2}' /etc/grub2.cfg 0 : CentOS Linux (5.4.257-1.el7.elrepo.x86_64) 7 (Core) 1 : CentOS Linux (0-rescue-bfd5b36eb1f547e18ff398ed50be7142) 7 (Core) #发现卸载3.10.0-1160版本内核的时候把这些依赖给卸载了,所以现在重新安装这些依赖 yum install gcc gcc-c++ glibc-devel glibc-headers -y #查看现在的内核,都是5.4.257-1版本的了 [root@jump ~]# rpm -qa | grep kern kernel-lt-tools-5.4.257-1.el7.elrepo.x86_64 kernel-lt-devel-5.4.257-1.el7.elrepo.x86_64 kernel-lt-tools-libs-5.4.257-1.el7.elrepo.x86_64 kernel-lt-tools-libs-devel-5.4.257-1.el7.elrepo.x86_64 kernel-lt-headers-5.4.257-1.el7.elrepo.x86_64 kernel-lt-5.4.257-1.el7.elrepo.x86_64 kernel-lt-doc-5.4.257-1.el7.elrepo.noarch #再次重启linux(可不用重启) init 6 一切正常,Linux内核升级完成。 离线升级内核 从官网可以下载内核rpm包:https://elrepo.org/linux/kernel/el7/x86_64/RPMS/ #找一台可以联网的服务器下载内核包 wget https://elrepo.org/linux/kernel/el7/x86_64/RPMS/kernel-lt-5.4.257-1.el7.elrepo.x86_64.rpm wget https://elrepo.org/linux/kernel/el7/x86_64/RPMS/kernel-lt-devel-5.4.257-1.el7.elrepo.x86_64.rpm wget https://elrepo.org/linux/kernel/el7/x86_64/RPMS/kernel-lt-doc-5.4.257-1.el7.elrepo.noarch.rpm wget https://elrepo.org/linux/kernel/el7/x86_64/RPMS/kernel-lt-headers-5.4.257-1.el7.elrepo.x86_64.rpm wget https://elrepo.org/linux/kernel/el7/x86_64/RPMS/kernel-lt-tools-5.4.257-1.el7.elrepo.x86_64.rpm wget https://elrepo.org/linux/kernel/el7/x86_64/RPMS/kernel-lt-tools-libs-5.4.257-1.el7.elrepo.x86_64.rpm wget https://elrepo.org/linux/kernel/el7/x86_64/RPMS/kernel-lt-tools-libs-devel-5.4.257-1.el7.elrepo.x86_64.rpm #将下载好的rpm上传到内网服务器 [root@jump update-kernel]# ll -rw-r--r--. 1 root root 52921216 Sep 24 01:46 kernel-lt-5.4.257-1.el7.elrepo.x86_64.rpm -rw-r--r--. 1 root root 13538544 Sep 24 01:46 kernel-lt-devel-5.4.257-1.el7.elrepo.x86_64.rpm -rw-r--r--. 1 root root 8625312 Sep 24 01:46 kernel-lt-doc-5.4.257-1.el7.elrepo.noarch.rpm -rw-r--r--. 1 root root 1399908 Sep 24 01:46 kernel-lt-headers-5.4.257-1.el7.elrepo.x86_64.rpm -rw-r--r--. 1 root root 232316 Sep 24 01:46 kernel-lt-tools-5.4.257-1.el7.elrepo.x86_64.rpm -rw-r--r--. 1 root root 118976 Sep 24 01:46 kernel-lt-tools-libs-5.4.257-1.el7.elrepo.x86_64.rpm -rw-r--r--. 1 root root 96432 Sep 24 01:46 kernel-lt-tools-libs-devel-5.4.257-1.el7.elrepo.x86_64.rpm #安装内核 yum install -y ./kernel-lt-5.4.257-1.el7.elrepo.x86_64.rpm yum install -y ./kernel-lt-devel-5.4.257-1.el7.elrepo.x86_64.rpm yum install -y ./kernel-lt-doc-5.4.257-1.el7.elrepo.noarch.rpm yum install -y ./kernel-lt-headers-5.4.257-1.el7.elrepo.x86_64.rpm yum install -y ./kernel-lt-tools-libs-5.4.257-1.el7.elrepo.x86_64.rpm yum install -y ./kernel-lt-tools-5.4.257-1.el7.elrepo.x86_64.rpm yum install -y ./kernel-lt-tools-libs-devel-5.4.257-1.el7.elrepo.x86_64.rpm #查看内核是否载入到grub2 #/etc/grub2.cfg文件是/boot/grub2/grub.cfg文件的软链接,grub.cfg文件是grub引导加载器的配置文件 #注意:如果服务器使用efi模式启动,那么可能没有/boot/grub2/grub.cfg文件,其对应的配置文件可能是/boot/efi/EFI/centos/grub.cfg sudo awk -F\' '$1=="menuentry " {print i++ " : " $2}' /etc/grub2.cfg 0 : CentOS Linux (5.4.257-1.el7.elrepo.x86_64) 7 (Core) 1 : CentOS Linux (3.10.0-1160.92.1.el7.x86_64) 7 (Core) 2 : CentOS Linux (3.10.0-1160.el7.x86_64) 7 (Core) 3 : CentOS Linux (0-rescue-bfd5b36eb1f547e18ff398ed50be7142) 7 (Core) 刚刚安装的内核即0 : CentOS Linux (5.4.257-1.el7.elrepo.x86_64) 7 (Core) 我们需要把grub默认设置为0 可以通过 grub2-set-default 0 命令设置或编辑 vim /etc/default/grub 文件来设置 vim /etc/default/grub GRUB_DEFAULT=0 #这句改为GRUB_DEFAULT=0 意思是GRUB初始化页面的第一个内核将作为默认内核,保存退出 #检查默认内核是不是5.4 grubby --default-kernel #生成 grub 配置文件 grub2-mkconfig -o /boot/grub2/grub.cfg #重启linux系统 reboot #重启完成,查看现在linux内核,已经变成5.4.257了 uname -r #安装完成之后,会在/usr/src/kernels目录生成内核的源码包,这个仅了解即可 [root@jump ~]# ls /usr/src/kernels/5.4.257-1.el7.elrepo.x86_64/ arch block certs crypto drivers fs include init ipc Kconfig kernel lib Makefile mm Module.symvers net samples scripts security sound System.map tools usr virt


【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有