कर्नेल पैनिक लॉग कहां हैं?


31

मुझे हैंडब्रेक / ffmpeg की समस्या है। ~ 5 मिनट के ट्रांसकोडिंग के बाद, कंप्यूटर लॉक हो जाता है। मुझे पूरा यकीन है कि यह एक कर्नेल पैनिक है क्योंकि कैप्स-लॉक चमकने लगता है।

क्या करना है और कुछ विशिष्ट बग के बारे में कुछ तार्किक प्रश्न हैं, लेकिन मैं वास्तव में एक बात के बाद हूं: क्या सब कुछ ठीक होने से पहले हुआ था ?!

मैंने जाँच की है /var/log/kern.logऔर समय के आसपास मैं देख रहा हूँ कि एक डीवीडी में चिपके हुए हैं और फिर कुछ मिनट बाद, सिस्टम बूट हो रहा है। कोई त्रुटि नहीं, कोई पैनिक नोटिस नहीं।

क्या पैनिक को मजबूर करने का कोई तरीका है? मुझे पूरा यकीन है कि मैं इसे पुन: उत्पन्न कर सकता हूं (यह हाल ही में मेरे द्वारा कोशिश की गई 100% बार हुआ है) जबकि मैं यह "बस काम" कर रहा हूं, अगर मैं इसका मतलब है तो मैं कुछ समय के लिए रिबूट करने के लिए पर्याप्त खुश हूं आतंक का कारण खोजें।


कोई विशेष संदेश जो आपको ट्रांसकोडिंग के समय मिलता है? नीचे समाधान पर नज़र रखने में उपयोगी हो सकता है;)
रिनजविंड

@ रंजविंद नोप। कुछ भी नहीं दिखा, बस जम गया।
ओली

सबसे अधिक संभावना एक overheating समस्या है। ट्रांसकोडिंग सीपीयू को हार्ड ड्राइव करता है, और यदि आपका कूलिंग 100% प्रभावी नहीं है तो सीपीयू आपातकालीन शटडाउन में चला जाएगा। मैंने देखा है ऐसा तब होता है जब थर्मल पेस्ट को सीपीयू हीटसिंक पर सुखाया जाता था, उदाहरण के लिए। यह तब भी हुआ जब ओवरक्लॉकिंग सेटिंग्स को BIOS में गड़बड़ कर दिया गया था। लॉकअप से ठीक पहले सीपीयू तापमान की निगरानी के लिए xsensors का उपयोग करने का प्रयास करें।
नील मैय्यूज

जवाबों:


21

उबंटू के सभी अपने सिस्टम लॉग द्वारा नियंत्रित किया जाता है rsyslog, जिसमें इसके विन्यास रहता है /etc/rsyslog.confऔर /etc/rsyslog.d/

कॉन्फ़िगर करने के तरीके rsyslogऔर संभावित विकल्पों के बारे में अधिक जानकारी के लिए rsyslog.conf man page

खोलना /etc/rsyslog.d/50-default.confआप देख सकते हैं कि लाइनों में से एक है

*.*;auth,authpriv.none -/var/log/syslog*

मतलब कि इस मामले में आप जिस फ़ाइल की तलाश कर रहे हैं, वह आपके पास मौजूद विशाल /var/log/syslogलॉग में से कोई है।

आप देख सकते हैं कि फ़ाइल का नाम भी इसके साथ शुरू होता है -, इसका मतलब है कि फ़ाइल लिखने से पहले कैश की गई है, इसका महान लेकिन आपको एक बुरे लॉग के साथ छोड़ सकता है, आप जो चाहते हैं वह यह है कि लॉग जल्द से जल्द लिखा जाता है कि कोई समस्या है। डैश हटा दें और रिबूट या पुनः लोड करें rsyslogऔर फिर अपने कंप्यूटर को फिर से क्रैश करें, जांचें /var/log/syslog


1
हटा दिया गया कि "-" रिबूट, जाँच / var / log / syslog | घबराहट। काम नहीं किया। क्या मैं कुछ भुल गया ?
AAI

26

यदि यह वास्तव में एक कर्नेल पैनिक है तो इसे सामान्य तरीकों से लॉग में नहीं लिखा जाएगा। चूँकि कर्नेल इस बिंदु पर दुर्घटनाग्रस्त हो गया है, फाइलसिस्टम में लिखना एक जोखिम भरा ऑपरेशन है - कर्नेल पर ज्यादा भरोसा नहीं किया जा सकता है, इसलिए लॉग में लिखना वास्तव में आपके बूटलोडर पर यादृच्छिक बकवास को उगल सकता है!

