Błąd ładowania modułu rozruchowego SLES: znajdź sterownik i napraw go

Gdy podczas rozruchu SLES wyświetla komunikat „Nie udało się uruchomić modułu ładowania jądra”, najpierw sprawdź systemd-modules-load.servicelogi, aby zidentyfikować moduł, który uległ awarii. Jeśli moduł jest przestarzałym, opcjonalnym wpisem, usuń to żądanie z jego konfiguracji; jeśli jest wymagane, napraw niezgodność sterownika lub jądra zamiast wyłączać usługę.

Niniejsza procedura dotyczy systemu SUSE Linux Enterprise Server (SLES) 15 i opiera się na dokumentacji administracyjnej systemu SLES 15 SP7. Polecenia należy uruchamiać z konsoli lokalnej lub z działającej sesji SSH z sudodostępem.

Co oznacza wiadomość, zanim cokolwiek zmienisz

Moduł jądra to sterownik lub funkcja jądra, którą można załadować osobno. Podczas uruchamiania systemd-modules-load.serviceprzetwarza żądania załadowania określonych modułów, w tym tych zdefiniowanych w modules-load.dplikach. Nieudane żądanie może spowodować awarię usługi, nawet gdy inne części serwera nadal działają.

SUSE zauważa, że ​​większość sterowników ładuje się automatycznie po wykryciu sprzętu. Ręczna lista modułów jest zazwyczaj zbędna, więc nieaktualny wpis jest uzasadniony – ale sam komunikat rozruchowy tego nie potwierdza. Zachowaj dostęp do konsoli, wykonaj migawkę systemu lub kopię zapasową konfiguracji, jeśli jest dostępna, i nie zwalniaj pamięci sterowników pamięci masowej, sieci ani klastra tylko po to, aby ostrzeżenie zniknęło. Informacje na temat obsługiwanego modelu można znaleźć w podręczniku administratora modułów jądra SUSE .

Krok 1: Odczytaj stan usługi i jej dziennik rozruchu

Zacznij od systemd status. systemdJest to menedżer usług odpowiedzialny za uruchamianie usług i raportowanie ich stanu.

sudo systemctl status systemd-modules-load.service --no-pager
sudo journalctl -b -u systemd-modules-load.service --no-pager

Flaga -bogranicza się journalctldo bieżącego rozruchu i -uwybiera tę usługę. Sprawdź powyżej ostatniego wiersza „Niepowodzenie z wynikiem” komunikaty takie jak „Nie znaleziono modułu”, nieprawidłowa opcja lub błąd uprawnień lub podpisu. Zapisz dokładną nazwę modułu i tekst błędu. Nie zakładaj, że moduł o nazwie podanej w poniższym przykładzie istnieje na Twoim serwerze.

Status terminala dla systemd-modules-load.service ze stanem niepowodzenia i kodem wyjścia 1
Przykładowy widok stanu usługi: uszkodzona jednostka identyfikuje usługę startową, która wymaga zbadania.
Dziennik terminala pokazujący przykładowy komunikat o nieudanym znalezieniu modułu dla example_driver
Przykładowy dziennik rozruchowy: ilustracyjna nazwa modułu example_driver jest kluczem do śledzenia, a nie zweryfikowanym błędem SLES.

Jeśli dziennik serwisowy nie daje jednoznacznych odpowiedzi, sprawdź komunikaty jądra, aby uzyskać dodatkowe szczegóły:

sudo journalctl -k -b --no-pager

Jeśli komputer nie może nawiązać użytecznego logowania, uruchom starsze jądro z GRUB-a, jeśli jest dostępne, lub skorzystaj z nośnika ratunkowego SLES. Nie edytuj modułów krytycznych dla rozruchu z nieprzetestowanej sesji zdalnej. SUSE dokumentuje filtry dziennika w rozdziale poświęconym administracji journalctl .

Krok 2: Znajdź konfigurację startową, która tego wymaga

Załóżmy, że nazwy czasopism example_driver… Zastąp ten symbol zastępczy rzeczywistą nazwą modułu, a następnie przeszukaj listy modułów:

sudo grep -Rns --include='*.conf' 'example_driver' \
  /etc/modules-load.d /run/modules-load.d \
  /usr/lib/modules-load.d 2>/dev/null

Każdy pasujący wiersz wskazuje, który plik żąda danego modułu podczas rozruchu. Lokalna konfiguracja administratora zazwyczaj znajduje się w /etc/modules-load.d/, podczas gdy pakiet może udostępniać swój plik w . Plik lokalny o tej samej nazwie bazowej ma pierwszeństwo przed plikiem dostawcy, zgodnie z opisem w podręczniku konfiguracji systemd w systemie/usr/lib/modules-load.d/ SUSE . Jeśli wyszukiwanie nic nie da, należy również sprawdzić żądania modułów podczas rozruchu i upewnić się, że nazwa błędu została poprawnie skopiowana.cat /proc/cmdline

