Ubuntu系统Linux内核升级、降级

本文针对Ubuntu系统因Linux内核版本不兼容问题,介绍内核降级操作。作者更新Ubuntu 19.04后遇内核版本过高问题,需将内核从5.0.0 - 13降至4.18.0 - 18。详细说明了查看可用内核、下载安装、修改GRUB、更新GRUB并重启等步骤,降级后重新安装相关驱动恢复正常。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

本文主要针对Ubuntu系统由于Linux内核版本的不兼容导致的问题,而需要对内核进行升级、降级所需的操作及步骤。

首先,我所遇到的问题可以描述为:在更新了Ubuntu 19.04后,Linux内核升级至了5.0.0-13,而NVIDIA显卡驱动被迫升级至了418以上,导致tensorflow(版本1.13.0)在运行tf.Session()语句时显卡会卡住,无法继续运行,甚至连SSH都会卡住无法操作。经过分析判断为内核版本过高导致,所以需要采取内核降级的方式,将至4.18.0-18。

我是在遇到问题后尝试重新安装CUDA及显卡驱动,遇到了unable to locate kernel source 报错,判断是内核问题。

下面介绍如何对Ubuntu系统的Linux系统进行降级(升级同理)

1·查看可用的Linux内核

命令行输入grep menuentry /boot/grub/grub.cfg查看可用的内核信息

例如

if [ x"${feature_menuentry_id}" = xy ]; then
  menuentry_id_option="--id"
  menuentry_id_option=""
export menuentry_id_option
menuentry 'Ubuntu' --class ubuntu --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-simple-5b5cabf4-e78b-457c-b10f-b662ba4c57d9' {
submenu 'Advanced options for Ubuntu' $menuentry_id_option 'gnulinux-advanced-5b5cabf4-e78b-457c-b10f-b662ba4c57d9' {
 menuentry 'Ubuntu, with Linux 5.0.0-13-generic' --class ubuntu --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-5.0.0-13-generic-advanced-5b5cabf4-e78b-457c-b10f-b662ba4c57d9' {
 menuentry 'Ubuntu, with Linux 5.0.0-13-generic (recovery mode)' --class ubuntu --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-5.0.0-13-generic-recovery-5b5cabf4-e78b-457c-b10f-b662ba4c57d9' {
 menuentry 'Ubuntu, with Linux 4.18.0-18-generic' --class ubuntu --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-4.18.0-18-generic-advanced-5b5cabf4-e78b-457c-b10f-b662ba4c57d9' {
 menuentry 'Ubuntu, with Linux 4.18.0-18-generic (recovery mode)' --class ubuntu --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-4.18.0-18-generic-recovery-5b5cabf4-e78b-457c-b10f-b662ba4c57d9' {
menuentry 'Memory test (memtest86+)' {
menuentry 'Memory test (memtest86+, serial console 115200)' {

可以发现我这里有5.0.0-13以及4.18.0-18两个版本

2·如果未找到想要的内核版本,可以执行

sudo apt-get install linux-headers-x.x.x-x-generic linux-image-x.x.x-x-generic

下载安装对应版本的Linux内核
对于内核升级,下载了安装后 reboot重启即可

3·修改GRUB

编辑/etc/default/grub文件中的GRUB_DEFAULT
默认为GRUB_DEFAULT=0
降级时如需特定版本的内核
则将上述语句修改为:

GRUB_DEFAULT="Advanced options for Ubuntu > Ubuntu, with Linux 4.18.0-18-generic"

GRUB_DEFAULT="gnulinux-advanced-5b5cabf4-e78b-457c-b10f-b662ba4c57d9>gnulinux-4.18.0-18-generic-advanced-5b5cabf4-e78b-457c-b10f-b662ba4c57d9"

我是采用后者成功的,两条语句功能一样,但似乎适用的版本不同,这一点还没搞清楚,不过新一些的系统可以直接尝试第二种方式。引号内的版本信息均可在步骤1的输出内容中找到,只要确认是所需内核版本即可

4·更新GRUB并重启

sudo update-grub
sudo reboot

重启后可用uname -r查看,内核版本已成功降级。

以上就是Ubuntu系统的Linux内核降级方法,内核降级多见于Ubuntu系统初更新的一段时间,导致驱动、上层框架、应用程序等的兼容性出现异常,或强制升级、适配了高版本驱动等带来了程序运行异常等问题。

针对我所遇到的具体问题,在内核降级后,重新安装CUDA10.0以及对应的显卡驱动(版本410.48)以及对应的CUDNN,就恢复正常了。

### 如何在 Ubuntu 22.04 上降级系统内核 为了在 Ubuntu 22.04 LTS 中实现内核版本的降级,可以按照以下方法操作。此过程涉及下载特定版本的内核、安装以及调整引导加载程序 (GRUB) 的配置。 #### 准备工作 确保已备份重要数据以防万一出现问题。此外,在终端中运行所有命令前需具备管理员权限。 #### 步骤说明 1. **下载内核管理工具** 首先需要获取一个方便管理不同内核版本的 Bash 脚本 `ubuntu-mainline-kernel.sh`: ```bash wget https://raw.githubusercontent.com/pimlie/ubuntu-mainline-kernel.sh/master/ubuntu-mainline-kernel.sh ``` 2. **赋予脚本执行权限并移至可执行路径** 对上述脚本赋予权限,并将其放置于 `/usr/local/bin/` 目录下以便全局调用: ```bash chmod +x ubuntu-mainline-kernel.sh sudo mv ubuntu-mainline-kernel.sh /usr/local/bin/ ``` 3. **查看可用内核列表** 执行如下命令来列出可供选择的不同内核版本: ```bash ubuntu-mainline-kernel.sh -r ``` 这一步有助于确认目标降级的具体内核版本是否存在在线资源库中[^1]。 4. **安装指定旧版内核** 假设计划将内核从默认的较高版本降至 5.13.0,则通过下面指令完成安装: ```bash sudo ubuntu-mainline-kernel.sh -i v5.13.0 ``` 5. **编辑 GRUB 设置以选用新内核作为默认启动项** 修改 `/etc/default/grub` 文件中的相关内容,设定期望使用的低版本内核成为首选项: ```bash sudo nano /etc/default/grub ``` 更改其中的一行定义为类似于这样(具体名称依据实际环境而定): ```plaintext GRUB_DEFAULT='Advanced options for Ubuntu>Ubuntu, with Linux 5.13.0-051300-generic' ``` 紧接着刷新 GRUB 配置使之生效: ```bash sudo update-grub ``` 6. **重新启动计算机验证变更效果** 发起重启流程让改动立即作用于整个系统架构之上: ```bash sudo reboot ``` 7. **最终校验当前活动内核状态** 登入之后可通过简单查询得知此刻正在运作的确切内核编号是否符合预期: ```bash uname -r ``` 以上即完成了针对 Ubuntu 22.04 平台上的手动内核回退作业[^1]。 --- ### 注意事项 尽管该方案能够有效达成目的,但在实施过程中仍可能存在某些风险因素需要注意规避,比如兼容性问题或者驱动支持状况等。 ---
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值