记录: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。
(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是内核编号。
解析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。
(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日