首页 > 系统相关 >CentOS7 升级内核记录

CentOS7 升级内核记录

时间:2024-06-24 10:12:22浏览次数:31  
标签:升级 kernel elrepo CentOS7 64 内核 root el7 localhost

为什么要升级kernel

  • 安全性提升:新版本的kernel通常修复了旧版本中的安全漏洞。
  • 性能改进:升级可能包含对硬件支持的改进,从而提高系统性能。
  • 新功能:新版本可能引入了新的功能或改进了现有功能。
  • 更好的兼容性:新kernel可能会更好地支持最新的硬件和软件。

但是,升级kernel也可能带来风险,比如与现有软件的兼容问题。所以在升级前应该仔细考虑和测试。

测试环境

# 最小化安装 CentOS-7-x86_64-Minimal-1804.iso
[root@localhost-01 ~]# cat /etc/redhat-release
CentOS Linux release 7.5.1804 (Core)

[root@localhost-01 ~]# uname -r
3.10.0-862.el7.x86_64

YUM 升级内核

小版本升级

# 查看当前和可升级版本
[root@localhost-01 ~]# yum list kernel | grep kernel
Repodata is over 2 weeks old. Install yum-cron Or run: yum makecache fast
kernel.x86_64                  3.10.0-862.el7                          @anaconda
kernel.x86_64                  3.10.0-1160.119.1.el7                   @updates

# 小版本升级(3.10.0-862.el7 --> 3.10.0-1160.119.1.el7 )
[root@localhost-01 ~]# yum update kernel -y

# 验证
[root@localhost-01 ~]# cat /etc/redhat-release
CentOS Linux release 7.5.1804 (Core)

[root@localhost-01 ~]# uname -r
3.10.0-1160.119.1.el7.x86_64

内核下载地址

时间:2024-06

大版本升级

内核种类:
kernel-ml 中的ml是英文【 mainline stable 】的缩写,最新的稳定主线版本。
kernel-lt 中的lt是英文【 long term support 】的缩写,长期支持版本。

# 系统信息
[root@localhost-01 ~]# cat /etc/redhat-release
CentOS Linux release 7.5.1804 (Core)
[root@localhost-01 ~]# uname -r
3.10.0-862.el7.x86_64

# 更新yum仓库
# 如果只更新软件包可执行:yum -y update --exclude=kernel*
[root@localhost-01 ~]# yum -y update

# 导入ELRepo仓库的公共密钥
[root@localhost-01 ~]# rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org

# 安装ELRepo仓库的yum源
[root@localhost-01 ~]# yum install https://www.elrepo.org/elrepo-release-7.el7.elrepo.noarch.rpm

# 查看可用内核版本
[root@localhost ~]# yum list available --disablerepo=* --enablerepo=elrepo-kernel | grep kernel*
 * elrepo-kernel: mirrors.tuna.tsinghua.edu.cn
kernel-lt.x86_64                        5.4.278-1.el7.elrepo       elrepo-kernel
kernel-lt-devel.x86_64                  5.4.278-1.el7.elrepo       elrepo-kernel
kernel-lt-doc.noarch                    5.4.278-1.el7.elrepo       elrepo-kernel
kernel-lt-headers.x86_64                5.4.278-1.el7.elrepo       elrepo-kernel
kernel-lt-tools.x86_64                  5.4.278-1.el7.elrepo       elrepo-kernel
kernel-lt-tools-libs.x86_64             5.4.278-1.el7.elrepo       elrepo-kernel
kernel-lt-tools-libs-devel.x86_64       5.4.278-1.el7.elrepo       elrepo-kernel
kernel-ml.x86_64                        6.9.5-1.el7.elrepo         elrepo-kernel
kernel-ml-devel.x86_64                  6.9.5-1.el7.elrepo         elrepo-kernel
kernel-ml-doc.noarch                    6.9.5-1.el7.elrepo         elrepo-kernel
kernel-ml-headers.x86_64                6.9.5-1.el7.elrepo         elrepo-kernel
kernel-ml-tools.x86_64                  6.9.5-1.el7.elrepo         elrepo-kernel
kernel-ml-tools-libs.x86_64             6.9.5-1.el7.elrepo         elrepo-kernel
kernel-ml-tools-libs-devel.x86_64       6.9.5-1.el7.elrepo         elrepo-kernel
perf.x86_64                             5.4.278-1.el7.elrepo       elrepo-kernel
python-perf.x86_64                      5.4.278-1.el7.elrepo       elrepo-kernel

# 当前内核信息
[root@localhost-01 ~]# rpm -qa | grep kernel
kernel-3.10.0-1160.119.1.el7.x86_64
kernel-tools-libs-3.10.0-1160.119.1.el7.x86_64
kernel-tools-3.10.0-1160.119.1.el7.x86_64
kernel-3.10.0-862.el7.x86_64

# 选择适合版本,这里选择安装最新版 lt 版本(kernel-lt-5.4.278)
[root@localhost-01 ~]# yum --enablerepo=elrepo-kernel install kernel-lt -y

