看到标题就晓得是为啥而写的吧,没错,它就是记录Linux的内核切换的一些常见问题,尽可能把平时一些经验和真实有效的心得写下来,同时也希望可以给需要切换内核版本的大伙带来方便,感受到"小小内核切换"竟然如此简单……
  友情提醒:如果是真实服务器,还是要谨慎切换为好……

一、ubuntu/debian快速切换合适内核

【使用场景】直接更换一个5.15.0的内核版本,并且在源上有对应镜像可拉取

第一步:拉取需要内核镜像

// 查看已下载的内核
dpkg -l |grep linux-image
//查看需要下载的内核,或者可下载的内核版本
sudo apt list linux-headers-* 
sudo apt list linux-headers-5.15.*-*-generic linux-image-5.15.*-*-generic
//在这里,我是选择了5.15.0-73
apt install linux-headers-5.15.0-73-generic linux-image-5.15.0-73-generic

  如果想要直接更新为最新版内核,可以直接执行这条指令

apt install linux-image-amd64

注:这条指令适用于AMD架构,ARM的暂时不考虑

第二步:给服务器更换内核

  先是读取下grub文件,看下自个需要切换的内核版本的顺序

grep gnulinux /boot/grub/grub.cfg

注意图中的顺序,第一个menuentry开始,标记为0,逐一开始数到要切换的内核版本
在这里,5.15.0-73在第五行,标记为4
在这里插入图片描述

第三步:编辑grub文件,修改GRUB_DEFAULT内容

相关指令

vim /etc/default/grub

关于grub文件修改也有两种,但都是只需要修改GRUB_DEFAULT字段
  第一种:将相关信息填写,看下读取grub.cfg文件的截图,直接将需要添加的内核信息加进去,如5.15.0-73

gnulinux-5.15.0-73-generic-advanced-efa51b8c-2824-4ba8-a589-9d7c10b1f689

  第二种:填写相关顺序,如我要切换为5.15-73,从0开始数,为第四个,就填写1 >4

模板是 1>xxxx,xxx是要切换内核的标识号

在这里插入图片描述

第四步:更新&&重启服务器

sudo update-grub
reboot

注意:重启后一定要执行【uname -r】,看看是否执行成果

二、缺少内核头文件或者内核开发包

很多情况下,有问题或者比较旧的内核版本,官方会删除掉对应的头文件包,会拉去不下来的

Ⅰ 安装内核头文件

  安装前可以执行这条指令,查看是否存在对应的包

ls /usr/src/linux-headers-*
ls /lib/modules/

  准备下载

apt list linux-headers-*   //先看下有没有自己匹配的
apt install linux-headers-xxxx // 下载对应版本

Ⅱ 安装内核开发包

  我一般是从下面这个链接,找对应内核版本的开发包,然后下载到/opt目录下,执行下面这条指令
通常就是选择 linux-headers-xxxxx-amd64文件,进行下载

# 编译包  强制编译,拒绝自动升级 无视编译
# centos
rpm -ivh --force kernel-devel-4.18.0-193.el8.x86_64.rpm --nodeps 

# debian/ubuntu
dpkg -i *.deb

小Tips

  若有任何切换内核中,出现报错信息,欢迎在评论区留言,看到了,会第一时间回复

参考文献

  • https://blog.csdn.net/m0_46249060/article/details/134291880
  • https://blog.csdn.net/u010608421/article/details/115658479
  • https://skyao.io/learning-ubuntu-server/docs/installation/kernel/upgrade/
Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