Ubuntu更换旧版本内核

参考博客
RayChiu_Labloy
https://blog.csdn.net/RayChiu757374816/article/details/122043270
AryShaw
https://blog.csdn.net/u010608421/article/details/115658479
mixboot
https://blog.csdn.net/u010953692/article/details/115347414
Hector
https://zhuanlan.zhihu.com/p/413655133

起因

执行apt upgrade后Ubuntu内核更新到5.19导致CUDA失效
笔记后期归纳

设置内核

1.查看内核

查询当前当前已安装的内核

1
sudo dpkg -l |grep linux-image      

2.安装需要版本内核

先查询可安装的内核列表

1
sudo apt-cache search linux-image

安装指定内核

1
sudo apt install linux-image-5.15.0-46-generic

3.切换内核版本

1.查看引导结构

GRUB由’grub.cfg’文件进行配置,通常位于/boot/grub路径下。这个文件相当灵活,但它通常不需要完全由用户手动写入

1
sudo vim /boot/grub/grub.cfg

之后我们向下查找,直至看到 menuentry ‘Ubuntu’ ,menuentry表示grub启动选项的显示条目。
文件中就是grub开机启动界面显示的菜单结构,可以概括如下:

1
2
3
4
5
6
7
8
0   Ubuntu          
1 Ubuntu 高级选项
1>0 Ubuntu,Linux 5.19.0-35-generic
1>1 Ubuntu, with Linux 5.19.0-35-generic (recovery mode)
1>2 Ubuntu, with Linux 5.19.0-35-generic
1>3 Ubuntu,Linux 5.15.0-46-generic (recovery mode)
1>4 Ubuntu, with Linux 5.15.0-46-generic
1>5 Ubuntu, with Linux 5.15.0-46-generic (recovery mode)

2.更改grub默认启动项

修改默认启动项

1
sudo vim /etc/default/grub

打开grub文件后,找到 GRUB_DEFAULT=0 该项定义,将其修改为 GRUB_DEFAULT=”1 > 4”
其中’1>4’就表示选择ubuntu高级选项中的 第4个内核文件(由于从0计算,实际是第5个文件)

3.更新开机引导文件

更新initrd文件以及引导

1
2
sudo update-initramfs -u -k all
sudo update-grub

重启后选择旧版本内核进入系统

4.卸载新内核并且设置默认启动项

1.卸载内核

1
2
sudo apt remove linux-headers-5.19.0-35-generic
sudo apt autoremove

2.修改默认启动项

1
sudo vim /etc/default/grub

将GRUB_DEFAULT=”1 > 4”修改回GRUB_DEFAULT=0

3.更新initrd文件以及引导

1
2
sudo update-initramfs -u -k all
sudo update-grub

4.安装新版本内核头文件,用于开发编译

1
sudo apt install linux-headers-$(uname -r)

5.保持内核版本

查看所有内核

1
sudo dpkg --get-selections | grep linux

查看正在使用的内核

1
uname -a

保持内核

禁止内核更新

1
sudo apt-mark hold linux-image-5.15.0-46-generic

查看内核状态
1
sudo dpkg --get-selections | grep linux-image

内核状态显示hold即为成功,例如
1
linux-image-5.15.0-46-generic                   hold

解除保持内核,重启内核更新

1
sudo apt-mark unhold linux-image-5.15.0-46-generic

Ubuntu所有内核链接
https://kernel.ubuntu.com/~kernel-ppa/mainline/

Ubuntu更换内核脚本
https://github.com/pimlie/ubuntu-mainline-kernel.sh

1
2
sudo ubuntu-mainline-kernel.sh -i v5.11.0#下载5.11.0版本内核,可指定其他版本
sudo ubuntu-mainline-kernel.sh -u #删除不需要的版本,这样就可以留下需要版本,实现版本随意升级甚至降级LOL