教你升级Centos内核(自编译方式)

AI 文章摘要
正在生成文章摘要,请稍候...
本文介绍了在CentOS 7系统下通过源码编译方式升级内核的详细步骤。 首先,文章阐述了升级内核的四大理由:提升性能、增强安全性、支持新硬件及获取新功能。随后,文章进入实操阶段,第一步是准备工作,包括安装SCL扩展源并替换为阿里镜像源,以及安装gcc、make等编译依赖,并启用devtoolset-11以获取更高版本的编译器。 接着是核心的编译过程:下载并解压Linux内核源码,复制现有系统的配置文件(config),并通过make nconfig进行可视化配置并保存。随后使用make命令进行编译和安装。安装完成后,需通过grub2-set-default设置新内核为默认启动项,最后重启生效。 文章最后补充了如何查看及卸载旧内核的方法,以及清理环境的建议。

前言:为什么要升级内核

内核是操作系统的核心,它的主要任务是管理硬件资源和提供系统服务。内核的更新通常有以下几个原因:

  • 性能提升:新的内核可能会提供更好的性能,包括更快的启动时间、更快的文件系统访问和更快的网络传输速度等。
  • 安全性提升:新的内核通常修复了已知的漏洞和安全问题,提高了系统的安全性和稳定性。
  • 新的硬件支持:新的内核可能支持更多的硬件设备和技术。
  • 新的功能支持:新的内核通常会提供新的功能和改进,例如更好的文件系统支持、更好的虚拟化支持等。

准备工作

安装SCL扩展源

yum -y install centos-release-scl

更换阿里源

echo > /etc/yum.repos.d/CentOS-SCLo-scl.repo
cat > /etc/yum.repos.d/CentOS-SCLo-scl.repo <<-EOF
[centos-sclo-rh]
name=CentOS-7 - SCLo rh
baseurl=http://mirrors.aliyun.com/centos/7/sclo/x86_64/rh/
gpgcheck=1
enabled=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-SIG-SCLo
[centos-sclo-sclo]
name=CentOS-7 - SCLo sclo
baseurl=http://mirrors.aliyun.com/centos/7/sclo/x86_64/sclo/
gpgcheck=1
enabled=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-SIG-SCLo
EOF
yum clean all && yum makecache && yum update -y

安装编译依赖

yum install -y gcc make git ctags ncurses-devel openssl-devel
yum install -y bison flex elfutils-libelf-devel bc
yum install -y devtoolset-11-gcc devtoolset-11-gcc-c++ devtoolset-11-binutils

启用SCL环境

scl enable devtoolset-11 bash
echo "source /opt/rh/devtoolset-11/enable" >>/etc/profile

编译过程

获取Kernel源码

可以访问https://mirrors.aliyun.com/linux-kernel/获取最新版本的Kernel

yum install -y wget && wget https://mirror.tuna.tsinghua.edu.cn/kernel/v6.x/linux-6.9.9.tar.xz && tar -xvJf linux-6.9.9.tar.xz && rm -rf linux-6.9.9.tar.xz && cd linux-6.9.9

查看当前Linux内核版本

uname -rs

20241114164447553-image

确保内核树足够干净

make clean && make mrproper

复制配置文件

如果你/boot目录下有两个config-xxxx的文件,选择版本比较大的,即可!

假设我的配置文件是/boot/config-3.10.0-1160.119.1.el7.x86_64 

cp /boot/config-3.10.0-1160.119.1.el7.x86_64

高级配置

y 是启用, n 是禁用, m 是需要时启用.
make menuconfig: 老的 ncurses 界面,被 nconfig 取代
make nconfig: 新的命令行 ncurses 界面

即使你不配置任何东西,你也需要进入保存一下!

进入后按ESC,选择save

20241114170401412-image

编译并安装内核

编译安装大概需要30-40分钟,请耐心等待!

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

20241114170519511-image

20241114173156738-image

如果卡在 INSTALL /boot 耐心等待即可

设置启动项

如果新内核有问题,可以通过更改启动顺序改回原来内核

# 查看grub启动顺序
awk -F\' '$1=="menuentry " {print $2}' /etc/grub2.cfg
# 设置启动顺序
grub2-set-default 0
# 重启生效
reboot

20241114173454454-image

卸载内核

查看内核版本

uname -rs

20241114173628493-image

查看所有内核

rpm -qa | grep kernel

20241114173741467-image

删除内核

请在确定系统无其他问题情况下执行
yum remove -y kernel-*
reboot

20241114174119813-image

清理环境:

rm -rf ~/linux*

Ok!下课!(本文编写耗时3小时)

参考:

CentOS 7升级内核的三种方式(yum/rpm/源码) – Noleaf – 博客园

Centos7下升级gcc/g++版本(简单 + 避坑)_devtoolset-11-gcc-CSDN博客


广告:

© 版权声明
THE END
喜欢就支持一下吧
点赞7打赏 分享
评论 共3条

请登录后发表评论