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

news/2024/9/22 5:25:55 标签: ubuntu, linux, 运维

在 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.niftyadmin.cn/n/5669729.html

相关文章

一些线上常用排查问题的命令

排查CPU过高时使用到的一些命令 top free df top命令 top 命令是一个动态的实时视图,显示系统的整体运行状况,包括 CPU 使用率、内存使用情况、进程信息等。 free 命令 free 命令用于显示系统中物理内存和交换内存的使用情况。 df 命令 df 命令用…

ESP8266+DHT11+Python制作一个物联网温湿度传感器

ESP8266是一款低功耗、高集成度的Wi-Fi SOC(System on Chip,系统级芯片),这款芯片专为物联网(IoT)应用而设计,常见开发ESP8266的环境可以使用Arduino或者ESP8266 RTOS SDK、NodeMCU,…

在Linux中运行flask项目

准备 这里我准备了一个GitHub上某个大佬写的留言板的Flask项目,就用这个来给大家做示范了。 查看留言板的目录结构 查看主程序所用的库函数 只有一个第三方库 Flask 安装pip sudo apt install python3-pip -y测试 pip 安装成功 修改pip镜像源 修改pip的默认下载…

C++_数据封装详解

C 数据封装 所有的 C 程序都有以下两个基本要素: 程序语句(代码):这是程序中执行动作的部分,它们被称为函数。程序数据:数据是程序的信息,会受到程序函数的影响。 封装是面向对象编程中的把数…

常见项目场景题2(多次输错密码禁止登录,分布式下多线程抢夺资源)

多次输错密码后如何禁止一定时间内用户再次登录 通常使用 IP 地址为单位来进行限制,而非具体的用户。这样可以减少误伤其他用户的可能性。 (一个非法用户可能会拿他人的账号不断尝试登录) 同时,以 IP 地址为单位进行限制还可以避…

山东潍坊戴尔存储服务器维修 md3800f raid恢复

山东戴尔存储故障维修 存储型号:DELL PowerVault md3800f 故障问题:存储除尘后通电开机,发现有物理硬盘没有插到位,用户带电拔插了多块物理盘,导致关连的磁盘阵列掉线,卷失败; 处理方式&#xf…

pytorch 算子调用kernel示例(MINIST)

pytorch 算子调用kernel示例(MINIST) 当进行 MNIST 分类任务时,PyTorch 中的每一个算子会根据设备类型(CPU 或 CUDA)自动选择合适的内核(kernel)进行计算。本文以GPU为例,介绍算子调用kernel的过程。 1. …

基于主从Reactor模型实现高并发服务器

目录 1. 项目简介1.1 环境介绍1.2 项目定位1.3 功能模块整体划分 2. Reactor简介2.1 Reactor模型分析2.2 多Reactor多线程分析:多I/O多路复用线程池(业务处理) 3. 日志宏的编写4. Server模块4.1 Buffer模块4.1.1 Buffer的功能4.1.2 Buffer的实…