修复 Zorin OS 网络故障


Zorin OS 18.1 Core 执行完系统升级后,第二天开机突然就无法上网了。下面就是我的解决过程。

现象

  • 有线连接的网络开机后无法上网,检查发现,驱动正常加载,dhcp 无法获取到 IP 地址
  • 静态配置 IP 地址,也无法 ping 通网关
  • 更换一个 type-c USB 有线网卡系统可以正常上网
  • 使用 PE 系统,板载网卡也可以正常 ping 通网关

硬件详情

  • 主板:ASUS B150M-PLUS(2015年)
  • 网卡:板载 Intel Corporation Ethernet Connection (2) I219-V
  • 显卡:NVIDIA GeForce GTX 1050 Ti
  • 当前系统内核版本:uname -r => 6.14.0-37-generic

诊断结论

  • 因为最近执行过 apt update && sudo apt upgrade 而且经过上面的排查,可以判断硬件正常,是系统问题,而板载网卡的型号驱动等都是内核支持且自带的,所以是系统问题
  • 同时对于 Linux 系统来说,总是会碰到升级后硬件异常的问题,最常见的就是我遇到的 nvidia 显卡驱动黑屏问题
  • 而且我之前已经通过 apt-mark hold 过内核版本,但仍然被强制升级了系统内核

解决方案

是因为内核升级导致的问题,那我们就从内核那里开始处理,经搜索和检查发现对于我这个系统和硬件,最适配的内核版本为6.8.0,显卡驱动为 nvidia-driver-550 在 Ubuntu 24.04 550 已变为过渡包,官方路径就是 580,然后 580 也能使用,那显卡驱动就用 580。

# 搜索 kernel version,找到当前时间最新的版本为 6.8.0-146
apt-cache search linux-image-6.8.0 | grep generic

# 安装旧版本内核
export KERNEL_VERSION=6.8.0-146
sudo apt update
sudo apt install -y linux-image-${KERNEL_VERSION}-generic \
	linux-headers-${KERNEL_VERSION}-generic \
	linux-modules-extra-${KERNEL_VERSION}-generic

sudo apt purge -y "*nvidia"
sudo apt autoremove -y

# 安装显卡驱动
sudo apt install -y nvidia-driver-580

# 锁定内核与显卡版本
sudo apt-mark hold linux-image-${KERNEL_VERSION}-generic \
	linux-headers-${KERNEL_VERSION}-generic \
	nvidia-driver-580

# 修改 grub 从旧内核启动

sudo vi /etc/default/grub
# GRUB_DEFAULT=0
GRUB_DEFAULT=saved
GRUB_SAVEDEFAULT=true

sudo update-grub

# sudo reboot 重启
# 然后过了主板之后,按 esc 进入 advanced 选择旧内核启动

# 检查
uname -r
nvidia-smi
dpkg --get-selections | grep hold

# 为了避免再次被升级,让系统直接不检查相关的包
sudo tee /etc/apt/preferences.d/block-kernel-nvidia > /dev/null <<'EOF'
Package: linux-image-* linux-headers-* nvidia-*
Pin: release *
Pin-Priority: -1
EOF