记录:362

场景:在CentOS 7.9操作系统上,使用ELRepo镜像仓库中kernel包,升级Linux 3.10.0-1160.el7.x86_64内核到kernel-5.4.218。ELRepo项目专注于Linux和CentOS操作系统的硬件相关的软件包。

版本:

操作系统:CentOS 7.9

名词

GRUB:GRand Unified Bootloader的简称。GNU GRUB是一个GNU项目的多操作系统启动程序。GRUB是多启动规范的实现,它允许用户可以在计算机内同时拥有多个操作系统,并在计算机启动时选择希望运行的操作系统。GRUB可用于选择操作系统分区上的不同内核,也可用于向这些内核传递启动参数。

1.基础知识

1.1elrepo镜像

ELRepo: The ELRepo Project focuses on hardware related packages to enhance your experience with Enterprise Linux. This includes filesystem drivers, graphics drivers, network drivers, sound drivers, webcam and video drivers.

ELRepo:ELRepo项目专注于与硬件相关的软件包,以增强您使用Enterprise Linux的体验。这包括文件系统驱动程序、图形驱动程序、网络驱动程序、声音驱动程序、摄像头和视频驱动程序。

Elrepo:是国外的一个只对Linux操作系统的第三方免费软件资源库,支持Linux和CentOS操作系统的软件安装和升级。

1.2elrepo镜像地址

Elrepo官网:https://elrepo.org/

Elrepo镜像:http://mirrors.coreix.net/elrepo-archive-archive

阿里云开源镜像站:https://developer.aliyun.com/mirror/elrepo

1.3内核包的两个后缀

kernel-ml:ml是mainline stable 的缩写,elrepo-kernel中罗列出来的是最新的稳定主线版本。

kernel-lt:lt是 long term support的缩写,elrepo-kernel中罗列出来的长期支持版本。

1.4查看内核版本

(1)使用hostnamectl命令

命令:hostnamectl

命令:hostnamectl | grep Kernel

解析:本例版本是Kernel: Linux 3.10.0-1160.el7.x86_64。

centos 打开内核转发功能 centos7.9内核_centos 打开内核转发功能

(2)查看/proc/version

命令:cat /proc/version

(3)使用uname命令

命令:uname -srm

解析:-s,打印内核名称;-r打印内核发行版本;-m,打印机器硬件名称。

1.5查看已经安装内核软件

命令:rpm -qa | grep kernel

打印信息:

kernel-tools-3.10.0-1160.el7.x86_64
kernel-tools-libs-3.10.0-1160.el7.x86_64
kernel-3.10.0-1160.el7.x86_64

2.公网环境升级内核

公网环境升级内核:主机可以直接连接外网ELRepo镜像源。

阿里云开源镜像站:https://mirrors.aliyun.com/elrepo/kernel/el7/x86_64

(1)配置阿里云的elrepo镜像源

编辑文件:vi /etc/yum.repos.d/elrepo.repo

编辑内容:

[elrepo]
name=elrepo
baseurl=https://mirrors.aliyun.com/elrepo/archive/kernel/el7/x86_64
gpgcheck=0
enabled=1

解析:在baseurl中配置的路径就是阿里云开源镜像站Elrepo镜像仓库地址。

(2)清空和刷新yum源元数据缓存

命令:yum clean all && yum makecache

解析:yum clean all,清空历史yum源元数据;yum makecache,创建yum源元数据缓存。

(3)查镜像仓库中内核包

命令:yum list --showduplicate kernel*

(4)安装内核

版本:kernel-lt-5.4.218

命令:yum install -y kernel-lt-5.4.218

命令:yum install -y kernel-lt-devel-5.4.218

(5)查看内核编码

命令:

awk -F\' '$1=="menuentry " {print i++ " : " $2}' /etc/grub2.cfg

解析:0,1,2是内核编号。

centos 打开内核转发功能 centos7.9内核_升级内核_02

解析awk内容:awk,是一个行文本处理工具;-F\',表示处理文本以单反引号作为分割,取出值第一列等于menuentry的,就是匹配的内容,然后打印出第二列类内容。

本例实际处理的内容是/etc/grub2.cfg的如下内容:

