有两种方法可以升级Centos内核版本。分别是:1. 下载linux内核源码,编译内核源码进行安装。2:下载官方的rpm包进行安装升级。下面分别进行说明。

一、使用下载内核源码进行升级

1.1、从官网下载我们需要升级的内核文件并解压

下载内核5.11的源码并解压,源码路径Index of /pub/linux/kernel/v5.x/,解压:tar -zxvf linux-5.11.tar.gz

解压到磁盘空间较大的分区中,对于v5.11版本的内核编译,建议至少要有10G以上的剩余磁盘空间,否则编译到一半发现磁盘空间不够。。。

1.2、复制红帽官方的kernel编译配置文件并更改名字

进入解压后的目录,参考下列命令执行:

cp /boot/config-3.10.0-1127.19.1.el7.x86_64 .config
yum install openssl openssl-devel
make defconfig
make menuconfig  //配置自己的需要的模块,例如增加vdpa,virtio的支持。
//make  bzImage    //开始编译,一路回车
make -j4
make modules_install    //安装模块
make install            //安装内核

如果install过程中磁盘空间不够,则需要在 /lib/modules 目录中腾出空间,如果当前系统中已经安装的内核版本较多,则可以清理掉不用的内核。

卸载指令:

yum remove 3.10.0-1127.19.1.el7.x86_64或者://删除多余的内核
cd /boot
rm -rf *3.10.0-123.4.4.el7*           //删除所有相关的文件
cd /lib/modules/
rm -rf 3.10.0-123.4.4.el7           //对应的文件夹
grub2-mkconfig -o /boot/grub2/grub.cfg

如果安装过程中提示/tmp路径下磁盘空间不够用,则在别的磁盘空间较大的目录新建tmp目录, 并改变tmp目录的路径,例如 使用如下命令:

export TMPDIR=/data/tmp

install安装完成后,在 /lib/modules 目录中多出了内核文件,例如:

1.3、安装内核完成,配置启动、重启验证

查看当前系统支持的内核版本:

$ cat /boot/grub2/grub.cfg |grep menuentry      //查看当前支持的内核版本显示如下类容
if [ x"${feature_menuentry_id}" = xy ]; thenmenuentry_id_option="--id"menuentry_id_option=""
export menuentry_id_option
menuentry 'CentOS Linux (5.11.6) 7 (Core)' --class centos ...
可以看到支持 CentOS Linux (5.11.6) 7 (Core) 内核的启动设置系统启动内核'CentOS Linux (5.11.0) 7 (Core)':
grub2-set-default 'CentOS Linux (5.11.0) 7 (Core)'  //设置内核启动版本,用单引号' '
grub2-editenv list                            //查看启动的内核版本
//重新编译引导(非UEFI系统上),编译之后,上面设置内核启动版本才有效
grub2-mkconfig -o /boot/grub2/grub.cfg        

如果上面设置默认的启动内核不起作用,做下面的设置再测试:

//查看可以启动的内核:
awk -F\' '$1=="menuentry " {print i++ " : " $2}' /etc/grub2.cfg
0 : CentOS Linux (4.14.91.el7.x86_64) 7 (Core)
1 : CentOS Linux (3.10.0-957.1.3.el7.x86_64) 7 (Core)
2 : CentOS Linux (0-rescue-7ebbe12473084ddea5bfebf0cf63627f) 7 (Core)//设置默认启动项
[root@host ~]# grub2-set-default 0
"0"对应上面list的编号0
最后 grub2-mkconfig -o /boot/grub2/grub.cfg 一般新内核在grub的list最高位所以直接
grub2-set-default 0
重启 一般就可以了,现在的版本以上操作完成后centos7的内核版本

如果按照前面的操作步骤,设置完默认启动的系统无效,则检查 /etc/default/grub 文件:

1. 文件位置
cat /etc/default/grub#属性名:进入默认启动项的等候时间
#值说明:单位:秒,默认10秒,-1表示一直等待
GRUB_TIMEOUT=10GRUB_DISTRIBUTOR="$(sed 's, release .*$,,g' /etc/system-release)"#属性名:默认启动项(就是我要的开机默认启动系统)
#值说明:
#   数字:从0开始(按照开机选择界面的顺序对应)
#   saved:默认上次的启动项
GRUB_DEFAULT=0
GRUB_DISABLE_SUBMENU=true
GRUB_TERMINAL_OUTPUT="console"#属性名:手动添加内核启动参数
#值说明:默认为空,可以添加你需要的参数,以 “name=value” 的格式添加,多个参数用空格隔开
#例如:GRUB_CMDLINE_LINUX="name1=value1 name2=value2"
GRUB_CMDLINE_LINUX="crashkernel=auto rhgb quiet intel_iommu=on iommu=pt default_hugepagesz=2M hugepagesz=2M hugepages=4"#属性名:是否创建修复模式菜单项
#值说明:true:禁用,false:使用,默认false
GRUB_DISABLE_RECOVERY="true"2. 执行 grub2-mkconfig -o /boot/grub2/grub.cfg
该命令作用是更新原来的/boot/grub/grub.cfg文件,但修改配置时不要修改/boot/grub/grub.cfg文件,而
是要修改/etc/default/grub文件,然后sudo update-grub

