Linux - 内核版本升级

测试时间:2024年5月15日,本文测试CentOS7.9的内核版本升级

测试结论:不要选择手动编译的方式!!!

 

一、使用第三方仓库(ELRepo)

(1)升级前内核查看(3.10.0-1160.el7.x86_64):uname -a 或者 uname -r

(2)添加ELRepo仓库

yum install -y https://www.elrepo.org/elrepo-release-7.0-4.el7.elrepo.noarch.rpm

(3)检查可安装的内核版本

yum --disablerepo="*" --enablerepo="elrepo-kernel" list available

(4)安装指定版本的内核

yum --enablerepo=elrepo-kernel install -y kernel-<version>

(5)更新引导加载器配置

# 设置开机从新内核启动
grub2-set-default "CentOS Linux (5.4.275-1.el7.elrepo.x86_64) 7 (Core)"

(6)可以检查一下 /boot/grub2/grub.cfg中menuentry的内容

(7)重启服务器,查看内核版本

 

 

二、手动编译和安装

  阿弥陀佛,施主回头是岸!

 

自测评价:太慢了,还容易出错。不推荐使用该方法

(1)查看操作系统以及内核的版本

(2)安装编译工具和依赖

yum groupinstall 'Development Tools'
yum install kernel-devel kernel-header elfutils-libelf-devel

(3)下载内核源码:https://kernel.org/

(4)解压并配置内核

# 解压
tar -xvf linux-5.4.275.tar.xz

# 配置内核
make olddefconfig

(5)编译内核 no! 不要往下走了

time make -j$(nproc)
make modules_install
make install

心态崩了......就像肉夹馍,吃到了虫子,并且还是半只... (ಥ﹏ಥ)

 

 

 

 

三、Q&A

Q1:手动编译和安装时,执行time make -j$(nproc)有如下报错

注意:根据以下解决报错后,重新执行time make -j$(nproc)

Answer:

1、构建过程中试图生成ORC(Optimized Restartable Sequences)元数据,但缺少必要的开发库。

解决:

  • yum install libelf-devel(Red Hat系统:Fedora、CentOS)
  • apt-get install libelf-dev(Debian系统:Ubuntu)
  • dnf install elfutils-libelf-devel(较新的Fedora/CentOS)

2、在编译过程中需要访问OpenSSL的头文件,所以需要安装OpenSSL的开发包

解决:yum install openssl-devel

 

Q2:在Q1问题解决后,再次执行time make -j$(nproc),发现有以下提示,但是编译过程并未中断。

  在执行 make 命令,尤其是在编译像操作系统内核这样的大型项目时,缺少花括号({})通常会导致代码结构不完整,从而影响代码的正确编译。花括号在C语言及类似语言中用于定义代码块的范围,比如循环体、条件语句块或函数体等。如果花括号缺失,编译器可能无法正确理解哪些语句应该被包含在特定的控制结构中。

对于内核升级过程,这确实是个问题,因为它可能会导致以下几个后果:

(1)编译错误:最直接的影响是编译失败,因为编译器会在遇到语法错误时停止编译过程。
(2)逻辑错误:即使某些情况下编译通过了(例如,如果缺少的花括号导致的逻辑块很小,而编译器默认将其与下一行关联),这也可能导致内核功能不按预期工作,因为执行的代码逻辑与设计意图不符。
(3)潜在的安全风险:代码逻辑的改变可能引入安全漏洞,特别是在内核这样对安全性要求极高的软件中。
(4)维护困难:代码的可读性和可维护性降低,给后续的开发和调试带来不必要的复杂度。

因此,如果在尝试编译内核时遇到提示缺少花括号的错误,应该首先修正这些语法错误,确保所有的控制结构(如if语句、for循环等)都有正确的花括号来界定其作用域。这不仅是修复编译错误所必需的,也是保证内核正确、安全运行的基础。

 

Q3:手动编译的方式升级内核问题可能会很多......(此处强烈建议不要使用该方式)

 

— 业精于勤荒于嬉,行成于思毁于随 —

posted @ 2024-05-15 17:03  HOUHUILIN  阅读(210)  评论(0编辑  收藏  举报