Linux Centos7内核升级
现在主流的centos应该都是centos7了,从centos7.2开始,内核版本为3.10,越往后内核版本越高。高版本的内核修复了许多的低版本内核的bug,因此,系统是需要提高内核版本的,从而提高安全性,稳定性,并增加更多的功能。
Linux是支持多版本内核共存的,无非是系统启动的时候应用哪个版本内核而已。
一、关于内核
[root@centos7 ~]# uname -r
3.10.0-1127.19.1.el7.x86_64
查询得到的版本号为:3.10.0-1127.19.1.el7.x86_64
-
第一个组数字:3, 主版本号
-
第二个组数字:10, 次版本号,当前为稳定版本,一般这个数字为偶数表示稳定,奇数表示在开发版本,通常开发版本不做生产使用。
-
第三个组数字:0, 修订版本号
-
第四个组数字:1127.19.1,表示发型版本的补丁版本
-
el7:则表示我正在使用的内核是 RedHat / CentOS 系列发行版专用内核 ,centos7
-
x86_64:采用的是适用64位的CPU的操作系统。
二、内核版本
1、版本分类
- prepatch:prepatch 或 “RC” 内核是主要的内核预发行版本,主要针对内核开发人员和 Linux 爱好者。必须从源代码进行编译,并且通常包含必须在可以放入稳定版本之前进行测试的新功能。Prepatch 内核由 Linus Torvalds 维护和发布。
- mainline:mainline 主线由 Linus Torvalds 维护。这个版本的内核会引入所有新功能。新的 Mainline 内核每 2-3 个月发布一次。
- stable:每个主线内核被发布后,即被认为是“stable”。任何对 stable 内核的 BUG 修复都会从 Mainline 主线中回溯并由指定的 stable 内核维护人员使用。 在下一个主线内核可用之前,通常只有几个 BUG 修复内核版本 - 除非它被指定为“longterm maintenance kernel(长期维护内核)”。stable 内核更新按需发布,通常每月 2-3 次。
- longterm:通常会提供几个“longterm maintenance”内核版本,用于修复旧版内核的 BUG。这些内核只会修复重大 BUG,并且不会频繁发布版本。
2、内核选择
- 从版本分类中可知,
longterm
版本时稳定,并且大部分bug已经修复,不会频繁发布更新的版本,因此选择这种类型的内核更加稳定。 - 通常情况下,Linux是可以多版本内核共存的,因此不建议删除旧版本的内核,仅仅安装新版本内核后,grub选择新版本内核进入系统并使用即可
三、内核升级
(一)yum升级安装的方式(相对简单)
1、查看当前版本
uname -r
2、升级内核
ELRepo是第三方库,可以通过该库升级内核
1)导入elrepo源的秘钥
rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org
2)启用elrepo源
rpm -Uvh http://www.elrepo.org/elrepo-release-7.0-2.el7.elrepo.noarch.rpm
3)查看可装内核
yum --disablerepo="*" --enablerepo="elrepo-kernel" list available
4)安装内核
- 这里选择
lt
的内核,即longterm
的内核
yum --enablerepo=elrepo-kernel install -y kernel-lt
yum --enablerepo=elrepo-kernel install -y kernel-lt-devel
5)重启机器
重启机器,选择内核
3、修改默认版本内核
-
重启机器时,可见初始化内核的列表
-
编辑
/etc/default/grub
,设置GRUB_DEFAULT=0
,即使用列表第一个作为默认内核。
-
注意:一定要执行命令,使修改生效
grub2-mkconfig -o /boot/grub2/grub.cfg
(二)使用官方源码包编译安装的方式(相对复杂,待闲时验证)
源码包下载地址:https://mirrors.edge.kernel.org/pub/linux/kernel/
1、下载解压
wget https://mirrors.edge.kernel.org/pub/linux/kernel/v5.x/linux-5.15.108.tar.xz --no-check-certificate
tar -xvf linux-5.15.108.tar.xz
2、安装环境
- 安装编译依赖并升级所有软件
yum install gcc make ncurses-devel openssl-devel flex bison elfutils-libelf-devel -y
3、准备工作
[root@localhost /boot]# pwd
/boot
[root@localhost /boot]# ls | grep config
config-3.10.0-1127.el7.x86_64
config-6.3.0-1.el7.elrepo.x86_64
[root@localhost /boot]# cd /data/linux-5.15.108
# 如果不是第一次编译,则需要清除残留的.config 和.o 文件
[root@localhost /data/kernel/linux-5.4.242]# make mrproper
# 复制并改名为.config,使用原来的配置文件
[root@localhost /data/kernel/linux-5.4.242]# cp /boot/config-3.10.0-1127.el7.x86_64 .config
4、安装内核
- make config(基于文本的最为传统的配置界面,不推荐使用)
- make menuconfig(基于文本选单的配置界面,字符终端下推荐使用)
- make xconfig(基于图形窗口模式的配置界面,Xwindow下推荐使用)
- make oldconfig(如果只想在原来内核配置的基础上修改一些小地方,会省去不少麻烦)
1)配置内核
[root@localhost /data/kernel/linux-5.4.242]# make menuconfig
- 对每一个选项,都可以回答y、m、n,y表示将相应特性的支持或驱动程序编译进内核
- m表示将相应特性的支持或驱动程序编译成可加载模块,在需要的时候,手动添加进内核中
- n表示不提供相应特性或驱动程序的支持。
- 一般采用默认设置即可:选择
<save>
保存设置,然后退出
2)编译内核
# nproc 表示自动获取cpu内核数量
[root@localhost /data/kernel/linux-5.4.242]# make -j `nproc` && make modules_install && make install
5、修改默认版本内核
-
重启机器时,可见初始化内核的列表
-
编辑
/etc/default/grub
,设置GRUB_DEFAULT=0
,即使用列表第一个作为默认内核。
-
注意:一定要执行命令,使修改生效
grub2-mkconfig -o /boot/grub2/grub.cfg
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
2022-05-05 服务器集群(六)——局域网yum和Epel源搭建