Ubuntu stracił połączenie sieciowe po aktualizacji jądra
Jak naprawiłem problemy sieciowe w Ubuntu
Po automatycznym zainstalowaniu nowego jądra, Ubuntu 24.04 straciła połączenie sieciowe ethernet. To irytujące pytanie wystąpiło u mnie drugi raz, dlatego dokumentuję rozwiązanie, aby pomóc innym, którzy napotkali ten sam problem.
Polecenia do naprawy problemów z siecią
Oto polecenia, które przywróciły mi połączenie sieciowe. Najpierw sprawdź wersję jądra za pomocą uname -r (pokaże coś w stylu 6.14.0-37-generic), a następnie zastąp numer wersji w poniższych poleceniach:
# Sprawdź interfejsy sieciowe i adresy IP
ifconfig
# Sprawdź wersję jądra
uname -r
# Zaktualizuj listy pakietów i uaktualnij system
sudo apt update
sudo apt upgrade
# Zainstaluj dodatkowe moduły jądra dla wersji wykrytej powyżej
# Zastąp 6.14.0-37-generic swoją rzeczywistą wersją jądra
sudo apt install linux-modules-extra-6.14.0-37-generic
# Przebuduj initramfs, aby uwzględnić nowe moduły jądra
sudo update-initramfs -u
# Zainstaluj zalecane sterowniki własnościowe (głównie dla grafiki NVIDIA)
sudo ubuntu-drivers autoinstall
# Przeładuj system, aby zastosować zmiany
sudo reboot
Zrozumienie problemu i rozwiązania
Kiedy Ubuntu automatycznie aktualizuje się do nowej wersji jądra (co zdarza się podczas normalnych aktualizacji systemu), czasami sterowniki sieciowe nie są poprawnie uwzględnione w nowym systemie plików uruchamiania jądra. To jest szczególnie typowe w przypadku Ubuntu 24.04 po aktualizacjach jądra, zwłaszcza na systemach z konkretnym sprzętem sieciowym, który wymaga dodatkowych modułów jądra.
Dlaczego to się zdarza
- Moduły jądra są wersyjne: Każda wersja jądra wymaga własnego zestawu modułów sterowników
- Initramfs może być niekompletny: Początkowy system plików RAM (initramfs) ładowany podczas uruchamiania może nie zawierać wszystkich koniecznych sterowników sieciowych
- Brakuje pakietu z modułami dodatkowymi: Pakiet
linux-modules-extradla nowej wersji jądra może nie zostać automatycznie zainstalowany
Jak działa rozwiązanie
Powyższe polecenia naprawiają problem w następujący sposób:
-
Instalacja dodatkowych modułów jądra: Pakiet
linux-modules-extra-<version>-genericzawiera dodatkowe moduły jądra, w tym wiele sterowników sieciowych, które nie są zawarte w podstawowym pakiecie jądra. Bez tych modułów sprzęcie sieciowym nie będzie można rozpoznać. -
Przebudowanie initramfs: Polecenie
update-initramfs -uzapewnia, że wszystkie konieczne moduły jądra (w tym sterowniki sieciowe) są pakowane do initramfs. Jest to krytyczne, ponieważ initramfs jest ładowany przed zamontowaniem głównego systemu plików i musi zawierać sterowniki dla kluczowego sprzętu, takiego jak interfejsy sieciowe. -
Instalacja sterowników własnościowych: Polecenie
ubuntu-drivers autoinstallgłównie obsługuje sterowniki graficzne (szczególnie NVIDIA) i nie naprawia bezpośrednio problemów z siecią. Jednak jeśli system stracił wiele sterowników podczas aktualizacji jądra, to zapewnia, że wszystkie sterowniki własnościowe są poprawnie zainstalowane. -
Przeładowanie systemu: To ładowa nowy jądro z poprawnie skonfigurowanym initramfs, przywracając połączenie sieciowe.
Po przeładowaniu systemu połączenie sieciowe powinno zostać przywrócone. Możesz to zweryfikować, uruchamiając ponownie ifconfig lub ip a, aby zobaczyć swoje interfejsy sieciowe z przypisanymi adresami IP. Jeśli potrzebujesz sprawdzić wersję Ubuntu w celu zapewnienia kompatybilności, dostępne są kilka metod.
Jeśli pracujesz z serwerem i potrzebujesz skonfigurować ustawienia sieciowe po przywróceniu połączenia, możesz znaleźć pomocny nasz przewodnik dotyczący jak zmienić statyczny adres IP w Ubuntu Server dla dalszej konfiguracji sieciowej.
