安装完操作系统以后,我们一般都会执行 update 来升级系统组件,其中就包含了系统的内核。但是,这种在线升级,往往只能实现内核版本的小版本升级。在某些情况下,我们需要为某些特殊的组件(安装和运行的兼容性)来跨大版本升级 Linux 系统的内核。

        下面就为大家提供一种跨大版本升级Linux系统内核的方式,该方式在安装和运行了Kubernetes集群的多台虚拟机中得到了成功实施验证。

升级Linux系统内核
步骤 1:检查已安装的内核版本

uname -rs

如:Linux 3.10.0-1127.19.1.el7.x86_64

步骤 2:在 CentOS 7 中升级内核

CentOS 允许使用 ELRepo,这是一个第三方仓库,可以将内核升级到最新版本。

在 CentOS 7 上启用 ELRepo 仓库,运行如下命令:

# 导入该源的秘钥
rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org

# 启用该源仓库
rpm -Uvh http://www.elrepo.org/elrepo-release-7.0-5.el7.elrepo.noarch.rpm

# 查看有哪些内核版本可供安装
yum --disablerepo="*" --enablerepo="elrepo-kernel" list available

已加载插件:fastestmirror
Loading mirror speeds from cached hostfile
 * elrepo-kernel: mirrors.neusoft.edu.cn
elrepo-kernel                                                                                                                          | 3.0 kB  00:00:00     
elrepo-kernel/primary_db                                                                                                       | 2.0 MB  00:00:01     
可安装的软件包
kernel-lt.x86_64                                                         5.4.144-1.el7.elrepo                           elrepo-kernel
kernel-lt-devel.x86_64                                               5.4.144-1.el7.elrepo                           elrepo-kernel
kernel-lt-doc.noarch                                                   5.4.144-1.el7.elrepo                           elrepo-kernel
kernel-lt-headers.x86_64                                           5.4.144-1.el7.elrepo                           elrepo-kernel
kernel-lt-tools.x86_64                                                5.4.144-1.el7.elrepo                           elrepo-kernel
kernel-lt-tools-libs.x86_64                                         5.4.144-1.el7.elrepo                           elrepo-kernel
kernel-lt-tools-libs-devel.x86_64                               5.4.144-1.el7.elrepo                           elrepo-kernel
kernel-ml.x86_64                                                      5.14.1-1.el7.elrepo                             elrepo-kernel
kernel-ml-devel.x86_64                                            5.14.1-1.el7.elrepo                             elrepo-kernel
kernel-ml-doc.noarch                                                5.14.1-1.el7.elrepo                             elrepo-kernel
kernel-ml-headers.x86_64                                        5.14.1-1.el7.elrepo                             elrepo-kernel
kernel-ml-tools.x86_64                                             5.14.1-1.el7.elrepo                             elrepo-kernel
kernel-ml-tools-libs.x86_64                                      5.14.1-1.el7.elrepo                             elrepo-kernel
kernel-ml-tools-libs-devel.x86_64                            5.14.1-1.el7.elrepo                             elrepo-kernel
perf.x86_64                                                              5.14.1-1.el7.elrepo                             elrepo-kernel
python-perf.x86_64                                                  5.14.1-1.el7.elrepo                             elrepo-kernel

# 安装的长期稳定版本,稳定可靠
yum --enablerepo=elrepo-kernel install kernel-lt -y       

步骤 3:设置 GRUB 默认的内核版本

为了让新安装的内核成为默认启动选项,你需要如下修改 GRUB 配置:

vi  /etc/default/grub ,设置 GRUB_DEFAULT=0。意思是 GRUB 初始化页面的第一个内核将作为默认内核。

GRUB_TIMEOUT=5
GRUB_DISTRIBUTOR="$(sed 's, release .*$,,g' /etc/system-release)"
GRUB_DEFAULT=saved  #这里的saved改为0
GRUB_DISABLE_SUBMENU=true
GRUB_TERMINAL_OUTPUT="console"
GRUB_CMDLINE_LINUX="rhgb quiet"
GRUB_DISABLE_RECOVERY="true"

执行命令:
grub2-mkconfig -o /boot/grub2/grub.cfg

重启默认就是你上次所选的版本了。
reboot

# uname -rs
Linux 5.4.144-1.el7.elrepo.x86_64

参考:
https://blog.csdn.net/alwaysbefine/article/details/108931626

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