linux内核离线升级步骤详解【亲测可用】

简介: linux内核离线升级步骤详解【亲测可用】

由于种种原因,linux的内核版本需要升级,但由于生产原因往往不能在线升级,在此记录笔者本人昨晚的的离线升级步骤,亲测可用。
我们知道,红帽和CentOS同源同宗,内核升级步骤也是一样的。

■ Red Hat / CentOS 7最新内核下载

内核版本 5.4.214 于 2022-9-18 发布,lt 是指长期支持版本 long term

wget https://mirrors.aliyun.com/elrepo/kernel/el7/x86_64/RPMS/kernel-lt-5.4.214-1.el7.elrepo.x86_64.rpm --no-check-certificate

在以上地址可以下载各个版本的内核,再次向阿里云、网易、163、清华等这些开源镜像提供者致敬,不愧大家风范,方便了国内用户对开源软件的使用。

■ 内核安装

yum localinstall kernel-lt-5.4.214-1.el7.elrepo.x86_64.rpm
可能有包依赖关系,视情况配置yum源,或下载指定包

■ 此时查看所有的内核

awk -F\' '$1=="menuentry " {print i++ " : " $2}' /boot/grub2/grub.cfg
---【Red Hat】输出类似如下:
0 : Red Hat Enterprise Linux Server (5.4.214-1.el7.elrepo.x86_64) 7.3 (Maipo)
1 : Red Hat Enterprise Linux Server (3.10.0-514.el7.x86_64) 7.3 (Maipo)
2 : Red Hat Enterprise Linux Server (0-rescue-13fa607805964427bb4a2297f3619e6e) 7.3 (Maipo)
---【CentOS】输出类似如下:
0 : CentOS Linux (5.4.214-1.el7.elrepo.x86_64) 7 (Core)
1 : CentOS Linux (3.10.0-1160.15.2.el7.x86_64) 7 (Core)
2 : CentOS Linux (3.10.0-957.el7.x86_64) 7 (Core)
3 : CentOS Linux (0-rescue-6d425900e59b4ef18c98680ce9a348dd) 7 (Core)

可见已有多个内核,包括原内核 1 与新安装的内核 0

■ 内核配置

新内核安装后,需修改os已有的内核启动顺序,默认启动的顺序应该为1,升级以后内核是往前面插入为0,则需设置GRUB_DEFAULT=0。
默认的配置文件 /etc/default/grub ,参数 GRUB_DEFAULT=saved

vim /etc/default/grub
GRUB_DEFAULT=saved
需改为:
GRUB_DEFAULT=0

■ 重新生成grub配置文件

grub2-mkconfig -o /boot/grub2/grub.cfg
---输出类似如下:
Generating grub configuration file ...
Found linux image: /boot/vmlinuz-5.4.214-1.el7.elrepo.x86_64
Found initrd image: /boot/initramfs-5.4.214-1.el7.elrepo.x86_64.img
Found linux image: /boot/vmlinuz-3.10.0-514.el7.x86_64
Found initrd image: /boot/initramfs-3.10.0-514.el7.x86_64.img
Found linux image: /boot/vmlinuz-0-rescue-13fa607805964427bb4a2297f3619e6e
Found initrd image: /boot/initramfs-0-rescue-13fa607805964427bb4a2297f3619e6e.img
done

■ 然后重启系统生效

reboot

■ 在 Red Hat 7.3 测试内核升级

[root@node5 ~]# cat /etc/*release
Red Hat Enterprise Linux Server release 7.3 (Maipo)

【升级前】

[root@node5 ~]# uname -a
Linux node5 3.10.0-514.el7.x86_64 #1 SMP Wed Oct 19 11:24:13 EDT 2016 x86_64 x86_64 x86_64 GNU/Linux
[root@node5 ~]# cat /proc/version
Linux version 3.10.0-514.el7.x86_64 (mockbuild@x86-039.build.eng.bos.redhat.com) (gcc version 4.8.5 20150623 (Red Hat 4.8.5-11) (GCC) ) #1 SMP Wed Oct 19 11:24:13 EDT 2016
[root@node5 ~]# uname -rs
Linux 3.10.0-514.el7.x86_64

【升级后】

[root@node5 ~]# uname -a
Linux node5 5.4.214-1.el7.elrepo.x86_64 #1 SMP Sat Sep 17 11:09:50 EDT 2022 x86_64 x86_64 x86_64 GNU/Linux
[root@node5 ~]# cat /proc/version
Linux version 5.4.214-1.el7.elrepo.x86_64 (mockbuild@Build64R7) (gcc version 9.3.1 20200408 (Red Hat 9.3.1-2) (GCC)) #1 SMP Sat Sep 17 11:09:50 EDT 2022
[root@node5 ~]# uname -rs
Linux 5.4.214-1.el7.elrepo.x86_64

■ 在 CentOS 7.6 测试内核升级

[root@node3:0 ~]# cat /etc/*release
CentOS Linux release 7.6.1810 (Core)