...省略前面内容...
menuentry 'CentOS Linux (5.4.218-1.el7.elrepo.x86_64) 7 (Core)' --class centos --class ...省略...
menuentry 'CentOS Linux (3.10.0-1160.el7.x86_64) 7 (Core)' --class centos ...省略...
menuentry 'CentOS Linux (0-rescue-2eb5357177ae46d781b26d504df8ea0c) 7 (Core)' --class centos ...省略...
...省略后面内容...

因此使用如下命令,也能找到需求内容,只是没那么简洁。

命令:cat /etc/grub2.cfg | grep menuentry

(6)设置启动的内核

命令:grub2-set-default 0

解析:设置编码为0的内核,也就是刚刚安装的内核。

(7)重启操作系统

重启:reboot

(8)查看生效的版本

命令:hostnamectl

解析:生效版本Linux 5.4.218-1.el7.elrepo.x86_64。

centos 打开内核转发功能 centos7.9内核_centos 打开内核转发功能_03

(9)删除旧版包

查看已经安装的包:rpm -qa | grep kernel

删除指定包:yum remove -y 包名称

例如:yum remove -y kernel-3.10.0-1160.el7.x86_64

(10)附:官网镜像

如果使用官网的Elrepo镜像源。

步骤一:导入gpgkey文件

命令:rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org

步骤二:安装Elrepo镜像源

命令:yum install https://www.elrepo.org/elrepo-release-7.el7.elrepo.noarch.rpm

解析:执行步骤1和2后,生成两个本地文件:/etc/pki/rpm-gpg/RPM-GPG-KEY-elrepo.org和/etc/yum.repos.d/elrepo.repo;也就是完成了配置Elrepo镜像源操作。

步骤三:直接使用yum命令安装

3.内网环境升级内核

内网环境升级内核:主机无法连接公网ELRepo镜像源。

基础条件:内网中搭建一个ELRepo镜像源。

外网主机:hadoop200;内网主机hadoop201。

(1)在公网下载ELRepo镜像源

在外网主机hadoop200操作。

使用reposync下载阿里云开源镜像站的elrepo镜像仓库的rpm包。

步骤一:配置外网elrepo镜像源

编辑文件:vi /etc/yum.repos.d/elrepo.repo

编辑内容:

[elrepo]
name=elrepo
baseurl=https://mirrors.aliyun.com/elrepo/archive/kernel/el7/x86_64
gpgcheck=0
enabled=1

步骤二:下载rpm包

下载:reposync -r elrepo -p /home/mirror

(2)制作内网的ELRepo镜像源

在外网主机hadoop201操作。

步骤一: 安装httpd软件并启动httpd服务

步骤二: 把下载的rpm包拷贝到内网主机的/var/www/html/elrepo/目录

步骤三: createrepo生成镜像仓库元数据

命令:createrepo -v /var/www/html/elrepo

步骤四:配置内网镜像ELRepo镜像源源

编辑文件:vi /etc/yum.repos.d/elrepo.repo

编辑内容:

[elrepo-x86_64]
name=elrepo-x86_64
baseurl=http://192.168.19.201/elrepo
enabled=1
gpgcheck=0

步骤五:使用yum命令

(3)查镜像仓库中内核包

命令:yum list --showduplicate kernel*

(4)安装内核

版本:kernel-lt-5.4.218

命令:yum install -y kernel-lt-5.4.218

命令:yum install -y kernel-lt-devel-5.4.218

(5)查看内核编码

命令:

awk -F\' '$1=="menuentry " {print i++ " : " $2}' /etc/grub2.cfg

解析:0,1,2是内核编号。

(6)设置启动的内核

命令:grub2-set-default 0

解析:设置编码为0的内核,也就是刚刚安装的内核。

(7)重启操作系统

重启:reboot

(8)查看生效的版本

命令:hostnamectl

解析:在用版本Linux 5.4.218-1.el7.elrepo.x86_64。

(9)删除旧版包

查看已经安装的包:rpm -qa | grep kernel

删除指定包:yum remove -y 包名称

例如:yum remove -y kernel-3.10.0-1160.el7.x86_64

以上,感谢。

2022年12月13日