错误解决

1、升级内核后,启动过程中提示:

Entering emergency mode, Exit the shell to continue

如下图:

jornalctl 查看log:

错误原因:
failed to mount /sysroot.(无法挂载/ sysroot。)
Dependency failed for Initrd root File System.(Initrd根文件系统的依赖关系失败。)
Dependency failed for Reload configuration from the Real Root.(从实际根目录重新加载配置的依赖性失败。)

解决方法1:

从本机拷贝 /boot下已经存在的config文件,例如:我用5.11.16的源码安装,我可以

cp /boot/config-5.11.16-1.el7.elrepo.x86_64 /home/linux-5.11.16/.config

然后重新编译安装即可。

解决方法2:

死马当活马医,输入命令:xfs_repair -v -L /dev/dm-0
-L 选项指定强制日志清零,强制xfs_repair将日志归零,即使它包含脏数据(元数据更改)。

然后重启系统 ,重启后可以就可以正常模式了。

可参考:

编译linux内核源码(适用Fedora/RHEL/CentOS/Oracle Linux /Debian/Ubuntu/Arch Linux/Manjaro)
内核3.10编译升级到5.11

Linux之Centos8升级内核5.11.11版本

centos卸载内核_CentOS7编译内核安装与卸载

grub2的/etc/default/grub文件详解

linux 开机错误 Entering emergency mode. Exit the shell to continue.

二、使用rpm包升级

最新的rpm包:
https://elrepo.org/linux/kernel/el7/x86_64/RPMS/Centos 使用rpm包升级内核
1.官网下载最新的rpm包
wget https://elrepo.org/linux/kernel/el7/x86_64/RPMS/kernel-ml-5.15.13-1.el7.elrepo.x86_64.rpm安装内核:rpm -ivh kernel-ml-5.15.13-1.el7.elrepo.x86_64.rpm2.更新kernel-ml-headers
wget http://ftp.osuosl.org/pub/elrepo/kernel/el7/x86_64/RPMS/kernel-ml-headers-5.15.13-1.el7.elrepo.x86_64.rpm
安装headers:rpm -ivh kernel-ml-headers-5.15.13-1.el7.elrepo.x86_64.rpm3.更新kernel-ml-devel
wget http://ftp.osuosl.org/pub/elrepo/kernel/el7/x86_64/RPMS/kernel-ml-devel-5.15.13-1.el7.elrepo.x86_64.rpm
安装devel:rpm -ivh kernel-ml-devel-5.15.13-1.el7.elrepo.x86_64.rpm
到此,内核的升级已经完成,其中 kernel-ml-headers 和 kernel-ml-devel 是开发驱动程序等的时候用到的。如果不做开发,则可以不安装着两个包。4.升级gcc
1.安装centos-release-sclyum install centos-release-scl
2,安装 devtoolsetyum install devtoolset-9
3.激活scl enable devtoolset-9 bash
4.把下面的脚本放入/etc/init.d目录下 并给文件加上执行权限,开机启动#/bin/bashsource /opt/rh/devtoolset-9/enable

错误提示:

warning: kernel-ml-headers-5.11.16-1.el7.elrepo.x86_64.rpm: Header V4 DSA/SHA1 Signature, key ID baadae52: NOKEY
error: Failed dependencies:
        kernel-headers < 5.11.16-1.el7.elrepo conflicts with kernel-ml-headers-5.11.16-1.el7.elrepo.x86_64

解决方案:
则需要把原来的安装的 kernel-ml-headers-* 卸载掉,再重新安装,或者加参数 --force --nodeps可以安装,例如:

sudo rpm -ivh kernel-ml-headers-5.11.16-1.el7.elrepo.x86_64.rpm --force --nodeps