【升级前】

[root@node3:0 ~]# uname -a
Linux node3 3.10.0-1160.15.2.el7.x86_64 #1 SMP Wed Feb 3 15:06:38 UTC 2021 x86_64 x86_64 x86_64 GNU/Linux
[root@node3:0 ~]# cat /proc/version
Linux version 3.10.0-1160.15.2.el7.x86_64 (mockbuild@kbuilder.bsys.centos.org) (gcc version 4.8.5 20150623 (Red Hat 4.8.5-44) (GCC) ) #1 SMP Wed Feb 3 15:06:38 UTC 2021
[root@node3:0 ~]# uname -rs
Linux 3.10.0-1160.15.2.el7.x86_64

【升级后】

[root@node3:0 ~]# uname -a
Linux node3 5.4.214-1.el7.elrepo.x86_64 #1 SMP Sat Sep 17 11:09:50 EDT 2022 x86_64 x86_64 x86_64 GNU/Linux
[root@node3:0 ~]# cat /proc/version
Linux version 5.4.214-1.el7.elrepo.x86_64 (mockbuild@Build64R7) (gcc version 9.3.1 20200408 (Red Hat 9.3.1-2) (GCC)) #1 SMP Sat Sep 17 11:09:50 EDT 2022
[root@node3:0 ~]# uname -rs
Linux 5.4.214-1.el7.elrepo.x86_64
目录
相关文章
|
13天前
|
Linux C语言
Linux内核队列queue.h
Linux内核队列queue.h
|
1月前
|
存储 Shell Linux
【Shell 命令集合 系统设置 】Linux 生成并更新内核模块的依赖 depmod命令 使用指南
【Shell 命令集合 系统设置 】Linux 生成并更新内核模块的依赖 depmod命令 使用指南
31 0
|
1月前
|
Shell Linux C语言
【Shell 命令集合 系统设置 】⭐Linux 卸载已加载的内核模块rmmod命令 使用指南
【Shell 命令集合 系统设置 】⭐Linux 卸载已加载的内核模块rmmod命令 使用指南
29 1
|
6天前
|
算法 Linux 调度
深入理解Linux内核的进程调度机制
【4月更文挑战第17天】在多任务操作系统中,进程调度是核心功能之一,它决定了处理机资源的分配。本文旨在剖析Linux操作系统内核的进程调度机制,详细讨论其调度策略、调度算法及实现原理,并探讨了其对系统性能的影响。通过分析CFS(完全公平调度器)和实时调度策略,揭示了Linux如何在保证响应速度与公平性之间取得平衡。文章还将评估最新的调度技术趋势,如容器化和云计算环境下的调度优化。
|
11天前
|
算法 Linux 调度
深度解析:Linux内核的进程调度机制
【4月更文挑战第12天】 在多任务操作系统如Linux中,进程调度机制是系统的核心组成部分之一,它决定了处理器资源如何分配给多个竞争的进程。本文深入探讨了Linux内核中的进程调度策略和相关算法,包括其设计哲学、实现原理及对系统性能的影响。通过分析进程调度器的工作原理,我们能够理解操作系统如何平衡效率、公平性和响应性,进而优化系统表现和用户体验。
19 3
|
18天前
|
负载均衡 算法 Linux
深度解析:Linux内核调度器的演变与优化策略
【4月更文挑战第5天】 在本文中,我们将深入探讨Linux操作系统的核心组成部分——内核调度器。文章将首先回顾Linux内核调度器的发展历程,从早期的简单轮转调度(Round Robin)到现代的完全公平调度器(Completely Fair Scheduler, CFS)。接着,分析当前CFS面临的挑战以及社区提出的各种优化方案,最后提出未来可能的发展趋势和研究方向。通过本文,读者将对Linux调度器的原理、实现及其优化有一个全面的认识。
|
18天前
|
安全 Ubuntu Linux
Linux远程访问Windows实现步骤
在Windows上启用远程桌面连接并获取IP地址后,Linux用户需安装SSH客户端( Debian系:`sudo apt-get update; sudo apt-get install openssh-client`,RPM系:`sudo yum install openssh-clients`)。然后使用命令`ssh 用户名@Windows_IP地址`连接,其中`用户名`和`Windows_IP地址`按实际情况填写。
14 4
|
18天前
|
Ubuntu Linux
Linux查看内核版本
在Linux系统中查看内核版本有多种方法:1) 使用`uname -r`命令直接显示版本号;2) 通过`cat /proc/version`查看内核详细信息;3) 利用`dmesg | grep Linux`显示内核版本行;4) 如果支持,使用`lsb_release -a`查看发行版及内核版本。
36 6
|
21天前
|
Linux 内存技术
Linux内核读取spi-nor flash sn
Linux内核读取spi-nor flash sn
16 1
|
21天前
|
存储 Ubuntu Linux
制作一个嵌入式Linux的应用程序升级文件
制作一个嵌入式Linux的应用程序升级文件
12 2