Fix Zorin OS Network Error


Zorin OS 18.1 Core: After a system upgrade, the network suddenly stopped working on the next boot. Here is my resolution process.

Symptoms

  • After boot, the wired connection could not access the internet. Inspection showed that the driver loaded normally, but DHCP could not obtain an IP address.
  • With a statically configured IP address, it still could not ping the gateway.
  • Switching to a Type-C USB wired NIC allowed the system to access the internet normally.
  • Using a PE environment, the onboard NIC could also ping the gateway normally.

Hardware details

  • Motherboard: ASUS B150M-PLUS (2015)
  • NIC: onboard Intel Corporation Ethernet Connection (2) I219-V
  • GPU: NVIDIA GeForce GTX 1050 Ti
  • Current kernel version: uname -r => 6.14.0-37-generic

Diagnostic conclusion

  • Because I had recently run apt update && sudo apt upgrade, and based on the above troubleshooting, I could conclude that the hardware was fine and that this was a system issue. The onboard NIC model and driver are supported by the kernel and included by default, so it was a system issue.
  • Also, with Linux systems, you always run into hardware abnormalities after upgrades. The most common one is the NVIDIA graphics driver black screen issue I encountered.
  • Moreover, I had previously held the kernel version with apt-mark hold, but the system kernel was still forcibly upgraded.

Solution

Since the problem was caused by a kernel upgrade, let’s start dealing with it from the kernel. After searching and checking, I found that for my system and hardware, the most suitable kernel version is 6.8.0. The graphics driver was nvidia-driver-550, but in Ubuntu 24.04, 550 has become a transitional package; the official path is 580, and 580 also works, so I will use 580 for the graphics driver.

# Search kernel versions; the latest version at the current time is 6.8.0-146
apt-cache search linux-image-6.8.0 | grep generic

# Install the older kernel
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

# Install the graphics driver
sudo apt install -y nvidia-driver-580

# Hold the kernel and graphics driver versions
sudo apt-mark hold linux-image-${KERNEL_VERSION}-generic \
	linux-headers-${KERNEL_VERSION}-generic \
	nvidia-driver-580

# Modify GRUB to boot from the old kernel

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

sudo update-grub

# sudo reboot
# Then after the motherboard splash screen, press Esc to enter Advanced options and select the old kernel to boot

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

# To avoid being upgraded again, make the system not check related packages at all
sudo tee /etc/apt/preferences.d/block-kernel-nvidia > /dev/null <<'EOF'
Package: linux-image-* linux-headers-* nvidia-*
Pin: release *
Pin-Priority: -1
EOF