Centos 升级linux内核版本相关推荐

  1. 怎么升级linux的内核版本,升级linux内核版本

    1.安装公钥 sudo rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org 2.下载内核 sudo rpm -Uvh http://w ...

  2. openwrt查看linux内核,OpenWrt教程-如何升级linux内核版本

    使用官方的压缩包 修改版本号 include/kernel-version.mk 配置LINUX_VERSION-x.x, 其中x.x为linux内核大版本号 如4.1,"="后面 ...

  3. 如何升级Linux内核(RHEL/Fedora/CentOS升级内核 Debian/Ubuntu升级内核)

    转载来源:https://www.cyberciti.biz/faq/linux-kernel-upgrade-howto/ 如何升级Linux内核 升级我的Linux内核?我想升级内核而不从源代码编 ...

  4. CentOS 7 升级 Linux 内核

    升级 CentOS 内核参考资料 1 升级 CentOS 内核参考资料 2 通过 /proc 虚拟文件系统读取或配置内核 Linux 内核官网 CentOS 官网 1. 关于 Linux 内核 Lin ...

  5. linux3.14.57内核版本,CentOS和RedHat Linux内核版本的对应关系

    由于RedHat和CentOS的发行版本现在众多,所以我们应该知道CentOS和Redhat及Linux内核之间版本的对应关系对维护系统还是很有帮助的.对应的列表如下: Redhat 9.0----- ...

  6. redhat6.3的linux内核版本,1-6-RHEL6.3-内核升级(Red Hat Enterprise Linux Server6.3)@树袋飘零...

    本节介绍内容: 1.内核的概述 2.源码编译安装文件系统中的ntfs内核模块案例分析 1.内核的概述 Linux操作系统是用来跟硬件和用户程序互联的支撑平台,设备的驱动程序完全可以访问硬件,而设备的驱 ...

  7. 【Linux】一步一步学Linux——Linux内核版本和发行版本(03)

    00. 目录 文章目录 00. 目录 01. Linux内核版本 02. Linux内核官方网站 03. Linux发行版本 04. Linux发行版本介绍 4.1 Ubuntu 4.2 RedHat ...

  8. 升级Linux内核,并开启BBR加速

    (写在开始)VPS配置要求: linux内核版本在4.9及以上,低于4.9的需要升级至4.9及以上或者最新内核. 1.依次输入以下命令,升级内核: rpm --import https://www.e ...

  9. 手机linux内核版本了解,Linux内核版本介绍与查询

    Linux内核版本命名在不同时期有着不同的规范,在涉及到Linux版本问题时经常容易混淆,主线版本/稳定版/长期支持版本经常搞不清楚,本文主要记录下内核版本命名的规则以及如何查看Linux系统版本信息 ...

最新文章

  1. 计算机内存的故障,电脑内存故障的表现
  2. 谷歌警告:安卓再现高危漏洞 华为小米等可能被黑客完全控制
  3. win10下安装linux mint,win10系统安装Mint Linux 18的详细步骤
  4. 微服务架构(二):融入微服务的企业集成架构
  5. 如何在钉钉上开发自己的应用_神操作!老妈让我告诉老板,双十一买钉钉。
  6. SpringMVC异常处理机制-异常处理的思路
  7. 【跃迁之路】【651天】程序员高效学习方法论探索系列(实验阶段408-2018.11.24)...
  8. 如何设置Fedora默认从命令行启动?
  9. 信息学奥赛C++语言:火柴盒
  10. 【英语学习】【English L06】U05 Appointments L4 Making an appointment with a doctor
  11. Dart 基礎 - 3
  12. [转]使用T4模板批量生成代码
  13. 蓝桥杯“基础练习: 十六进制转十进制
  14. Debian下解决subclise插件在启动时报fail to load JavaHL Liberary
  15. 一个月的java工作总结
  16. 如何快速辨识四位数字贴片电阻阻值
  17. Python datetime日期相减
  18. 手机计算机16进制,16进制计算器安装方法 16进制计算器使用技巧
  19. /* global $ xxxx */ eslint注释
  20. iOS-内购注意 沙盒二次验证

热门文章

  1. VIEWGOOD(远古)数字化校园建设的应用方案
  2. 年度优秀项目呈献|江苏省泗洪县人民医院培训中心音视频系统建设
  3. 光伏产业 | 我国光伏银浆正逐步国产化替代,已打破国际垄断局面
  4. 卸载windowsxp正版验证补丁
  5. Discovery Studio简介
  6. 什么是微服务? 微服务概念
  7. QQ2011 Beta3优先体验(附官方体验地址及下载地址)
  8. 生产环境openssl漏洞-升级openssl到最新版本
  9. 内部表与外部表——头歌
  10. Oracle 视图(1)建立视图