A VPN-kliens indítása kényelmes időbélyeg, nem ok, és ez a különbség dönti el, mi történik ezután. Amikor egy kernel-Oops abban a pillanatban történik, a választás egy használható hibajelentés összegyűjtése és ugyanazon összeomlás még ötszöri kiváltása között van egy éles gépen. Mentsen el négy dolgot újraindítás előtt: a pontos kernel-buildet, az első hibanymot, a taint állapotát és egy rövid leírást minden másról, ami ugyanabban a percben megváltozott. A többi értelmezés, és az értelmezés várhat, amíg a bizonyítékok biztonságos helyen vannak.

Az első hibát fogja meg, ne az utolsó sort

A napló első Oops-ja az, amely számít, mert minden későbbi hiba egy már egészségtelen kernel mellékkára lehet. Másolja ki a fejlécet a hívásnyommal együtt, mert a fejléc hordozza a hibát okozó utasítást és a kódútvonalat azonosító regiszterállapotot. Az utolsó sorral kezdődő jelentés nagyon keveset ér annak, aki egy hét múlva olvassa.

Ha a gép már újraindult, az előző indítás kernelpuffere gyakran még a naplóban van, feltéve, hogy akkor az állandó tárolás engedélyezve volt. Olvassa ki a mentett fájlból ahelyett, hogy újra létrehozná a terhelést, mert egy második reprodukció felülírhatja, amire szüksége van. Ahol a gép nem tud naplót tartani újraindítások között, a soros konzol vagy a netconsole az egyetlen módja annak, hogy a hiba valaha látható legyen.

Rögzítse a buildet, mielőtt bármely szimbólumot olvasna

A függvénynevek és az eltolások csak ahhoz a bináris fájlhoz képest jelentenek valamit, amely létrehozta őket, ezért jegyezze fel együtt a kernel kiadási karakterláncát és a disztribúció build-azonosítóját. Egy másik buildből származó szimbólumfájl teljes bizonyossággal a rossz sorra mutat, ami rosszabb, mint ha egyáltalán nem lenne szimbólum. Tartsa meg a kernelcsomag verzióját, ne csak az upstream számot, mert a disztribúciók sokat portolnak vissza.

A fán kívüli modulok saját sort érdemelnek a feljegyzésben, mert egy taintelt kernel korlátozza, mit következtethet a karbantartó. Olvassa le a taint értékét, ne a modullistából következtessen rá.

A nullától eltérő taint nem vád, és nem teszi értéktelenné a jelentést. Megmondja az olvasónak, mely komponensek voltak betöltve a hiba idején, és bizonyos jelzők miatt egy jelentés inkább szabályzat, mint megítélés alapján kerül alacsonyabb prioritásra. Jegyezze fel az értéket, a modulok neveit és azt, hogy ugyanaz a hardver és terhelés valaha futtatott-e kernelt nélkülük. Éppen ez az utolsó összehasonlítás választja el az új regressziót a régóta fennálló hibától.

Válassza szét a kiváltó okot a hibától

Az alagút indítása általában egy már létező útvonalat gyakoroltat: egy hálózati illesztőprogramot, egy sorvárakozási fegyelmet, egy offload-funkciót vagy egy energiaállapotot. A kiváltó ok azt magyarázza meg, mikor jelenik meg a hiba, nem azt, melyik kód hibás, és a kiváltó ok okként kezelése olyan konfigurációváltozások sorához vezet, amelyek semmit sem javítanak.

Egy működő korábbi lemezkép bizonyíték, nem bizonyítás. Összehasonlításkor indításonként egy komponenst változtasson, és az eredményeket olyan helyen tartsa, amely túléli a gépet.

Ellenőrizze, mit tud a karbantartó valóban használni

Olvassa el a jelentést úgy, ahogy egy idegen olvasná, mielőtt elküldi. Ha a konfiguráció, a pontos sorrend és a build identitása jelen van, és a hitelesítő adatok eltűntek, a jelentés használható. Ha egy vermi nyom képernyőképe, ugyanazon információk kérésével tér vissza. A kernel hibakeresési útmutató leírja, hogyan néz ki egy hasznos nyom és a hozzá illő szimbólumok.

uname -r
cat /proc/sys/kernel/tainted
journalctl -k -b -1 --no-pager | sed -n '/BUG:/,/Call Trace/p'
dmesg -T | grep -A 40 'RIP:'

A fenti parancsok mindegyike csak állapotot olvas, és az első kettőt a következő újraindítás előtt kellene futtatni, ha a gép még tud rájuk válaszolni. Ahol a napló nem marad meg, pontosan az a kettő az egyetlen, amely valaha újra működni fog.

Távolítsa el a kulcsokat, jelszavakat és a nem kapcsolódó forgalmat, de tartsa meg a függvényneveket és eltolásokat, amelyekre valakinek szüksége van a nyom olvasásához. Az anyagot a disztribúcióra vagy a kernelre vonatkozó bejelentési úton küldje el, ne egy nyilvános beillesztésen keresztül, amelyhez hosztnév van csatolva. Ezután várjon egy kérdésre ahelyett, hogy további összeomlásokat gyűjtene, mert egy megfelelő buildhez képest lokalizált hiba az egyetlen eredmény, amely előre viszi a jelentést. Ha semmi sem jön vissza, a tartalék egy ellenőrzött reprodukció tartalék hardveren, soha nem azon a gépen, amelytől mások függenek.

Kapcsolódó cikkek