इसके बजाय, आप मेमोरी की सामग्री को अपने स्वैप में डंप कर सकते हैं, और फिर बाद में डीबग कर सकते हैं। इसे कर्नेल क्रैश / कोर डंप के रूप में जाना जाता है।

उबंटू विकी के पास एक क्रैशडम्प्रेसिप है जो उपयोगी हो सकता है - हालांकि यह थोड़ा पुराना है, मुझे नहीं लगता कि बहुत अधिक परिवर्तन होना चाहिए।


10
CrashdumpRecipe Sourceforge पर उपलब्ध लिनक्स कर्नेल क्रैश डंप (LKCD) टूल को संदर्भित करता है - इसमें उबंटू नामक पैकेज है linux-crashdump; यह पैकेज अभी भी सभी संस्करणों में उपलब्ध है।
मेई

3

सीरियल पोर्ट

सीरियल पोर्ट कंप्यूटरों के बीच एक सरल निम्न स्तरीय संचार तंत्र है।

लाभ:

  • एक बार सरल सेटअप (यदि आपके पास हार्डवेयर है)
  • विश्वसनीय, चूंकि डेटा ट्रांसमिशन केवल एक साधारण तारों और कर्नेल एपीआई पर निर्भर करता है, जो कहने की तुलना में आतंक से प्रभावित होने की कम संभावना है, टीसीपी / आईपी सबसिस्टम।

downsides:

  • अधिकांश आधुनिक लैपटॉप में स्थान बचाने के लिए अब सीरियल पोर्ट (उजागर) नहीं है। लेकिन डेस्कटॉप और वर्चुअल मशीन अभी भी करते हैं।
  • आपको डेटा प्राप्त करने के लिए सीरियल पोर्ट के साथ एक दूसरे कंप्यूटर की भी आवश्यकता है, लेकिन मूल रूप से सभी एम्बेडेड विकास बोर्डों जैसे रास्पबेरी पाई के लिए यह मामला है।
  • टीसीपी / आईपी नेटवर्क के विपरीत भौतिक परत सीरियल केबल की लंबाई तक सीमित है, जो असीमित हैं। हालांकि यह एक ऐसे डिवाइस के साथ काम किया जा सकता है जो सीरियल और टीसीपी / आईपी के बीच में अंतर करता है। लेकिन ऐसे उपकरण हैं जो दोनों के बीच परिवर्तित होते हैं।

सीरियल पोर्ट इस तरह दिखता है:

और RPI पर GPIO के माध्यम से उपलब्ध है।

फिर, यदि आपके पास आवश्यक हार्डवेयर है, तो दूसरे कंप्यूटर से मुख्य कंप्यूटर से कनेक्ट करें:

screen /dev/ttyS0 115200

यह वास्तव में आपको एक खोल देता है।

फिर मुख्य मशीन पर, ऑपरेशन शुरू करें जो आतंकित करता है।

जब घबराहट होती है, तो दहशत डंप दूसरी मशीन पर प्रवाहित होती है, और आप इसे टर्मिनल पर स्क्रॉल करके देख सकते हैं।

अन्य विधियाँ

अन्य तरीके भी हैं जो अधिक जटिल और कम विश्वसनीय होने की कीमत पर ऊपर उल्लिखित हार्डवेयर सीमाओं को पार करते हैं। उल्लेखनीय तरीके:

  • netdump: TCP / IP पर घबराहट को रोकता है। TCP / IP सबसिस्टम पर निर्भर नहीं किया जा रहा है दूषित।
  • kdump: प्रतीत होता है कि linux-crashdump के अंतर्निहित तंत्र में उल्लिखित है: https://askubuntu.com/a/104793/52975 दुर्घटनाग्रस्त कर्नेल की जांच करने के लिए एक दूसरा लिनक्स कर्नेल बूट करता है। क्या गलत होने की सम्भावना है?! :-)

इस शानदार उत्तर को भी देखें: https://unix.stackexchange.com/questions/60574/determining-cause-of-linux-kernel-panic

कदम डिबगिंग

अंततः, पैनिक आउटपुट प्राप्त करने के लिए यह आवश्यक है कि कुछ कर्नेल कार्यक्षमता कार्य करें, और किसी भी कर्नेल कार्यक्षमता को पैनिक द्वारा दूषित किया जा सकता है।

लेकिन अगर आप कर्नेल पर जीडीबी का उपयोग कर सकते हैं तो पैनिक की जरूरत किसे है? यदि आप उस कट्टर हैं, तो एक नज़र डालें:

पूर्ण दृश्यता (और पर्याप्त समय!) होने के बाद हर समस्या गिर जाती है।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.