凉城旧巷
Python从入门到自闭,Java从自闭到放弃,数据库从删库到跑路,Linux从rm -rf到完犊子!!!
posts - 315,comments - 20,views - 38万

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、版本分类

官网https://www.kernel.org/

  • 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
    
posted on   凉城旧巷  阅读(1560)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
历史上的今天:
2022-05-05 服务器集群(六)——局域网yum和Epel源搭建
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

点击右上角即可分享
微信分享提示