Kernel Oops VPN inapoanza: ushahidi unaostahili kuhifadhiwa
Kuvunjika kwa VPN inapoanza kunahitaji build ya kernel inayolingana na ufuatiliaji wa kwanza, si picha ya mstari wa mwisho. Amua nini cha kuhifadhi kabla ya kuwasha upya.
Kuanzisha mteja wa VPN ni muhuri wa muda unaofaa, si sababu, na tofauti hiyo huamua kinachofuata. Kernel Oops inapotokea karibu na wakati huo, chaguo ni kati ya kukusanya ripoti ya hitilafu inayoweza kutumika na kusababisha kuvunjika kulekule mara tano zaidi kwenye mashine ya uzalishaji. Hifadhi vitu vinne kabla ya kuwasha upya: build kamili ya kernel, ufuatiliaji wa kwanza wa hitilafu, hali ya taint na maelezo mafupi ya kila kitu kingine kilichobadilika dakika hiyo hiyo. Kilichosalia ni tafsiri, na tafsiri inaweza kusubiri hadi ushahidi uwe mahali salama.
Kamata hitilafu ya kwanza, si mstari wa mwisho
Oops ya kwanza kwenye logi ndiyo muhimu, kwa sababu kila hitilafu inayofuata inaweza kuwa uharibifu wa pembeni kutoka kwa kernel ambayo tayari si nzima. Nakili kichwa cha habari pamoja na ufuatiliaji wa miito, kwa sababu kichwa hubeba maagizo yaliyoshindikana na hali ya rejista zinazotambua njia ya msimbo. Ripoti inayoanzia mstari wa mwisho ina thamani ndogo sana kwa yeyote atakayeisoma wiki moja baadaye.
Ikiwa mashine tayari imewashwa upya, bafa ya kernel ya uanzishaji uliopita mara nyingi bado iko kwenye jarida, mradi hifadhi ya kudumu ilikuwa imewezeshwa wakati huo. Isome kutoka faili iliyohifadhiwa badala ya kuunda upya mzigo wa kazi, kwa sababu uzalishaji wa pili unaweza kufuta kile unachohitaji. Mahali ambapo mashine haiwezi kuweka jarida kati ya uanzishaji upya, konsoli ya mfululizo au netconsole ndiyo njia pekee ambayo hitilafu itaonekana.
Funga build kabla ya kusoma alama yoyote
Majina ya vitendakazi na offset yana maana tu kuhusiana na faili ya binary iliyovizalisha, kwa hivyo andika mfuatano wa toleo la kernel na kitambulisho cha build cha usambazaji pamoja. Faili ya alama kutoka build nyingine inaelekeza kwenye mstari usiofaa kwa uhakika kamili, jambo ambalo ni baya kuliko kutokuwa na alama yoyote. Hifadhi toleo la kifurushi cha kernel, si nambari ya upstream pekee, kwa sababu usambazaji huhamisha mambo mengi nyuma.
Moduli zilizo nje ya mti zinastahili mstari wao wenyewe kwenye rekodi, kwa sababu kernel iliyotiwa taint hupunguza kile mtunzaji anaruhusiwa kuhitimisha. Soma thamani ya taint badala ya kuikisia kutoka kwenye orodha ya moduli.
Taint isiyo sufuri si tuhuma na haifanyi ripoti kuwa bila thamani. Inamwambia msomaji ni sehemu gani zilikuwa zimepakiwa wakati hitilafu ilitokea, na bendera zingine husababisha ripoti kupunguzwa kipaumbele kwa sera badala ya hukumu. Andika thamani, majina ya moduli na kama vifaa na mzigo huo huo viliwahi kuendesha kernel bila hizo. Ulinganisho huo wa mwisho ndio unaotenganisha regression mpya na hitilafu ya muda mrefu.
Tenganisha kichocheo na kasoro
Kuanzisha handaki kwa kawaida hutumia njia iliyokuwepo tayari: kiendeshi cha mtandao, nidhamu ya foleni, kipengele cha offload au hali ya nishati. Kichocheo hufafanua hitilafu inaonekana lini, si msimbo gani umekosea, na kuchukulia kichocheo kama sababu hupelekea mfululizo wa mabadiliko ya usanidi ambao haurekebishi chochote.
Picha ya awali iliyofanya kazi ni ushahidi, si uthibitisho. Wakati wa kulinganisha, badilisha sehemu moja kwa kila uanzishaji, na hifadhi matokeo mahali panapozidi mashine.
Angalia kile mtunzaji anaweza kutumia kwa kweli
Soma ripoti kama mgeni angeisoma kabla ya kuituma. Ikiwa usanidi, mfuatano kamili na utambulisho wa build vipo, na vitambulisho vimeondolewa, ripoti inaweza kutumika. Ikiwa ni picha ya ufuatiliaji wa rafu, itarudi na ombi la taarifa zilezile. Mwongozo wa kuwinda hitilafu za kernel unaeleza jinsi ufuatiliaji unaofaa na alama zinazolingana zinavyoonekana.
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:'
Kila amri iliyo juu inasoma hali tu, na mbili za kwanza zinafaa kuendeshwa kabla ya uanzishaji upya ujao ikiwa mashine bado inaweza kuzijibu. Mahali jarida si la kudumu, hizo mbili ndizo pekee zitakazowahi kufanya kazi tena.
Ondoa funguo, nenosiri na trafiki isiyohusiana, lakini hifadhi majina ya vitendakazi na offset ambazo mtu anahitaji kusoma ufuatiliaji. Tuma nyenzo kupitia njia ya kuripoti inayotumika kwa usambazaji au kernel, si kwa kubandika hadharani na jina la mwenyeji lililoambatishwa. Kisha subiri swali badala ya kuvuna kuvunjika zaidi, kwa sababu hitilafu iliyotambulika dhidi ya build inayolingana ndiyo tokeo pekee linalosukuma ripoti mbele. Ikiwa hakuna kinachorudi, mbadala ni uzalishaji upya unaodhibitiwa kwenye vifaa vya ziada, kamwe si kwenye mashine ambayo watu wengine wanaitegemea.