# ===========================================================================================
# 若需安装旧版本(kernel-lt-5.4.203为例)执行:
# wget https://mirrors.coreix.net/elrepo-archive-archive/kernel/el7/x86_64/RPMS/kernel-lt-5.4.203-1.el7.elrepo.x86_64.rpm
# yum localinstall kernel-lt-5.4.203-1.el7.elrepo.x86_64.rpm
# ===========================================================================================

# 查看当前默认内核启动
[root@localhost-01 ~]# grub2-editenv list
saved_entry=CentOS Linux (3.10.0-1160.119.1.el7.x86_64) 7 (Core)

# 查看当前内核启动可选项
[root@localhost-01 ~]# awk -F\' '$1=="menuentry " {print i++ " : " $2}' /etc/grub2.cfg
0 : CentOS Linux (5.4.278-1.el7.elrepo.x86_64) 7 (Core)
1 : CentOS Linux (3.10.0-1160.119.1.el7.x86_64) 7 (Core)
2 : CentOS Linux (3.10.0-862.el7.x86_64) 7 (Core)
3 : CentOS Linux (0-rescue-c4ad8cdbfdb44ce190f1c662815d35f4) 7 (Core)

# 修改默认启动顺序
[root@localhost-01 ~]# ls -l /etc/grub2.cfg
lrwxrwxrwx 1 root root 22 Jun 17 15:23 /etc/grub2.cfg -> ../boot/grub2/grub.cfg

[root@localhost-01 ~]# grub2-set-default 'CentOS Linux (5.4.278-1.el7.elrepo.x86_64) 7 (Core)'
[root@localhost-01 ~]# grub2-editenv list
saved_entry=CentOS Linux (5.4.278-1.el7.elrepo.x86_64) 7 (Core)
 或
[root@localhost-01 ~]# grub2-set-default 0
[root@localhost-01 ~]# grub2-editenv list
saved_entry=0

# 重启生效
[root@localhost-01 ~]# reboot

# 验证结果
[root@localhost-01 ~]# cat /etc/redhat-release
CentOS Linux release 7.9.2009 (Core)
[root@localhost-01 ~]# uname -r
5.4.278-1.el7.elrepo.x86_64

删除旧版本内核(可选)

[root@localhost-01 ~]# rpm -qa | grep kernel
kernel-lt-5.4.278-1.el7.elrepo.x86_64
kernel-lt-tools-5.4.278-1.el7.elrepo.x86_64
kernel-3.10.0-1160.119.1.el7.x86_64
kernel-3.10.0-862.el7.x86_64
kernel-lt-tools-libs-5.4.278-1.el7.elrepo.x86_64

[root@localhost-01 ~]# yum remove kernel-3.10.0-862.el7.x86_64 kernel-3.10.0-1160.119.1.el7.x86_64

编译安装升级至指定内核

  • 源码清华镜像站地址
    linux-4.xx.xx.tar.xz
    linux-4.xx.xx.tar.gz
    这两个格式都可以的,tar.xz压缩率更高,文件更小。
# 准备编译环境
[root@localhost ~]# yum install -y gcc make git ctags ncurses-devel openssl-devel
[root@localhost ~]# yum install -y bison flex elfutils-libelf-devel bc wget

# 下载内核源码,并解压缩
[root@localhost ~]# wget https://mirror.tuna.tsinghua.edu.cn/kernel/v4.x/linux-4.19.316.tar.xz
[root@localhost ~]# tar -xf linux-4.19.316.tar.xz
[root@localhost ~]# cd linux-4.19.316
[root@localhost linux-4.19.316]# make clean && make mrproper

#步骤AB,二选一执行
#(可选步骤A: 也可通过现有内核参数去生成新的配置参数文件.config)
[root@localhost linux-4.19.316]# cp /boot/config-3.10.0-1160.el7.x86_64 ./.config
[root@localhost linux-4.19.316]# make oldconfig     (长按回车:保持默认)

#(可选步骤B: 可直接通过menuconfig 增减内核模块或组件,选择后可查看.config参数文件的更新情况)
[root@localhost linux-4.19.316]# make menuconfig

如不修改,则按Tab键至< Save > 回车,下一步选择 < Exit >


# 编译内核
[root@localhost linux-4.19.316]# make -j 4 all

# 说明:
# -j 4: 将使用4核CPU资源去编译内核(grep 'processor' /proc/cpuinfo | sort -u | wc -l)
# all: 编译所有选择模块

# 安装内核
[root@localhost linux-4.19.316]# make modules_install install

# 查看当前内核启动可选项
[root@localhost ~]# awk -F\' '$1=="menuentry " {print i++ " : " $2}' /etc/grub2.cfg
0 : CentOS Linux (4.19.316) 7 (Core)
1 : CentOS Linux (3.10.0-862.el7.x86_64) 7 (Core)
2 : CentOS Linux (0-rescue-49ac73bb3441491996c90d9285ffbc3d) 7 (Core)

