Ubuntu更换旧版本内核保持并删除新内核
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 | 0 Ubuntu |
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 | sudo update-initramfs -u -k all |
重启后选择旧版本内核进入系统
4.卸载新内核并且设置默认启动项
1.卸载内核
1 | sudo apt remove linux-headers-5.19.0-35-generic |
2.修改默认启动项
1 | sudo vim /etc/default/grub |
将GRUB_DEFAULT=”1 > 4”修改回GRUB_DEFAULT=0
3.更新initrd文件以及引导
1 | sudo update-initramfs -u -k all |
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 | sudo ubuntu-mainline-kernel.sh -i v5.11.0#下载5.11.0版本内核,可指定其他版本 |