Ubuntu stracił połączenie sieciowe po aktualizacji jądra

Jak naprawiłem problemy sieciowe w Ubuntu

Page content

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

  1. Moduły jądra są wersyjne: Każda wersja jądra wymaga własnego zestawu modułów sterowników
  2. Initramfs może być niekompletny: Początkowy system plików RAM (initramfs) ładowany podczas uruchamiania może nie zawierać wszystkich koniecznych sterowników sieciowych
  3. Brakuje pakietu z modułami dodatkowymi: Pakiet linux-modules-extra dla 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:

  1. Instalacja dodatkowych modułów jądra: Pakiet linux-modules-extra-<version>-generic zawiera 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ć.

  2. Przebudowanie initramfs: Polecenie update-initramfs -u zapewnia, ż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.

  3. Instalacja sterowników własnościowych: Polecenie ubuntu-drivers autoinstall głó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.

  4. 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.

Bardzo dobra Borat!

Przydatne linki