Home
» Hoe
»
Fout bij het laden van de SLES-opstartmodule: zoek het stuurprogramma en los het probleem op.
Fout bij het laden van de SLES-opstartmodule: zoek het stuurprogramma en los het probleem op.
Als SLES tijdens het opstarten de melding "Failed to Start Load Kernel Modules" weergeeft, controleer dan eerst systemd-modules-load.servicede logbestanden om de module te identificeren die de fout veroorzaakt. Als de module een verouderde optionele vermelding is, verwijder dan het verzoek uit de configuratie; als de module vereist is, herstel dan de driver- of kernelmismatch in plaats van de service uit te schakelen.
Deze procedure is van toepassing op SUSE Linux Enterprise Server (SLES) 15, waarbij de SLES 15 SP7-beheerdocumentatie als referentie wordt gebruikt. Commando's moeten worden uitgevoerd vanaf een lokale console of een werkende SSH-sessie met sudotoegang.
Wat betekent het bericht voordat je iets verandert?
Een kernelmodule is een stuurprogramma of kernelfunctie die afzonderlijk kan worden geladen. Tijdens het opstarten systemd-modules-load.serviceverwerkt het proces verzoeken om specifieke modules te laden, inclusief modules die in modules-load.dbestanden zijn gedefinieerd. Een mislukt verzoek kan ertoe leiden dat de betreffende service vastloopt, zelfs als andere onderdelen van de server blijven functioneren.
SUSE merkt op dat de meeste stuurprogramma's automatisch worden geladen wanneer hardware wordt gedetecteerd. Een handmatige modulelijst is meestal niet nodig, dus een verouderde vermelding is een redelijke mogelijkheid – maar het opstartbericht alleen bewijst dit niet. Behoud toegang tot de console, maak een systeemsnapshot of configuratieback-up indien beschikbaar en verwijder geen opslag-, netwerk- of clusterstuurprogramma's alleen om de waarschuwing te laten verdwijnen. Raadpleeg de SUSE- handleiding voor kernelmodulebeheer voor het ondersteunde model.
Stap 1: Lees de servicestatus en het opstartlogboek.
Begin met de status van systemd. systemdDit is de servicemanager die verantwoordelijk is voor het starten van services en het rapporteren van hun status.
De -bvlag beperkt zich journalctltot de huidige opstart en -uselecteert deze service. Kijk boven de laatste regel "Mislukt met resultaat" voor berichten zoals "Module niet gevonden", een ongeldige optie of een toestemmings- of handtekeningfout. Noteer de exacte modulenaam en foutmelding. Ga er niet vanuit dat de module die in het onderstaande voorbeeld wordt genoemd, op uw server bestaat.
Voorbeeld van een servicestatusweergave: de defecte eenheid geeft aan welke opstartservice nader onderzocht moet worden.Voorbeeld van een opstartlogboek: de illustratieve modulenaam example_driver is de aanwijzing om de fout op te sporen, niet een geverifieerde SLES-fout.
Als het servicelogboek geen uitsluitsel geeft, controleer dan de kernelberichten voor meer informatie:
sudo journalctl -k -b --no-pager
Als de computer geen bruikbare aanmelding kan bereiken, start dan een oudere geïnstalleerde kernel vanuit GRUB (indien beschikbaar) of gebruik de SLES-herstelmedia. Bewerk geen opstartkritieke modules vanuit een niet-geteste sessie die alleen op afstand toegankelijk is. SUSE beschrijft logboekfilters in het hoofdstuk over journalctl-beheer .
Stap 2: Zoek de opstartconfiguratie die dit aanvraagt.
Stel dat de tijdschriftnamen zijn example_driver. Vervang die placeholder door de daadwerkelijke modulenaam en doorzoek vervolgens de modulelijsten:
Elke overeenkomende regel geeft aan welk bestand die module aanvraagt tijdens het opstarten. De lokale configuratie van een beheerder bevindt zich meestal onder /etc/modules-load.d/, terwijl een pakket zijn bestand mogelijk onder aanlevert /usr/lib/modules-load.d/. Een lokaal bestand met dezelfde basisnaam heeft voorrang op het bestand van de leverancier, zoals beschreven in de SUSE- handleiding voor systemd-configuratie . Als de zoekopdracht niets vindt, controleer dan ook cat /proc/cmdlineop moduleaanvragen tijdens het opstarten en verifieer of de foutnaam correct is gekopieerd.
Open het bijbehorende bestand en controleer of de module nog steeds nodig is voor de hardware of applicatie. Een module die wordt aangevraagd voor een oud, verwijderd apparaat is iets anders dan een stuurprogramma voor een opslagcontroller of een clusterwatchdog.
Voorbeeld van lokale configuratie: wijzig de optionele module-ingang pas nadat u het doel ervan hebt bevestigd.
Stap 3: Test de module en voer vervolgens de bijbehorende reparatie uit.
Controleert welke kernel actief is en of het stuurprogramma ervoor beschikbaar is. modprobeLaadt kernelmodules en lost afhankelijkheden op; de -noptie voert een testrun uit zonder een module in te voegen.
Vervang opnieuw example_driver. De dry run helpt bij het identificeren van zoek- of configuratieproblemen, maar bewijst niet dat een driver succesvol zal initialiseren op uw hardware of de Secure Boot-handtekeningcontroles zal doorstaan. SUSE raadt aan om modprobein plaats van direct insmodte laden; details over de dry run-vlaggen vindt u in de modprobe-handleiding .
Voorbeeldcontroles: vergelijk de actieve kernel met de module die u onderzoekt voordat u wijzigingen aanbrengt.
Als een verouderde optionele vermelding verwijst naar een ontbrekende module
Maak een back-up van het betreffende lokale bestand en zet alleen de verouderde regel in commentaar. Bijvoorbeeld, als /etc/modules-load.d/example.confdit de bevestigde bron is:
sudo cp -a /etc/modules-load.d/example.conf \
/etc/modules-load.d/example.conf.bak
sudoedit /etc/modules-load.d/example.conf
Wijzig een enkele example_driververmelding naar # example_driver, sla op en laat andere moduleverzoeken intact. Als de bron een pakketbestand is onder /usr/lib, bewerk dat pakketbestand dan niet rechtstreeks; gebruik een correct gecontroleerde lokale overschrijving of laat de configuratie van het pakket corrigeren. Verwijder nooit een moduleverzoek alleen omdat modinfomeldt dat het ontbreekt als het bijbehorende apparaat vereist is.
Als een vereiste module ontbreekt of incompatibel is
Zet de regel niet in commentaar. Controleer of het stuurprogrammapakket de uitvoer van uname -ren het geïnstalleerde SLES-servicepack ondersteunt. Een bericht 'module niet gevonden' kan erop wijzen dat het bijbehorende stuurprogramma niet is geïnstalleerd of niet opnieuw is gecompileerd na een kernelupdate. Een bericht 'ongeldig moduleformaat' duidt op een compatibiliteitsprobleem; kernel-logregels kunnen dit verder specificeren. Herstel of installeer het ondersteunde stuurprogramma opnieuw via de instructies van SUSE of de hardwareleverancier. Vermijd het kopiëren van willekeurige .kobestanden van een andere kernel.
Als de module bestaat maar de bijbehorende afhankelijkheidsindex aantoonbaar verouderd is, moet u die index opnieuw opbouwen voor de huidige kernel en de test opnieuw uitvoeren.
sudo depmod -a "$(uname -r)"
sudo modprobe -n -v example_driver
Deze stap installeert geen ontbrekend stuurprogramma. Als u de melding 'Vereiste sleutel niet beschikbaar' of een afwijzing van de modulehandtekening ziet op een Secure Boot-systeem, volg dan de workflow van SUSE voor het registreren van vertrouwde sleutels en het ondertekenen van stuurprogramma's; schakel Secure Boot niet uit als algemene oplossing. SUSE legt de beperkingen voor stuurprogramma's van derden uit in de richtlijnen voor de implementatie van Secure Boot .
Stap 4: Controleer of de volgende opstart schoon is.
Nadat u de configuratie hebt gecorrigeerd of het stuurprogramma hebt hersteld, probeert u de loader opnieuw en controleert u de status ervan. Doe dit alleen nadat u hebt gecontroleerd of alle resterende invoerwaarden correct zijn; bij een herstart worden de geconfigureerde laadprocessen opnieuw uitgevoerd.
Als de module succesvol is, plan dan een gecontroleerde herstart met consoletoegang en voer de status- en logopdrachten opnieuw uit. De oplossing is bevestigd wanneer de service na de nieuwe opstart niet meer faalt en alle benodigde hardware of software die van de module afhankelijk is, nog steeds werkt. Als de fout terugkeert, vergelijk dan het nieuwe logbestand met het oude: mogelijk is een andere vermelde module ook defect. Bewaar de back-up totdat deze controle is geslaagd; maskeer het logbestand niet systemd-modules-load.servicealleen om het opstartbericht te onderdrukken.