Ubuntu 20.04 内核升级后网络丢失问题的解决过程
在 Ubuntu 系统中,内核升级是一个常见的操作,旨在提升系统性能、安全性和兼容性。然而,有时这一操作可能会带来一些意外的副作用,比如导致网络功能的丧失。
本人本来是想更新 Nvidia 显卡的驱动,使用 ubuntu-drivers 自动更新驱动后,结果导致网络不能用了,右上角的网络图标也不见了。
特记录本人在 Ubuntu 20.04 中遇到内核升级后网络丢失问题的解决步骤,供遇到类似问题的朋友参考。

一、现象描述及问题排查:
- 网络图标消失:桌面右上角的网络图标不见了,无法直接通过图形界面管理网络。
- 网络设置缺失:系统设置中找不到“有线网”和“无线网”的选项,仅剩下“代理”设置。
- 网络命令无响应:运行 ifconfig 或 ip addr 等命令时,无法看到有线(如 enpXXX )或无线(如 wlpXXX )网络接口。
- 硬件识别问题:通过 sudo lshw -c network 命令查看,发现网卡硬件被识别,但系统未能正确加载相应的驱动模块。也可以使用
lspci(对于PCI设备)或lsusb(对于 USB 设备)来列出你的硬件。
二、定位问题步骤:
1.查看网络
使用命令 sudo lshw -class network 查看网卡状态:

发现网卡是 Unclaimed 状态。
在网上一通查找与学习,认为可能是内核更新的时候,网络设备驱动所在的 linux-modules-extra 库因为某些原因没有正常更新。
2. 确认当前内核版本
首先,确认当前运行的内核版本,以便后续确认是否安装正确的 linux-modules-extra 包。
uname -r
输出为 5.15.0-122-generic。
3. 查看是否正确安装 linux-modules-extra
使用命令 dpkg -l |grep linux-modules 查看内核及 linux-modules-extra 的安装情况

发现没有与目前使用的 5.15.0-122-generic 内核对应的 linux-modules-extra 包。
三、解决方法
安装缺少的 linux-modules-extra-xxxx-generic,其中 xxxx 是当前使用的内核版本。
考虑到此时 ubuntu 不能链接任何网络,因此有如下两个方法解决:
方法一:通过 GRUB 选择旧内核版本
- 查看已安装的内核版本:
dpkg -l | grep linux-image
找到除了当前运行版本外的其他内核版本。
- 重启并进入 GRUB 菜单:
重启计算机,在 GRUB 菜单出现时(通常是开机后几秒内),按 Shift 键进入 GRUB 菜单。
- 选择旧内核版本:
在 GRUB 菜单中选择“ Advanced options for Ubuntu ”,然后选择一个旧的内核版本启动。
- 安装 linux-modules-extra:
进入旧内核版本的系统后,网络可能恢复正常。此时,使用 apt 命令安装与当前内核版本相匹配的 linux-modules-extra 包。
sudo apt install linux-modules-extra-$(uname -r)
- 重启并检查网络:
安装完成后,重启计算机并检查网络是否恢复正常。
方法二:使用其他设备下载并安装 linux-modules-extra
- 在其他设备上下载 blinux-modules-extra 包:
使用另一台可以联网的设备,访问 Ubuntu 的官方软件仓库 或使用 apt 的下载功能(如 apt download)下载与当前内核版本相匹配的 linux-modules-extra 包。

- 将包传输到出问题的电脑:
使用 USB 驱动器或其他方式将下载的 .deb 文件传输到出问题的电脑上。
- 安装 linux-modules-extra 包:
在出问题的电脑上,使用 dpkg 命令安装传输过来的 .deb 文件:
sudo dpkg -i linux-modules-extra-xxxx-generic.deb

- 重启并检查网络:
安装完成后,重启计算机并检查网络是否恢复正常。

