修复 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