Ubuntu 20.04 内核升级后网络丢失问题的解决过程

news2024/9/25 9:34:13

在 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

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

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

相关文章

postman中使用Pre-request Script

一、get方法 get请求时 ,有多个params,并且有一个参数为sign,这个参数是有其他params拼接之后md5加密得到的,如何通过js语句获取params参数并生成sign。 const CryptoJS require(crypto-js); // 引入 CryptoJS 库进行 MD5 加密…

安卓数据存储——SQLite

一、SQLite数据库 创建表 CREATE TABLE IF NOT EXISTS user_info (_id INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL,name VARCHAR NOT NULL,age INTEGER NOT NULL,height LONG NOT NULL,weight FLOAT NOT NULL);注: IF NOT EXISTS:如果该表不存在则创…

Docker更换阿里容器镜像源

以Mac为例, 一、获取阿里容器镜像加速器地址 访问阿里云官网https://cn.aliyun.com/ 登录阿里云,没有账号就注册一个 登录完成后在搜索框搜索,容器镜像服务,并打开 点击管理控制台,进入管理控制台 左侧点击镜像加速…

ubuntu重新安装clickhouse

1.卸载clickhouse 关闭原来的clickhouse sudo systemctl stop clickhouse-server 查看关闭clickhouse是否成功 sudo systemctl status clickhouse-server 备份配置文件 /etc/clickhouse-server/user.xml /etc/clickhouse-server/config.d/metrika.xml /etc/clickhouse…

蚂蚁Raft一致性算法库SOFAJRaft深入分析

大家好,我是 V 哥,SOFAJRaft 是蚂蚁金服开源的一个基于 Raft 共识算法的 Java 实现,它特别适合高负载、低延迟的分布式系统场景。SOFAJRaft 支持 Multi-Raft-Group,能够同时处理多个 Raft 集群,具有扩展性和强一致性保…

实验室ICPR 2024论文分享┆FPMT: 基于增强型半监督模型的交通事件检测(含详细视频解读)

目录 论文分享简介 1. 会议介绍 2. 研究背景及主要贡献 3. 方法 4. 实验 5. 结论 6. 论文介绍视频 论文分享简介 本推文详细介绍了一篇实验室的最新论文成果《FPMT: Enhanced Semi-Supervised Model for Traffic Incident Detection》,该论文已被第27届国际…

尚硅谷———-乐(智)尚代驾~~--------Day5----司机认证篇~

前言: Hello亲爱的uu们,在读过了一个愉快的周末后(摸鱼了一会),我又回来更新啦,感谢uu们的阅读,话不多说~ 司机认证 当司机点击开始接单的时候,会先判断该司机有没有通过认证&…

关于PCA的一份介绍

在这篇文章中,我将介绍机器学习中的一种无监督学习算法——PCA,因为它主要有两种用途,即降维与特征提取,所以我将将围绕这两种用途来介绍它,包括基本概念,应用与代码实践。 一、 PCA 1.1 概念 PCA&#…

dev containers plugins for vscode构建虚拟开发环境

0. 需求说明 自用笔记本构建一套开发环境,用docker 虚拟插件 dev containers,实现开发环境的构建,我想构建一套LLMs的环境,由于环境配置太多,不想污染本地环境,所以选择隔离技术 1. 环境准备 vscodedocker 2. 步骤…

任意长度并行前缀和 扫描算法 《PMPP》笔记

下面的算法针对于任意长度输入 对于大数据集,首先将输入分为几段,每一段放进共享内存并用一个线程块处理,比如一个线程块使用1024个线程的话,每个块最多能处理2048个元素。 在前面代码中,一个块最后的执行结果保存到了…

桥接模式和NET模式的区别

桥接模式和NET模式的区别 NAT模式: NAT:网络地址转换(模式):借助宿主机来上网,没桥接那么麻烦,只用配置DNS即可。 缺点:扎根于宿主机,不能和局域网内其它真实的主机进行…

用Python实现运筹学——Day 2: 线性规划的基本概念

一、学习内容 线性规划的定义: 线性规划(Linear Programming, LP)是一种用于求解约束条件下线性目标函数最优解的方法。线性规划问题通常涉及最大化或最小化一个线性目标函数,目标函数的变量受一组线性不等式或等式的约束。 目标…

C语言 | Leetcode C语言题解之第435题无重叠区间

题目: 题解: int cmp(int** a, int** b) {return (*a)[1] - (*b)[1]; }int eraseOverlapIntervals(int** intervals, int intervalsSize, int* intervalsColSize) {if (intervalsSize 0) {return 0;}qsort(intervals, intervalsSize, sizeof(int*), cm…

【React】Ant Design 5.x版本drawer抽屉黑边问题

环境 antd: ^5.14.1react: ^18 问题情况 <Drawer open{open} closable{false} mask{false} width{680}getContainer{props.getContainer || undefined}><p>Some contents...</p><p>Some contents...</p><p>Some contents...</p> …

[网络] 网络层--IP协议

目录 一、IP协议 1.1 基本概念 1.2 IP协议报头 1.3 如何将报头和有效载荷分离和分用 1.4 分片与组装 1.5 如何减少分片&#xff1f; 1.6 分片和封装的具体过程 二、网段划分 2.1 再次理解IP地址 2.2 了解DHCP 2.3 网络划分方案 2.4 为什么要进行网络划分 2.5 特殊的…

Java基础——字节流和字符流

字节流和字符流的用法几乎完全一样&#xff0c;区别在于字节流和字符流所操作的数据单元不同&#xff0c;字节流操作的单元是数据单元是8位的字节&#xff0c;字符流操作的是数据单元为16位的字符。 为什么要有字符流&#xff1f; Java中字符是采用Unicode标准&#xff0c;Un…

【Go语言】Go语言结构体全面解析

✨✨ 欢迎大家来到景天科技苑✨✨ &#x1f388;&#x1f388; 养成好习惯&#xff0c;先赞后看哦~&#x1f388;&#x1f388; &#x1f3c6; 作者简介&#xff1a;景天科技苑 &#x1f3c6;《头衔》&#xff1a;大厂架构师&#xff0c;华为云开发者社区专家博主&#xff0c;…

基于 Canvas 的可缩放拖动网格示例(Vue3以及TypeScript )

文章目录 1. 基本知识2. Vue33. TypeScript 1. 基本知识 基本知识讲解&#xff1a; Canvas API&#xff1a; 一种用于在网页上绘制图形的 HTML 元素&#xff0c;使用 JavaScript 的 Canvas API 来进行绘制 使用 getContext(2d) 方法获取 2D 绘图上下文&#xff0c;允许开发者绘…

MySQL数据库备份详解

文章目录 引言● 数据库备份的重要性 MySQL数据库备份的基础知识● 备份类型1、完全备份2、增量备份3、差异备份 ● 备份工具与方法1、逻辑备份工具——mysqldump2、物理备份工具——Xtrabackup3、第三方解决方案 MySQL数据库备份的实施步骤1、环境准备2、选择合适的备份工具与…

【Linux基础IO】深入解析Linux基础IO缓冲区机制:提升文件操作效率的关键

&#x1f4dd;个人主页&#x1f339;&#xff1a;Eternity._ ⏩收录专栏⏪&#xff1a;Linux “ 登神长阶 ” &#x1f921;往期回顾&#x1f921;&#xff1a;暂无 &#x1f339;&#x1f339;期待您的关注 &#x1f339;&#x1f339; ❀Linux基础IO &#x1f4d2;1. 什么是缓…