Otwórz pasujący plik i sprawdź, czy wpis jest nadal potrzebny sprzętowi lub aplikacji. Moduł żądany dla starego, usuniętego urządzenia różni się od sterownika kontrolera pamięci masowej lub mechanizmu nadzorującego klaster.

Edytor tekstu terminala z opcjonalnym wpisem example_driver w pliku /etc/modules-load.d/example.conf
Przykładowa konfiguracja lokalna: zmień opcjonalny wpis modułu dopiero po potwierdzeniu jego celu.

Krok 3: Przetestuj moduł, a następnie zastosuj odpowiednią naprawę

Sprawdź, które jądro jest uruchomione i czy dostępny jest dla niego sterownik. modprobeŁaduje moduły jądra i rozwiązuje zależności. Ta -nopcja przeprowadza próbę bez konieczności instalowania żadnego z nich.

uname -r
modinfo example_driver
sudo modprobe -n -v example_driver

Ponownie, zastąp example_driver. Próbny rozruch pomaga zidentyfikować problemy z wyszukiwaniem lub konfiguracją, ale nie dowodzi , że sterownik zainicjuje się poprawnie na sprzęcie lub przejdzie kontrolę podpisu Secure Boot. SUSE zaleca, modprobeaby nie insmodładować bezpośrednio; szczegóły dotyczące flag próbnego rozruchu znajdują się w podręczniku modprobe .

Terminal z poleceniem modprobe do wykonania próby dla example_driver i uname -r kernel-version check
Przykładowe sprawdzenia: przed wprowadzeniem zmian porównaj działające jądro z modułem, który chcesz sprawdzić.

Jeśli przestarzały opcjonalny wpis wskazuje na brakujący moduł

Utwórz kopię zapasową konkretnego pliku lokalnego i zakomentuj tylko przestarzały wiersz. Na przykład, jeśli /etc/modules-load.d/example.confjest to potwierdzone źródło:

sudo cp -a /etc/modules-load.d/example.conf \
  /etc/modules-load.d/example.conf.bak
sudoedit /etc/modules-load.d/example.conf

Zmień pojedynczy example_driverwpis na # example_driver, zapisz i pozostaw inne żądania modułów nienaruszone. Jeśli źródłem jest plik pakietu w /usr/lib, nie edytuj tego pliku bezpośrednio; użyj poprawnie sprawdzonego lokalnego nadpisania lub popraw konfigurację pakietu. Nigdy nie usuwaj żądania modułu tylko dlatego, że modinfozgłasza jego brak, podczas gdy odpowiednie urządzenie jest wymagane.

Jeśli wymagany moduł jest nieobecny lub niezgodny

Nie należy tego komentować. Upewnij się, że pakiet sterowników obsługuje dane wyjściowe uname -rzainstalowanego pakietu serwisowego SLES. Komunikat „nie znaleziono modułu” może wskazywać, że pasujący sterownik nie został zainstalowany lub nie został przebudowany po aktualizacji jądra. Komunikat „nieprawidłowy format modułu” sugeruje problem ze zgodnością; wiersze logów jądra mogą go dodatkowo zawęzić. Przywróć lub ponownie zainstaluj obsługiwany pasujący sterownik za pomocą systemu SUSE lub instrukcji producenta sprzętu. Unikaj kopiowania dowolnych .koplików z innego jądra.

Jeżeli moduł istnieje, ale jego indeks zależności jest ewidentnie nieaktualny, utwórz ponownie ten indeks dla bieżącego jądra i spróbuj ponownie przeprowadzić próbę:

sudo depmod -a "$(uname -r)"
sudo modprobe -n -v example_driver

Ten krok nie instaluje brakującego sterownika. Jeśli w systemie Secure Boot pojawi się komunikat „Wymagany klucz niedostępny” lub odrzucenie podpisu modułu, należy postępować zgodnie z procedurą rejestracji zaufanego klucza i podpisywania sterowników firmy SUSE; nie należy wyłączać funkcji Secure Boot jako ogólnego obejścia. Firma SUSE wyjaśnia ograniczenia dotyczące sterowników innych firm w swoich wskazówkach dotyczących wdrażania funkcji Secure Boot .

Krok 4: Sprawdź, czy kolejny rozruch jest czysty

Po poprawieniu konfiguracji lub przywróceniu sterownika, spróbuj ponownie uruchomić moduł ładujący i sprawdź jego status. Zrób to dopiero po upewnieniu się, że wszystkie pozostałe wpisy są poprawne; ponowne uruchomienie spowoduje ponowną próbę załadowania skonfigurowanych elementów.

sudo systemctl restart systemd-modules-load.service
sudo systemctl status systemd-modules-load.service --no-pager
sudo journalctl -b -u systemd-modules-load.service --no-pager