# 修改默认启动顺序
[root@localhost ~]# grub2-set-default 'CentOS Linux (4.19.316) 7 (Core)'
[root@localhost ~]# grub2-editenv list
saved_entry=CentOS Linux (4.19.316) 7 (Core)
 或
[root@localhost ~]# grub2-set-default 0
[root@localhost ~]# grub2-editenv list
saved_entry=0

# 重启生效
[root@localhost ~]# reboot

# 验证结果
[root@localhost ~]# cat /etc/redhat-release
CentOS Linux release 7.9.2009 (Core)
[root@localhost ~]# uname -r
4.19.316

标签:升级,kernel,elrepo,CentOS7,64,内核,root,el7,localhost
From: https://www.cnblogs.com/zhangwencheng/p/18252574

相关文章

  • 虚拟机centos7,无法ping通百度
    参考:centos7虚拟机静态ip设置详细教程(超全超详细亲测有效)_centos7设置静态ip-CSDN博客一、虚拟机需要设置这个网络编辑器,网络选为NAT模式。 打开命令行,执行:vim/etc/sysconfig/network-scripts/ifcfg-ens33TYPE="Ethernet"PROXY_METHOD="none"BROWSER_ONLY="no"BOOTPR......
  • centos7禁止 SSH 登录失败超过30次的IP
    使用firewalld禁止SSH登录失败超过30次的IP概述在CentOS7中,一般默认安装了firewalld动态添加失败登录超过30次的IP地址到防火墙规则中,禁止这些IP的访问。编写和使用脚本,通过firewalld来实现;注意iptables不适用,但大差不差。步骤1.安装firewalld确保firewalld已......
  • 功能齐全、性能优越的基于 S.M.A.R.T. 技术的接口系统。这不仅能够帮助用户监控和分析
    开发一个基于S.M.A.R.T.(Self-Monitoring,Analysis,andReportingTechnology)技术的接口涉及多个步骤,包括理解S.M.A.R.T.技术、设计接口、实现功能模块以及测试和部署。以下是一个初级开发大纲,帮助你逐步完成这个项目。1.项目简介1.1目标开发一个能够与硬盘的S.M.A.R.T......
  • centos7&国产uos&银河麒麟系统安装MYSQL
     1.解压  tar -zxvf mysql-5.7.34-linux-glibc2.12-x86_64.tar.gz mv mysql-5.7.34-linux-glibc2.12-x86_64 mysql 2. 先检查是否有mysql用户组和mysql用户,没有就添加有就忽略:groupsmysql  添加用户组和用户groupaddmysql&&useradd-r-gmys......
  • .Net Core8下Elasticsearch7.x+Nest升级到Elasticsearch8.x+Elastic.Clients.Elastics
    背景Elasticsearch升级到8.11了,对应的客户端插件也跟着升级,以为会兼容Nest的语法,发现自己TooYoungTooSimple!没办法,只能去官网找,结果官网只有最基本的增、删、改、查,只能继续查资料,发现网上资料很少,避免大家少走弯路,这里做个简单的分享。分享1.ElasticsearchClientvaresS......
  • Centos7.5删除virbr0网卡
    1.ifconfig查看linux网卡ip[root@localhost~]#ifconfigens33:flags=4163<UP,BROADCAST,RUNNING,MULTICAST>mtu1500inet192.168.44.128netmask255.255.255.0broadcast192.168.44.255inet6fe80::27ec:9128:8fca:ee44prefixlen64scopeid0x20<link>ether0......
  • centos7系统上安装MySQL8.4图文教程
    本章教程,主要记录如何在CentOS7系统上安装MySQL8.4的详细步骤。一、查看当前系统版本cat/etc/centos-release二、安装步骤1、创建mysql目录cd/usr/local&&mkdirmysql&&cdmysql2、安装rpm包yuminstallhttps://repo.mysql.com//mysql84-community-relea......
  • 【RK3588】Android系统OTA升级详细流程(一)
    OTA(overtheair)升级是Android系统提供的标准软件升级方式。它功能强大,提供了完全升级(完整包)、增量升级模式(差异包),既可以通过本地升级,也可以通过网络升级。本文我们将编译三个版本的Android镜像,分别为V1.0.0版本、V1.0.1版本以及V1.0.2版本,其中V1.0.0版本作为基础版本直接烧录......
  • SElinux内核态的实现-avc、avd的设计篇
    文章目录avc_has_perm的处理逻辑[部分]av_decision访问向量决策的设计allowed、auditallow、auditdenyseqnoflagsavc_has_perm_noaudit检查点函数函数原型参数解释函数逻辑selinux检查结果缓存AVC的设计与实现structselinux_avcstructavc_cacheavc的初始化avc_s......
  • CentOS7安装Gitlab13详细步骤
    环境配置CentOS Version7.6GitlabVersiongitlab-ce-13.12.15-ce.0.el7.x86_64下载rpm包Gitlab历史版本下载地址:https://packages.gitlab.com/gitlab/gitlab-ce(我在这里下载的gitlab-ce-13.12.15-ce.0.el7.x86_64.rpm建议使用下载工具进行下载)wgethttps://d20......