【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
相关文章:
【Ubuntu内核】解决Ubuntu 20.04更新内核后无法联网的问题
最近在使用Ubuntu 20.04时,在更新内核后无法进行WiFi联网。我的电脑上装载的是AX211型号的无线网卡,之前安装了相应的驱动,并且一直正常使用。但不小心更新到了Linux 5.15.0-94-generic后,突然发现无法连接网络了。 于是首先怀疑…...

20-k8s中pod的调度-nodeSelector节点选择器
一、概念 我们先创建一个普通的deploy资源,设置为10个副本 [rootk8s231 dns]# cat deploy.yaml apiVersion: apps/v1 kind: Deployment metadata: name: dm01 spec: replicas: 10 selector: matchLabels: k8s: k8s template: metadata: …...

win10下wsl2使用记录(系统迁移到D盘、配置国内源、安装conda环境、配置pip源、安装pytorch-gpu环境、安装paddle-gpu环境)
wsl2 安装好后环境测试效果如下,支持命令nvidia-smi,不支持命令nvcc,usr/local目录下没有cuda文件夹。 系统迁移到非C盘 wsl安装的系统默认在c盘,为节省c盘空间进行迁移。 1、输出wsl -l 查看要迁移的系统名称 2、执行导出命…...

数据结构与算法:栈
朋友们大家好啊,在链表的讲解过后,我们本节内容来介绍一个特殊的线性表:栈,在讲解后也会以例题来加深对本节内容的理解 栈 栈的介绍栈进出栈的变化形式 栈的顺序存储结构的有关操作栈的结构定义与初始化压栈操作出栈操作获取栈顶元…...
Newtonsoft.Json设置忽略某些字段
using Newtonsoft.Json; using Newtonsoft.Json.Serialization; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks;namespace TestProject1 {/// <summary>/// 输出json时,设置忽略哪些…...
【c++每天一题】跳跃游戏
题目 给你一个非负整数数组 nums ,你最初位于数组的 第一个下标 。数组中的每个元素代表你在该位置可以跳跃的最大长度。 判断你是否能够到达最后一个下标,如果可以,返回 true ;否则,返回 false 。 示例 1࿱…...
【C# 中抓取包含多个屏幕内容的整个桌面】
要在 C# 中抓取包含多个屏幕内容的整个桌面,可以使用 .NET Framework 或者其他第三方库来实现。一种常见的方法是使用 System.Windows.Forms 和 System.Drawing 命名空间中的类来实现屏幕截图。以下是一个示例代码,演示如何抓取包含多个屏幕内容的整个桌…...

数据库管理-第152期 Oracle Vector DB AI-04(20240220)
数据库管理152期 2024-02-20 数据库管理-第152期 Oracle Vector DB & AI-04(20240220)1 常用的向量检索方法聚类图搜索哈希量化 2 Oracle Vector DB中的索引索引(默认) 索引(高级)3 EMBEDDINGSSQL EMBE…...
uniapp app端水印组件封装 一次引入版
直接上代码 <template><view><canvas canvas-id"myCanvas"style"width: 100vw; height: 100vh;opacity: 0;position: fixed;top: -1000px;"></canvas></view> </template><script>export default {name: "…...

最新Unity游戏主程进阶学习大纲(2个月)
过完年了,很多同学开始重新规划自己的职业方向,找更好的机会,准备升职或加薪。今天给那些工作了1~5年的开发者梳理”游戏开发客户端主程”的学习大纲,帮助大家做好面试准备。适合Unity客户端开发者。进阶主程其实就是从固定的几个方面搭建好完整的知识体…...

NoSQL 数据库管理工具,搭载强大支持:Redis、Memcached、SSDB、LevelDB、RocksDB,为您的数据存储提供无与伦比的灵活性与性能!
NoSQL 数据库管理工具,搭载强大支持:Redis、Memcached、SSDB、LevelDB、RocksDB,为您的数据存储提供无与伦比的灵活性与性能! 【官网地址】:http://www.redisant.cn/nosql 介绍 直观的用户界面 从单一应用程序中同…...
基于Spring Boot的多级缓存系统设计
在构建大规模应用时,缓存系统是提高性能的关键因素之一。为了更有效地利用缓存,我们可以设计一个基于Spring Boot的多级缓存系统,结合本地内存缓存(如Caffeine)和分布式缓存(如Redis)。以下是一…...

k8s-配置与存储-配置管理
文章目录 一、配置存储1.1 ConfigMap1.1.1.基于文件夹的创建方式1.1.2指定文件的创建方式1.1.3 配置文件创建configmap 1.2 Secret1.2.1Secret的应用与Docker仓库 Secret设置1. Kubernetes 中的 Secrets:创建 Secret 示例:将 Secret 挂载到 Pod 中的示例…...
c语言实现bellman-ford算法
下面是使用C语言实现Bellman-Ford算法的示例代码。Bellman-Ford算法用于在带权重的图中找到从单个源点到所有其他顶点的最短路径,它也能处理图中包含负权重边的情况。 #include <stdio.h> #include <stdlib.h> #include <limits.h>// 定义边的结构 struct …...
socket与rpc的区别
如今的游戏开发,不搞个跨服玩法都不好意思说在做游戏了(当然,也跟游戏类型有关,一些轻度休闲游戏可以排除在外)。跨服玩法的设计,可以进一步激发玩家追求高战力的虚荣心,也可以汇聚玩家数量&…...

10、内网安全-横向移动域控提权NetLogonADCSPACKDC永恒之蓝
用途:个人学习笔记,有所借鉴,欢迎指正! 背景: 主要针对内网主机中的 域控提权漏洞,包含漏洞探针和漏洞复现利用。 1、横向移动-系统漏洞-CVE-2017-0146(ms17-010,永恒之蓝࿰…...
代码随想录算法训练营第三八天 | 动态规划
目录 动态规划基础斐波那契数爬楼梯使用最小花费爬楼梯 LeetCode 509. 斐波那契数 LeetCode 70. 爬楼梯 LeetCode 746. 使用最小花费爬楼梯 动态规划基础 Dynamic Programming (DP) 如果某一问题有很多重叠子问题,使用动态规划是最有效的。 动态规划中每一个状态…...

【ubuntu2004安装N卡驱动】
软硬件环境 硬件:联想notebook16,显卡4060laptop 软件: ubuntu20.04 驱动安装成功的版本:NVIDIA-Linux-x86_64-535.146.02.run 使用默认的驱动安装,没用原因如下 让手动安装。 手动安装 环境准备: sudo …...

使用 Docker 安装 Kibana 8.4.3
使用 Docker 安装 Kibana 8.4.3 一. 安装启动 Kibana 8.4.3二. 简单使用2.1 向 Elasticsearch 发送请求2.2 搜索2.3 整体页面 前言 这是我在这个网站整理的笔记,有错误的地方请指出,关注我,接下来还会持续更新。 作者:神的孩子都在歌唱 安装k…...

基于python社交网络大数据分析系统的设计与实现
项目:基于python社交网络大数据分析系统的设计与实现 摘 要 社交网络大数据分析系统是一种能自动从网络上收集信息的工具,可根据用户的需求定向采集特定数据信息的工具,本项目通过研究爬取微博网来实现社交网络大数据分析系统功能。对于采集…...

使用VSCode开发Django指南
使用VSCode开发Django指南 一、概述 Django 是一个高级 Python 框架,专为快速、安全和可扩展的 Web 开发而设计。Django 包含对 URL 路由、页面模板和数据处理的丰富支持。 本文将创建一个简单的 Django 应用,其中包含三个使用通用基本模板的页面。在此…...
rknn优化教程(二)
文章目录 1. 前述2. 三方库的封装2.1 xrepo中的库2.2 xrepo之外的库2.2.1 opencv2.2.2 rknnrt2.2.3 spdlog 3. rknn_engine库 1. 前述 OK,开始写第二篇的内容了。这篇博客主要能写一下: 如何给一些三方库按照xmake方式进行封装,供调用如何按…...
逻辑回归:给不确定性划界的分类大师
想象你是一名医生。面对患者的检查报告(肿瘤大小、血液指标),你需要做出一个**决定性判断**:恶性还是良性?这种“非黑即白”的抉择,正是**逻辑回归(Logistic Regression)** 的战场&a…...
五年级数学知识边界总结思考-下册
目录 一、背景二、过程1.观察物体小学五年级下册“观察物体”知识点详解:由来、作用与意义**一、知识点核心内容****二、知识点的由来:从生活实践到数学抽象****三、知识的作用:解决实际问题的工具****四、学习的意义:培养核心素养…...
leetcodeSQL解题:3564. 季节性销售分析
leetcodeSQL解题:3564. 季节性销售分析 题目: 表:sales ---------------------- | Column Name | Type | ---------------------- | sale_id | int | | product_id | int | | sale_date | date | | quantity | int | | price | decimal | -…...
Rapidio门铃消息FIFO溢出机制
关于RapidIO门铃消息FIFO的溢出机制及其与中断抖动的关系,以下是深入解析: 门铃FIFO溢出的本质 在RapidIO系统中,门铃消息FIFO是硬件控制器内部的缓冲区,用于临时存储接收到的门铃消息(Doorbell Message)。…...

云原生玩法三问:构建自定义开发环境
云原生玩法三问:构建自定义开发环境 引言 临时运维一个古董项目,无文档,无环境,无交接人,俗称三无。 运行设备的环境老,本地环境版本高,ssh不过去。正好最近对 腾讯出品的云原生 cnb 感兴趣&…...

莫兰迪高级灰总结计划简约商务通用PPT模版
莫兰迪高级灰总结计划简约商务通用PPT模版,莫兰迪调色板清新简约工作汇报PPT模版,莫兰迪时尚风极简设计PPT模版,大学生毕业论文答辩PPT模版,莫兰迪配色总结计划简约商务通用PPT模版,莫兰迪商务汇报PPT模版,…...

Windows安装Miniconda
一、下载 https://www.anaconda.com/download/success 二、安装 三、配置镜像源 Anaconda/Miniconda pip 配置清华镜像源_anaconda配置清华源-CSDN博客 四、常用操作命令 Anaconda/Miniconda 基本操作命令_miniconda创建环境命令-CSDN博客...

c++第七天 继承与派生2
这一篇文章主要内容是 派生类构造函数与析构函数 在派生类中重写基类成员 以及多继承 第一部分:派生类构造函数与析构函数 当创建一个派生类对象时,基类成员是如何初始化的? 1.当派生类对象创建的时候,基类成员的初始化顺序 …...