Jeśli jednostka zakończy się powodzeniem, zaplanuj kontrolowany restart z dostępem do konsoli i ponownie uruchom polecenia status i journal. Naprawa zostanie potwierdzona, gdy usługa nie będzie już awariować po nowym uruchomieniu, a wszelki wymagany sprzęt lub oprogramowanie zależne od modułu nadal będzie działać. Jeśli błąd wystąpi ponownie, porównaj nowy dziennik ze starym: inny wymieniony moduł również może być uszkodzony. Zachowaj kopię zapasową do momentu pomyślnego zakończenia kontroli; nie maskuj jej systemd-modules-load.servicetylko po to, aby ukryć komunikat startowy.

Zostaw komentarz

Włącz tryb FIPS w systemie SLES 15 i sprawdź stan rozruchu

Włącz tryb FIPS w systemie SLES 15 i sprawdź stan rozruchu

Postępuj zgodnie z procedurą SUSE SP7, aby włączyć tryb FIPS, bezpiecznie przeprowadzić ponowne uruchomienie, zweryfikować aktywną politykę i sprawdzić, czy wymagania dotyczące zgodności obejmują sprawdzone moduły.

Konfigurowanie woluminu danych zaszyfrowanego za pomocą LUKS na SLES

Konfigurowanie woluminu danych zaszyfrowanego za pomocą LUKS na SLES

Porównaj YaST i cryptsetup dla nowego zaszyfrowanego woluminu danych SLES, wybierz LUKS1 lub LUKS2 i sprawdź, czy odblokowywanie i montowanie przebiega bezpiecznie.

Zbuduj lokalny serwer aktualizacji SUSE z RMT na SLES 15

Zbuduj lokalny serwer aktualizacji SUSE z RMT na SLES 15

Skonfiguruj RMT na SLES 15, utwórz kopię lustrzaną uprawnionych repozytoriów i zweryfikuj rejestrację HTTPS oraz dostęp do pakietów z poziomu klienta testowego.

Dołączanie SLES 15 do Active Directory za pomocą SSSD w YaST

Dołączanie SLES 15 do Active Directory za pomocą SSSD w YaST

Połącz SLES 15 z usługą Active Directory za pomocą opartego na SSSD mechanizmu logowania YaST, a następnie zweryfikuj wyszukiwanie w katalogu, logowanie do domeny i bilety Kerberos.

Włącz funkcję SLES Live Patching i zweryfikuj poprawkę jądra

Włącz funkcję SLES Live Patching i zweryfikuj poprawkę jądra

Skonfiguruj właściwą ścieżkę Live Patching dla systemu SLES 16.0 lub 15 SP7, zastosuj odpowiednie poprawki jądra i potwierdź, co jest aktywne, nie myląc tego z aktualizacją jądra wymaganą przy ponownym uruchomieniu komputera.

Zachowaj dostępność usług podczas aktualizacji SLES 15 SP5 do SP6

Zachowaj dostępność usług podczas aktualizacji SLES 15 SP5 do SP6

SLES 15 SP5 można migrować online do SP6, ale każdy węzeł wymaga ponownego uruchomienia. Użyj sprawdzonej aktualizacji ciągłej lub przejścia na system Blue-Green, aby utrzymać dostępność obciążeń.

Zbuduj niestandardowy profil AppArmor w systemie SUSE Linux

Zbuduj niestandardowy profil AppArmor w systemie SUSE Linux

Utwórz, udoskonal i zweryfikuj profil AppArmor o najniższych uprawnieniach w systemie SLES 15 SP7, z czytelną notatką na temat domyślnego ustawienia SELinux w systemie SLES 16.

Bezpieczne stosowanie SLES 15 STIG z OpenSCAP

Bezpieczne stosowanie SLES 15 STIG z OpenSCAP

Użyj obsługiwanego profilu STIG firmy SUSE do skanowania systemu SLES 15, testowania działań naprawczych, przeglądania pozostałych ustaleń i zachowywania dowodów oceny.

Przywróć dostęp do kokpitu w systemie SUSE Linux Enterprise Server

Przywróć dostęp do kokpitu w systemie SUSE Linux Enterprise Server

Prześledź nieudane połączenie z Cockpitem przez DNS, port 9090, gniazdo systemd, zaporę firewalld, TLS i ustawienia logowania, korzystając z bieżących wskazówek SUSE.

Konfigurowanie niezawodnego przełączania awaryjnego sieci Ethernet z łączeniem SLES 15

Konfigurowanie niezawodnego przełączania awaryjnego sieci Ethernet z łączeniem SLES 15

Utwórz redundantne połączenie Ethernet w systemie SLES 15 za pomocą YaST i Wicked, skonfiguruj łączenie aktywnych kopii zapasowych i zweryfikuj oba porty oraz funkcję przełączania awaryjnego.