【Ubuntu内核】解决Ubuntu 20.04更新内核后无法联网的问题

最近在使用Ubuntu 20.04时,在更新内核后无法进行WiFi联网。我的电脑上装载的是AX211型号的无线网卡,之前安装了相应的驱动,并且一直正常使用。但不小心更新到了Linux 5.15.0-94-generic后,突然发现无法连接网络了。

于是首先怀疑是不是内核版本的问题导致的,尝试降低内核版本启动看是否能够正常连接WiFi。进入了系统启动时的GNU Grub界面,然后选择了Advanced options for Ubuntu,选择较低的内核版本Linux 5.15.0-92-generic进行启动,进入系统后发现WiFi可以正常工作。于是决定修改默认启动的内核版本为该旧版本。

解决方法

1. 查看内核启动顺序

使用以下命令查看内核的启动顺序:

grep menuentry /boot/grub/grub.cfg

结果显示了系统中存在的多个内核版本以及它们的启动选项:

if [ x"${feature_menuentry_id}" = xy ]; thenmenuentry_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-d19495dd-3419-4586-9b13-b5c523ce9591' {
submenu 'Ubuntu 的高级选项' $menuentry_id_option 'gnulinux-advanced-d19495dd-3419-4586-9b13-b5c523ce9591' {menuentry 'Ubuntu,Linux 5.15.0-94-generic' --class ubuntu --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-5.15.0-94-generic-advanced-d19495dd-3419-4586-9b13-b5c523ce9591' {menuentry 'Ubuntu, with Linux 5.15.0-94-generic (recovery mode)' --class ubuntu --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-5.15.0-94-generic-recovery-d19495dd-3419-4586-9b13-b5c523ce9591' {menuentry 'Ubuntu,Linux 5.15.0-92-generic' --class ubuntu --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-5.15.0-92-generic-advanced-d19495dd-3419-4586-9b13-b5c523ce9591' {menuentry 'Ubuntu, with Linux 5.15.0-92-generic (recovery mode)' --class ubuntu --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-5.15.0-92-generic-recovery-d19495dd-3419-4586-9b13-b5c523ce9591' {menuentry 'Ubuntu,Linux 5.15.0-67-generic' --class ubuntu --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-5.15.0-67-generic-advanced-d19495dd-3419-4586-9b13-b5c523ce9591' {menuentry 'Ubuntu, with Linux 5.15.0-67-generic (recovery mode)' --class ubuntu --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-5.15.0-67-generic-recovery-d19495dd-3419-4586-9b13-b5c523ce9591' {menuentry 'Ubuntu,Linux 5.15.0-46-generic' --class ubuntu --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-5.15.0-46-generic-advanced-d19495dd-3419-4586-9b13-b5c523ce9591' {menuentry 'Ubuntu, with Linux 5.15.0-46-generic (recovery mode)' --class ubuntu --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-5.15.0-46-generic-recovery-d19495dd-3419-4586-9b13-b5c523ce9591' {
menuentry 'Windows Boot Manager (在 /dev/nvme0n1p2)' --class windows --class os $menuentry_id_option 'osprober-efi-5ED4-0D9E' {

居然装了这么多版本的内核。。。
发现了所需的Linux 5.15.0-92-generic。菜单索引从0开始,即:
0: ‘Ubuntu,Linux 5.15.0-94-generic’
1: ‘Ubuntu, with Linux 5.15.0-94-generic (recovery mode)’
2: ‘Ubuntu,Linux 5.15.0-92-generic’
3: ‘Ubuntu, with Linux 5.15.0-92-generic (recovery mode)’

因此希望降低到的内核版本Linux 5.15.0-92-generic在菜单中的位置为2。

2. 编辑GRUB配置文件

然后,编辑GRUB配置文件,使用命令sudo gedit /etc/default/grub打开,并设置GRUB_DEFAULT以指定默认启动的内核版本。

GRUB_DEFAULT="1>2"

GRUB_DEFAULT中,索引值的格式是x>y,其中x表示主菜单中的索引值,而y表示子菜单中的索引值。对于主菜单中的选项,索引从0开始计数,而对于子菜单中的选项,索引同样从0开始计数。

所以,当填写GRUB_DEFAULT="1>3"时,我指定的是主菜单中的第2个选项(索引1,即Advanced options for Ubuntu),以及在子菜单中的第3个选项(索引2)。这个索引值需要根据实际情况调整。

3. 更新GRUB配置文件

保存并关闭文件后,运行命令来更新GRUB配置文件,以使修改生效:

sudo update-grub

4. 重启系统

重启电脑,发现问题得到了解决,系统默认启动了旧的内核版本,可以正常联网了。


卸载内核的方法

请注意:执行操作存在风险,如操作不当可能导致系统不稳定甚至无法运行。请在执行任何操作之前谨慎考虑,并确保备份重要数据。

步骤一:确认已安装的内核版本

首先,我们需要确认系统中已安装的内核版本。运行以下命令来列出已安装的内核版本:

dpkg --list | grep linux-image

这会列出已安装的所有内核版本,包括其版本号:

ii  linux-image-5.15.0-46-generic                 5.15.0-46.49~20.04.1                  amd64        Signed kernel image generic
ii  linux-image-5.15.0-67-generic                 5.15.0-67.74~20.04.1                  amd64        Signed kernel image generic
ii  linux-image-5.15.0-92-generic                 5.15.0-92.102~20.04.1                 amd64        Signed kernel image generic
ii  linux-image-5.15.0-94-generic                 5.15.0-94.104~20.04.1                  amd64        Signed kernel image generic

步骤二:卸载不需要的内核版本

假设你想要卸载版本号为5.15.0-94-generic的内核版本。首先,运行以下命令来卸载该内核版本:

sudo apt-get purge linux-image-5.15.0-94-generic

这一步可能会同时安装一个名字含有image-unsigned的包。接下来,继续运行以下命令来卸载该包:

sudo apt-get purge linux-image-unsigned-5.15.0-94-generic

通过以上步骤,可以卸载Ubuntu 20.04中不需要的内核版本。执行

dpkg --list | grep linux-image

查看已安装内核,可发现linux-image-5.15.0-94-generic已被卸载:

ii  linux-image-5.15.0-46-generic                 5.15.0-46.49~20.04.1                  amd64        Signed kernel image generic
ii  linux-image-5.15.0-67-generic                 5.15.0-67.74~20.04.1                  amd64        Signed kernel image generic
ii  linux-image-5.15.0-92-generic                 5.15.0-92.102~20.04.1                 amd64        Signed kernel image generic

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/687838.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【前端工程化面试题】什么是 CI/CD

CI/CD 是软件开发中的两个重要实践,分别代表持续集成(Continuous Integration)和持续交付/持续部署(Continuous Delivery/Continuous Deployment)。 持续集成 (Continuous Integration, CI):持续集成是一种…

常见Web安全漏洞的实际案例和攻防技术

常见Web安全漏洞的实际案例和攻防技术 1、SQL注入攻击与防范: 通过一个简单的Web应用演示SQL注入攻击,包括入侵者如何通过输入恶意SQL语句来获取敏感数据。提供相应的防范措施,包括参数化查询、ORM框架的使用等,并附上实际代码演示。Copy code # 恶意SQL注入语句的示例 SEL…

练习接口测试第一步骤

最近一段时间学了Python语言,重新学了 Java,js,html语言,CSS,linux,一堆测试工具;唉~ 在接触接口测试过程中补了很多课, 终于有点领悟接口测试的根本; 偶是…

firewall 常用命令

firewall 常用命令 重新装载 sudo firewall-cmd --reload 列出所有 sudo firewall-cmd --list-all 开启 masquerade 伪装IP firewall-cmd --permanent --add-masquerade 关闭 masquerade 伪装IP firewall-cmd --permanent --remove-masquerade

数据结构~二叉树(基础知识)

上一篇博客我们对树有了初步了解与学习,这篇我将初步学习二叉树!!(新年快乐!) 目录 二叉树 1、定义: 2、特点: 3、基本形态: 4、二叉树的种类: &…

数据库系统概论整理与总结

数据库系统概论 第一章:绪论 四个基本概念 四个概念 数据:Data 数据库:DataBase 数据库管理系统:DBMS 数据库系统:DBS 打个比喻,比如说菜鸟物流: Data:快递 DB:物流厂库 DBMS:对…

C# 如何实现一个事件总线

EventBus(事件总线)是一种用于在应用程序内部或跨应用程序组件之间进行事件通信的机制。 它允许不同的组件通过发布和订阅事件来进行解耦和通信。在给定的代码片段中,我们可以看到一个使用C#实现的Event Bus。它定义了一些接口和类来实现事件…

上位机图像处理和嵌入式模块部署(cmake的使用)

【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing 163.com】 过去我们编写windows程序的时候,习惯上都是直接使用visual studio创建工程开发。而开发linux程序的时候,则是编写好c、cpp代…

MySQL 基础知识(九)之视图

目录 1 视图的介绍 2 视图算法 3 创建视图 4 查看视图结构 5 修改视图 6 删除视图 7 参考文档 1 视图的介绍 视图是一张并不存储数据的虚拟表,其本质是根据 SQL 语句动态查询数据库中的数据。数据库中只存放了视图的定义,通过 SQL 语句使用视图时…

去掉图片水印但是不伤原图?看完这些方法就知道了

小伙伴们,你们是不是经常在网上找一些好看的图片作为壁纸呢?有时候会遇到一些带着平台水印的图片,是不是觉得不太美观呢?别着急,其实我们可以使用一些去水印软件来将这些水印去除掉,让图片更加美观。那么&a…

Graph + LLM图数据库技术如何助力行业大语言模型应用落地

随着 AI 人工智能技术的迅猛发展和自然语言处理领域的研究日益深入,如何构建强大的大语言模型对于企业来说愈发重要,尤其是在特定行业领域中。 图数据库作为处理复杂数据结构的有力工具,为企业构建行业大语言模型提供了强大的支持。本文将探…

腾讯云4核8G服务器配置性能测评,2024更新

4核8G服务器支持多少人同时在线访问?阿腾云的4核8G服务器可以支持20个访客同时访问,关于4核8G服务器承载量并发数qps计算测评,云服务器上运行程序效率不同支持人数在线人数不同,公网带宽也是影响4核8G服务器并发数的一大因素&…

扫描电子显微镜(SEM)样品制备要求与方法解析

扫描电子显微镜(Scanning Electron Microscope,简称SEM)是一种强大的分析工具,广泛应用于材料科学、生物学、医学、半导体材料和化学化工等领域。SEM能够提供高分辨率的表面形貌图像,因此样品制备成为获取准确、清晰图…

Python第十七章(继承)

继承:子类继承父类的所有方法和属性 一。单继承:一个子类继承一个父类 注释:B是子类,继承了A的函数方法,当调用B时候,会同时使用A中的全部方法,object类是顶级类或者基类,其他子类叫…

IP定位技术助力网络安全保护

随着网络技术的不断发展,网络安全问题日益凸显,如何有效保护网络安全已成为亟待解决的问题。IP定位技术作为一种前沿的网络安全防护手段,正在逐步成为网络安全保护的重要工具。 首先,我们要明确什么是IP定位技术。IP定位技术是一…

express如何挂载前端项目

如何在express的web服务器中放置前端项目呢? 或者说express如何挂载前端打包后的dist目录? 三个步骤: ①导入path const path require(path);②静态托管当前目录 app.use(express.static(path.join(__dirname, dist)));目的是访问到dist目…

ES6的重要特性

1. 块级作⽤域:引⼊ let 和 const 关键字,允许在块级作⽤域中声明变量,解决了变量提升和作⽤域污染的问题。 2. 箭头函数:使⽤箭头( > )定义函数,简化了函数的书写,并且⾃动绑定了 this 。 3. 模板字…

6.s081 学习实验记录(七)Multithreading

文章目录 一、Uthread: switching between threads简介提示实验代码实验结果 二、Using threads简介实验代码 三、Barrier简介实验代码实验结果 一、Uthread: switching between threads 简介 切换到 thread 分支 git fetchgit checkout threadmake clean 实现用户态线程的…

从Unity到Three.js(动态创建mesh)

js var let const基础 手动创建模型mesh功能测试,此功能跑通就可以实现很多功能了,如点云转mesh,磨碎效果等等。 import * as THREE from three;const scene new THREE.Scene(); const camera new THREE.PerspectiveCamera(60, window.in…

Python学习路线图

防止忘记,温故知新 进阶路线