四、小贴士:
1. ubuntu-drivers
ubuntu-drivers 是 Ubuntu 系统中一个非常实用的工具,主要用于帮助用户自动化地检测并安装适合其硬件设备的驱动程序。
- 自动化检测:
ubuntu-drivers能够自动扫描系统中的硬件设备,识别出哪些设备需要安装或更新驱动程序。 - 推荐驱动:基于扫描结果,
ubuntu-drivers会列出适用于当前硬件的驱动程序,并推荐最合适的版本。 - 安装与更新:用户可以通过
ubuntu-drivers直接安装或更新驱动程序,无需手动下载和配置。 - 使用
sudo ubuntu-drivers autoinstall命令自动安装推荐的驱动程序。此命令将自动检测硬件设备,并尝试安装适合它们的驱动程序。
2.linux-modules-extra 库
Ubuntu 的 linux-modules-extra 库是一个特殊的软件包集合,它包含了 Linux 内核的额外模块。这些模块不是内核的核心部分,但对于许多硬件设备的正常运行却是至关重要的。在 Ubuntu 系统中,linux-modules-extra 包通常随着内核包的安装或更新而自动安装或更新,以确保系统能够识别和使用各种硬件设备。
主要功能和特点:
-
提供额外驱动:
linux-modules-extra包包含了内核的额外驱动程序,这些驱动程序对于某些特定的硬件设备(如无线网卡、显卡、USB设备等)是必需的。如果没有这些额外的驱动程序,这些设备可能无法正常工作或性能不佳。 -
与内核版本匹配:Ubuntu的
linux-modules-extra包与内核版本紧密相关。每次内核更新时,都可能需要安装或更新相应的linux-modules-extra包,以确保所有驱动程序都与新的内核版本兼容。 -
自动安装和更新:在大多数情况下,Ubuntu的APT包管理器会自动处理
linux-modules-extra包的安装和更新。通过APT安装或更新内核包时,相关的linux-modules-extra包也会被安装或更新。
五、小结
在 Ubuntu 20.04 中遇到内核升级后网络丢失的问题时,首先确认当前内核版本,并尝试安装与之匹配的 linux-modules-extra 包。如果网络不可用,可以通过 GRUB 选择旧内核版本或使用其他设备下载并安装所需的包。
希望这些步骤能帮助你解决网络丢失的问题。
老徐,2024/9/21
相关文章:
Ubuntu 20.04 内核升级后网络丢失问题的解决过程
在 Ubuntu 系统中,内核升级是一个常见的操作,旨在提升系统性能、安全性和兼容性。然而,有时这一操作可能会带来一些意外的副作用,比如导致网络功能的丧失。 本人本来是想更新 Nvidia 显卡的驱动,使用 ubuntu-drivers …...
论文解读《LaMP: When Large Language Models Meet Personalization》
引言:因为导师喊我围绕 “大语言模型的个性化、风格化生成” 展开研究,所以我就找相关论文,最后通过 ACL 官网找到这篇,感觉还不错,就开始解读吧! “说是解读,其实大部分都是翻译哈哈哈&#x…...
Excel VLOOKUP函数怎么用?vlookup函数的使用方法及案例
大家好,这里是效率办公指南! 🔎 在Excel的世界里,VLOOKUP函数无疑是查询和数据分析中的明星。无论是从庞大的数据表中提取特定信息,还是进行数据的快速匹配,VLOOKUP都能大显身手。今天,我们将深…...
专为汽车功能应用打造的 MLX90376GGO、MLX90377GGO、MLX90377GDC-ADB-280 Triaxis®磁位置传感器 IC
一、MLX90376 Triaxis堆叠式高性能位置传感器芯片(模拟/PWM/SENT/SPC) MLX90376GGO-ABA-600 MLX90376GGO-ABA-630 MLX90376GGO-ABA-680 MLX90376是一款磁性绝对位置传感器芯片,适用于要求具备抗杂散磁场干扰性能的360旋转汽车应用。它提供…...
34.贪心算法1
0.贪心算法 1.柠檬水找零(easy) . - 力扣(LeetCode) 题目解析 算法原理 代码 class Solution {public boolean lemonadeChange(int[] bills) {int five 0, ten 0;for (int x : bills) {if (x 5) // 5 元:直接收下…...
DataX实战:从MongoDB到MySQL的数据迁移--修改源码并测试打包
在现代数据驱动的业务环境中,数据迁移和集成是常见的需求。DataX,作为阿里云开源的数据集成工具,提供了强大的数据同步能力,支持多种数据源和目标端。本文将介绍如何使用DataX将数据从MongoDB迁移到MySQL。 环境准备 安装MongoDB…...
Axure设计之表格列冻结(动态面板+中继器)
在Web端产品设计中,复杂的表格展示是常见需求,尤其当表格包含大量列时,如何在有限的屏幕空间内优雅地展示所有信息成为了一个挑战。用户通常需要滚动查看隐藏列,但关键信息列(如ID、操作按钮等)在滚动时保持…...
WPF DataGrid 动态修改某一个单元格的样式
WPF DataGrid 动态修改某一个单元格的样式 <DataGrid Name"main_datagrid_display" Width"1267" Height"193" Grid.Column"1"ItemsSource"{Binding DataGridModels}"><DataGrid.Columns><!--ElementStyle 设…...
如何安装部署kafka
安装和部署Apache Kafka需要以下几个步骤,包括下载 Kafka、配置 ZooKeeper(或者使用 Kafka 自带的 Kafka Raft 模式替代 ZooKeeper),以及启动 Kafka 服务。以下是一个但基于 Linux 的典型安装流程,可以根据需要改装到其…...
Centos7-rpm包管理器方式安装MySQL 5.7.25
前言 本文用于学习通过Mysql压缩包在centos7中安装和配置的过程以及过程中碰到的Bug解决。 Mysql安装包下载和上传 MySQL :: Download MySQL Community Server (Archived Versions)https://downloads.mysql.com/archives/community/访问Mysql官方下载站,选择对应的…...
Project Online 协作版部署方案
目录 前言 第一部分:为什么选择Project Online? 一、核心优势 二、适用场景 第二部分:部署前的准备工作 一、需求分析 二、账户和权限管理 三、培训与支持 第三部分:Project Online 的核心功能 一、项目创建与管理 二、资源管理 三、团队协作 四、风险管理 五…...
小米 13 Ultra机型工程固件 资源预览与刷写说明 步骤解析
小米 13 Ultra机型---机型代码为ishtar 。工程固件可以辅助修复格机或者全檫除分区后的基带修复。可以用于修复TEE损坏。以及一些分区的底层修复。此款固件也可以为更换UFS后的底包。 通过博文了解 1💝💝💝-----此机型工程固件的资源刷写注意事项 2💝💝💝-----此…...
Goweb预防XSS攻击
XSS攻击示例 假设您有一个简单的Web应用程序,其中包含一个用户输入表单,用户可以在其中输入他们的名字,然后这个名字会被显示在页面上。攻击者可以在表单中输入恶意的JavaScript代码,如,如果应用程序没有对这个输入进…...
ICM20948 DMP代码详解(36)
接前一篇文章:ICM20948 DMP代码详解(35) 上一回讲到了icm20948_sensor_setup() ---> inv_icm20948_initialize_auxiliary函数 ---> inv_icm20948_set_slave_compass_id函数,本回开始,就对于inv_icm20948_set_sla…...
【框架】Spring、SpringBoot和SpringCloud区别
Spring Spring是一个轻量级的控制反转(IoC)和面向切面(AOP)的容器(框架) IoC(Inversion of Control,控制反转)是一种设计思想,它主要用于降低软件系统中不同模块之间的耦合度,提高代码的可维护…...
计算机网络各层有哪些协议?
计算机网络的各层协议知识总结 一、物理层 没有涉及到比较重要的协议,但是有一个比较重要的技术----非对称数字用户线(ADSL) 二、数据链路层 1、点对点协议(PPP----point to point protocol,用户计算机与ISP进行通信…...
Diffusion Model Stable Diffusion(笔记)
参考资料: 文章目录 DDPM架构模型如何拥有产生逼真图片的能力Denoise模型功能Denoise模型如何训练考虑进文字 文生图流程(Stable Diffusion) DDPM架构 模型如何拥有产生逼真图片的能力 Denoise模型功能 通过Denoise将一个噪音图一步步生成为目标图像 Denoise实际…...
如何创建模板提示prompt
定义模型 from langchain_ollama import ChatOllamallm ChatOllama(base_url"http://ip:11434",model"qwen2",temperature0,tool_choice"auto" )什么是提示模板? 它的目的是根据不同的输入动态生成特定格式的文本,以便…...
C语言 | Leetcode C语言题解之第423题从英文中重建数字
题目: 题解: char * originalDigits(char * s) {int lenstrlen(s);int arr[26]{0},num[10]{0},cot0;for(int i 0; i < len; i)arr[s[i] - a];num[0] arr[z-a];num[2] arr[w-a];num[4] arr[u-a];num[6] arr[x-a];num[8] arr[g-a];num[1] arr[o…...
Jboss CVE-2017-12149 靶场攻略
漏洞简述 该漏洞为 Java反序列化错误类型,存在于 Jboss 的 HttpInvoker 组件中的 ReadOnlyAccessFilter过滤器中。该过滤器在没有进⾏任何安全检查的情况下尝试将来⾃客户端的数据流进⾏反序列化,从⽽导 致了漏洞 漏洞范围 JBoss 5.x/6.x 环境搭建 …...
docker详细操作--未完待续
docker介绍 docker官网: Docker:加速容器应用程序开发 harbor官网:Harbor - Harbor 中文 使用docker加速器: Docker镜像极速下载服务 - 毫秒镜像 是什么 Docker 是一种开源的容器化平台,用于将应用程序及其依赖项(如库、运行时环…...
2025年能源电力系统与流体力学国际会议 (EPSFD 2025)
2025年能源电力系统与流体力学国际会议(EPSFD 2025)将于本年度在美丽的杭州盛大召开。作为全球能源、电力系统以及流体力学领域的顶级盛会,EPSFD 2025旨在为来自世界各地的科学家、工程师和研究人员提供一个展示最新研究成果、分享实践经验及…...
vscode(仍待补充)
写于2025 6.9 主包将加入vscode这个更权威的圈子 vscode的基本使用 侧边栏 vscode还能连接ssh? debug时使用的launch文件 1.task.json {"tasks": [{"type": "cppbuild","label": "C/C: gcc.exe 生成活动文件"…...
鸿蒙中用HarmonyOS SDK应用服务 HarmonyOS5开发一个医院挂号小程序
一、开发准备 环境搭建: 安装DevEco Studio 3.0或更高版本配置HarmonyOS SDK申请开发者账号 项目创建: File > New > Create Project > Application (选择"Empty Ability") 二、核心功能实现 1. 医院科室展示 /…...
抖音增长新引擎:品融电商,一站式全案代运营领跑者
抖音增长新引擎:品融电商,一站式全案代运营领跑者 在抖音这个日活超7亿的流量汪洋中,品牌如何破浪前行?自建团队成本高、效果难控;碎片化运营又难成合力——这正是许多企业面临的增长困局。品融电商以「抖音全案代运营…...
2.Vue编写一个app
1.src中重要的组成 1.1main.ts // 引入createApp用于创建应用 import { createApp } from "vue"; // 引用App根组件 import App from ./App.vue;createApp(App).mount(#app)1.2 App.vue 其中要写三种标签 <template> <!--html--> </template>…...
如何在看板中有效管理突发紧急任务
在看板中有效管理突发紧急任务需要:设立专门的紧急任务通道、重新调整任务优先级、保持适度的WIP(Work-in-Progress)弹性、优化任务处理流程、提高团队应对突发情况的敏捷性。其中,设立专门的紧急任务通道尤为重要,这能…...
2025 后端自学UNIAPP【项目实战:旅游项目】6、我的收藏页面
代码框架视图 1、先添加一个获取收藏景点的列表请求 【在文件my_api.js文件中添加】 // 引入公共的请求封装 import http from ./my_http.js// 登录接口(适配服务端返回 Token) export const login async (code, avatar) > {const res await http…...
Spring AI与Spring Modulith核心技术解析
Spring AI核心架构解析 Spring AI(https://spring.io/projects/spring-ai)作为Spring生态中的AI集成框架,其核心设计理念是通过模块化架构降低AI应用的开发复杂度。与Python生态中的LangChain/LlamaIndex等工具类似,但特别为多语…...
Redis的发布订阅模式与专业的 MQ(如 Kafka, RabbitMQ)相比,优缺点是什么?适用于哪些场景?
Redis 的发布订阅(Pub/Sub)模式与专业的 MQ(Message Queue)如 Kafka、RabbitMQ 进行比较,核心的权衡点在于:简单与速度 vs. 可靠与功能。 下面我们详细展开对比。 Redis Pub/Sub 的核心特点 它是一个发后…...
