在 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