琐碎笔记

Linux 更新内核至最新版

571 字阅读 2 分钟
Linux 更新内核至最新版

前言

刚开了台VPS登进去发现内核版本居然是3.10的,现在最新的都已经是5.7了,果断升级。

操作环境

  • CentOS 7.6
  • Ubuntu 20.04 LTS

操作步骤

小版本升级

  • 查看当前和可升级版本
# 可升级版本
# >> CentOS
yum list kernel
# >> Ubuntu
sudo apt list | grep linux-generic*

# 查看当前正使用的版本
uname -r
  • 执行升级
# CentOS
yum update kernel -y
# Ubuntu
sudo apt-get install linux-generic-hwe-20.04-edge -y
  • 检查
# 重启
reboot
# 检查
uname -r

大版本升级

  • 载入公钥
rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org
  • 升级安装 ELRepo
# RHEL 7 或 CentOS 7
yum install https://www.elrepo.org/elrepo-release-7.el7.elrepo.noarch.rpm

# RHEL 8 或 CentOS 8
yum install https://www.elrepo.org/elrepo-release-8.el8.elrepo.noarch.rpm
  • 载入 elrepo-kernel 元数据
yum --disablerepo=\* --enablerepo=elrepo-kernel repolist
  • 查看可用的 rpm
yum --disablerepo=\* --enablerepo=elrepo-kernel list kernel*

说明:

  • lt :长期支持版本

  • ml :主线版本

  • 安装最新版本的 kernel

yum --disablerepo=\* --enablerepo=elrepo-kernel install  kernel-ml.x86_64  -y
  • 删除旧版本工具包
yum remove kernel-tools-libs.x86_64 kernel-tools.x86_64  -y
  • 安装新版本工具包
yum --disablerepo=\* --enablerepo=elrepo-kernel install kernel-ml-tools.x86_64  -y
  • 查看内核插入顺序
[root@Her ~]# awk -F \' '$1=="menuentry " {print i++ " : " $2}' /etc/grub2.cfg
0 : CentOS Linux (5.7.2-1.el7.elrepo.x86_64) 7 (Core)
1 : CentOS Linux (3.10.0-1127.10.1.el7.x86_64) 7 (Core)
2 : CentOS Linux (3.10.0-957.10.1.el7.x86_64) 7 (Core)
3 : CentOS Linux (3.10.0-957.el7.x86_64) 7 (Core)
4 : CentOS Linux (0-rescue-bc974da2acac413f8e7ac7ddf7891424) 7 (Core)

说明

默认新内核是从头插入,默认启动顺序也是从0开始(但是当前顺序还未生效),或者使用:

[root@Her ~]# grep "^menuentry" /boot/grub2/grub.cfg | cut -d "'" -f2
CentOS Linux (5.7.2-1.el7.elrepo.x86_64) 7 (Core)
CentOS Linux (3.10.0-1127.10.1.el7.x86_64) 7 (Core)
CentOS Linux (3.10.0-957.10.1.el7.x86_64) 7 (Core)
CentOS Linux (3.10.0-957.el7.x86_64) 7 (Core)
CentOS Linux (0-rescue-bc974da2acac413f8e7ac7ddf7891424) 7 (Core)

其中文件 /etc/grub2.cfg 和 /boot/grub2/grub.cfg 内容一致。

  • 查看当前实际启动顺序
[root@Her ~]# grub2-editenv list
CentOS Linux (3.10.0-957.10.1.el7.x86_64) 7 (Core)
  • 设置默认启动
[root@Her ~]# grub2-set-default 'CentOS Linux (5.7.2-1.el7.elrepo.x86_64) 7 (Core)'
# 查看确认
[root@Her ~]# grub2-editenv list
saved_entry=CentOS Linux (5.7.2-1.el7.elrepo.x86_64) 7 (Core)
  • 或者直接设置数值也可以
[root@Her ~]# grub2-set-default 0  // 0 代表当前第一行,也就是上面的 5.7.2-1.el7.elrepo.x86_64 版本那一行内容
# 查看确认
[root@Her ~]# grub2-editenv list
saved_entry=0
  • 检查
# 重启
[root@Her ~]# reboot
# 再次查看
[root@Her ~]# uname -r
5.7.2-1.el7.elrepo.x86_64

结束

Enjoy it !

本文作者:春夏
版权声明:若无特殊注明,文章均为本站 【楠格】 原创,并以 《知识共享署名-相同方式共享 4.0 国际 (CC BY-NC-SA 4.0)》 协议进行许可,转载时请以超链接形式标明文章原始出处和作者信息,否则谢绝转载!

相关文章