Alt + sysrq + REISUB मेरे लैपटॉप को रीबूट नहीं करता है


59

इस अवसर पर, मेरा लैपटॉप अटक गया है, इसलिए मैंने एक सुरक्षित रिबूट प्रदर्शन करने के लिए Alt+ SysRq+ के जादू कुंजी संयोजन का उपयोग किया है REISUB। हालाँकि, यह मेरे लिए काम नहीं करता है जब मैं Bकुंजी दबाता हूं जादू की कुंजी कमांड को पूरा करने के लिए यह बस कहता है, "रीसेट ..." और कुछ भी नहीं करता है।

अन्य सभी कुंजियाँ ठीक काम करने लगती हैं क्योंकि यह कीबोर्ड लेआउट को रीसेट करती है, सभी कार्यों को मारती है, लेकिन यह रिबूट के साथ पूरा नहीं होता है।

मैं इस धारणा के तहत था कि मेरे लैपटॉप को रिबूट करना चाहिए, क्योंकि मैजिक कीज को सभी को REISUB के क्रम में दबाया गया है।

जवाबों:


58

बग को ठीक करने के लिए Alt + SysRq को अक्षम कर दिया गया है। मैजिक-SysRq को निष्क्रिय करना एक बग ही माना जाता था और तब से इसे फिर से सक्षम ( # 1025467 ) किया गया है। यदि यह अभी भी आपके लिए अक्षम है, तो आप इसे फिर से सक्षम कर सकते हैं:

Ubuntu 12.04 और पुराने

लाइन शामिल करने के लिए फ़ाइल /etc/sysctl.conf संपादित करें

kernel.sysrq=1

Ubuntu 12.10 और नया

उबंटू 12.10 के साथ शुरू करना एक अधिक बारीक-बारीक नियंत्रण है, जिसमें मैजिक-एससर्क फीचर सक्षम हैं। बस फ़ाइल /etc/sysctl.d/10-magic-sysrq.conf संपादित करें ।

फ़ाइल अच्छी तरह से प्रलेखित है और आपको बताती है कि किस तरह की विशेषताओं को सक्षम करना है। वर्तमान डिफ़ॉल्ट को सुरक्षा उद्देश्यों के लिए चुना गया था और इसे तभी बदला जाना चाहिए जब आपको पता हो कि आपको क्यों जरूरत है (सुरक्षा निहितार्थ के लिए # 194676 देखें )।


6
नहीं, यह नहीं है। यह मावरिक, नैट्टी, वनैरिक और सटीक पर ठीक काम करता है।
3

यह वास्तव में बग को हल करने के लिए अक्षम था, लेकिन इसे फिर से सक्षम किया गया है। मैंने जवाब अपडेट किया। क्या हमें प्रश्न को थोड़ा और सामान्य करने के लिए संपादित करना चाहिए?
मुनि

1
@geezanansa आप अपनी टिप्पणियों को संपादित कर सकते हैं, जबकि वे अभी भी गर्म हैं। कृपया कई लगातार टिप्पणियां जोड़ने से बचें। इसके अलावा, SysRq मेरे लिए 13.04 पर काम करता है। हालांकि स्थापना के बाद ही इसे लाइव डीवीडी पर कभी भी आज़माया नहीं गया। इसलिए, मैं इस उत्तर के उत्थान को नहीं समझता क्योंकि यह बहुत कम समय अवधि (बग रिपोर्ट देखें) के बारे में है। ;)
gertvdijk

1
@gertvdijk: जब मैंने अपने द्वारा पूछे गए प्रश्न / sysctl.d / 10-मैजिक-sysrq.conf को अपडेट किया जिसमें सब कुछ के लिए sysrq पैरामीटर शामिल हैं जो आपको सभी संबंधित कार्यों को सक्षम करने की आवश्यकता है। जब सवाल पूछा गया (2010 में), तो यह वास्तव में समाधान था क्योंकि "बी" वास्तव में एक बग के कारण डिफ़ॉल्ट रूप से निष्क्रिय हो गया था। मैंने उद्देश्य पर उत्तर को और अधिक सामान्य होने के लिए बदल दिया है, मैं उत्तर देता हूं कि sysrq पूरी तरह से विघटनकारी है और आंशिक रूप से विघटनकारी भी है।
mness

1
@geezanansa, हाँ, मुझे लगता है कि उन्होंने इसे क्वांटल में अक्षम कर दिया था, जब मैंने पोस्ट किया था कि
psusi

31

कीबोर्ड यहां मुद्दा है!

  • कुछ को एक ही समय में 4-की-डाउन पसंद नहीं है और जब तक आप कुछ जारी नहीं करते हैं, तब तक बस एक कीबोर्ड होना बंद कर दें।
  • जब आप SysRq सिग्नल भेजते हैं तो सभी कीबोर्ड QWERTY लेआउट में बदल जाते हैं। इससे कीबोर्ड पर दूसरे लेआउट के साथ सही कमांड ढूंढना मुश्किल हो जाता है। विकिपीडिया: SysRq कमांड सामान्य वैकल्पिक लेआउट के लिए सही खोजने के लिए एक तालिका दिखाती है।
  • कुछ के पास फ़ंक्शन कुंजी के साथ रखने की SysRqतुलना में एक और कुंजी है PrtSc। मेरे लैपटॉप पर यह Fn+ है End। होल्डिंग Alt+ PrtScकेवल तभी काम करता है जब कुछ सिस्टम प्रोसेस (विंडो मैनेजर?) मेरे लिए इसका अनुवाद करता है। कुल दुर्घटना पर, केवल असली SysRq काम करता है!
  • कुछ ही ट्रिगर SysRqकुंजी एक बार आप पकड़ सही Alt + PrtSc(हार्डवेयर द्वारा)। बाईं ओर Alt-key ऐसे मामले में काम नहीं करेगी, जो ऊपर के समान कारण के लिए है। यह मेरा USB कीबोर्ड कैसे काम करता है।
  • सुझाव: हिटिंग की कोशिश Shift+ Alt+ SysRqएक आभासी टर्मिनल पर एक 'सहायता' पर उत्पादन को देखने के लिए। यह देखने के लिए उपयोगी है कि क्या यह बिना किसी नुकसान के काम कर रहा है:

    SysRq: HELP: loglevel (0-9) क्रैश टर्मिनेट-ऑल-टास्क (E) मेमोरी-फुल-ओओम-किल (F) किल-ऑल-टास्क (I) thaw-filesystems (J) saK शो-बैकट्रेस-ऑल -एक्टिव-सीपीस (एल) शो-मेमोरी-यूज (एम) अच्छा-ऑल-आरटी-टास्क (एन) पॉवरऑफ शो-रजिस्टर (पी) शो-ऑल-टाइमर्स (क्यू) अनारक सिंक शो-टास्क-स्टेट्स (टी) अनमाउंट शो-अवरुद्ध-कार्य (W) डंप-फुट-बफर (Z)

सभी मामलों में मुझे पता चला है कि यह काम नहीं किया, कीबोर्ड की अदला-बदली ने पूरी तरह से काम किया और दिखाया कि किसी भी कर्नेल सेटिंग में कुछ भी गलत नहीं था।


2
@geezanansa मैंने कीबोर्ड को स्पष्ट रूप से कुछ 4-कुंजी संयोजनों को संभालने में असमर्थ देखा है। इसे बदलने से समस्या हल हो गई। वास्तव में। यह आपके सभी कीबोर्ड के लिए काम कर सकता है , हालाँकि। और यदि आप upvotes को नहीं समझते हैं, तो आप क्यों नहीं समझाते हैं?
gertvdijk

2
जेम्स को देखते हुए सभी sysrq कमांड बी के अपवाद के साथ काम करने की पुष्टि करते हैं। यह उत्तर उस प्रश्न का उत्तर नहीं है जिसे मैं पढ़ता हूं कि sysrq B काम क्यों नहीं करता है? की-बोर्ड जेम्स या कई अन्य लोगों के लिए समस्या नहीं है। -1
गीज़नान

17

विशेषताएं :
https://fedoraproject.org/wiki/QA/Sysrq#How_do_I_use_the_magic_SysRq_key है जिसके द्वारा मूल काम पर आधारित था
क्रेडिट
Mydraal द्वारा लिखित
एडम Sulmicki द्वारा अपडेट
जेरेमी एम डोलन 2001/01/28 10:15:59 द्वारा अपडेट
जोड़ा गया क्राउनर डनवंत द्वारा

https://askubuntu.com/a/11194/102029 mneiss ने लॉन्चपैड के लिए लिंक प्रदान किए।

अंतर्वस्तु

सिसरक क्या है?
RESIUB (O) काम क्यों नहीं करता है?

1 मैं जिस तरह से चाहूं, वैसा बर्ताव करने के लिए मुझे सिसरक कैसे हो सकता है?
1.1 जादू SysRq कुंजी क्या है?
1.2 मैं जादू SysRq कुंजी को कैसे सक्षम करूं?
1.3 मैं जादू SysRq कुंजी का उपयोग कैसे करूँ?
1.4 'कमांड' कीज क्या हैं?
1.5 ठीक है, तो मैं उनके लिए क्या उपयोग कर सकता हूं?

1.6 समस्या निवारण

1.6.1 initcripts चलाने से पहले हैंगिंग
1.6.2 कभी-कभी SysRq का उपयोग करने के बाद 'अटक' लगता है, मैं क्या कर सकता हूं?
1.6.3 मैंने SysRq को मारा, लेकिन ऐसा कुछ नहीं हुआ, क्या गलत है?
1.6.4 मैं एक मॉड्यूल में SysRQ प्रमुख घटनाओं को जोड़ना चाहता हूं, यह कैसे काम करता है?
1.6.5 निष्कर्ष
1.6.6 परिशिष्ट
नोट।
आपको सहायक सामग्री तालिका का उपयोग करने के लिए Ctrl+ Fका उपयोग करना पड़ सकता है ।

SysRq क्या है?

यह ठंड या सिस्टम फ़ाइल क्षति या डेटा की हानि के लिए अग्रणी डिस्क भ्रष्टाचार के जोखिम limitising साथ बंद करने के बाद मशीन का उपयोग फिर से का एक आम अच्छी तरह से जाना जाता है और इस्तेमाल किया विधि का उपयोग करने के लिए है
Alt+ SysRq+ rऔर फिर sऔर फिर eऔर फिर iऔर फिर uउसके बाद और bऔर / या यदि आवश्यक हो ( o)

यह कई (यानी खुद और जेम्स) के लिए उम्मीद के मुताबिक काम नहीं कर रहा है, सभी प्रकार के स्वादों के माध्यम से> = 8.04LTS से वर्तमान 13.04 रिलीज।

RESIUB (O) काम क्यों नहीं करता है?

लॉन्चपैड बग 194676 पर पाए गए इस बग विवरण पर विचार करें :

समस्या का विवरण:
डिफ़ॉल्ट रूप से उबंटू डेस्कटॉप सिस्टम पर डिफ़ॉल्ट रूप से SysRq सक्षम है जो कि अमूल्य है जब एक सिस्टम लॉक हो गया है और आप इसे यथासंभव धीरे से रोकना चाहते हैं या समस्या को डीबग करना चाहते हैं। हालांकि कई लोग आश्चर्यचकित हैं कि आप इसे वर्तमान मेमोरी की सामग्री को कीबोर्ड से केवल कंसोल (या dmesg) के साथ डंप करने के लिए भी कह सकते हैं।
openSUSE ने अपने SysRq पर 176 का एक डिफ़ॉल्ट बिटमास्क सेट किया है जो डिफ़ॉल्ट रूप से आपको सिंक, रिबूट और "रीमाउंट-रीड-ओनली" को प्रतिबंधित करता है। यह डिफ़ॉल्ट रूप से sysrq का उपयोग करने वाले लोगों को स्मृति का निरीक्षण करने के लिए रोकता है जो समझदार लगता है।

उबंटू डेवलपर्स ने इस बारे में कुछ करने की आवश्यकता को देखा और उल्लेखित अवलोकन की संभावित जटिलताओं को देखते हुए सबसे अच्छा समाधान यह है कि डिफ़ॉल्ट रूप से बिटस्मस्क 176 sysrq को लागू करने के लिए उपयोगकर्ता इनपुट की आवश्यकता पैदा करके sysrq को सेट करें जैसा कि वे चाहते हैं। Bitmask 176 केवल अनुमति देता है S, U, Bजो सिंक, रिमाउंट घुड़सवार विभाजन और रिबूट है।
पूरी बग रिपोर्ट और टिप्पणियों को पढ़ने से कुछ विकल्प उजागर होंगे जो आपके सिस्टम पर लागू हो सकते हैं।

विभिन्न हार्डवेयर, कर्नेल, कीबोर्ड और बिटकॉम्स के संचित प्रभाव का मतलब है कि sysrq अलग-अलग लोगों के लिए अलग-अलग व्यवहार कर रहा है।

Txt आउटपुट प्राप्त करने का एक तरीका यह है कि आपका सिस्टम sysrq का उपयोग कैसे कर रहा है, tty से sysrq कमांड को लागू करना है (जब सिस्टम ताले / फ्रीज से पीड़ित नहीं है)। ऐसा करने से संकेत मिल सकता है कि sysrq पूरी तरह से अक्षम नहीं किया गया है, लेकिन बिटमास्क 176 का उपयोग कर रहा है।

13.04 डेस्कटॉप amd64 liveDVD पर / proc / sys / कर्नेल / sysrq की खोज करना और एक 13.04 डेस्कटॉप amd64 स्थापित होना डिफ़ॉल्ट की पुष्टि करता है वर्तमान में बिट्सस्क 176 पर sysrq को छोड़ना है।

यदि sysrq आपके लिए काम करता है; यह पूछने योग्य हो सकता है, "अगर मैंने 10-मैजिक-साइसरक सेटिंग्स को नहीं बदला है, तो किसने किया?"

1 मैं जिस तरह से चाहूं, वैसा बर्ताव करने के लिए मुझे सिसरक कैसे हो सकता है?

क्या एक संपादित प्रतिलिपि और https://fedoraproject.org/wiki/QA/Sysrq का पेस्ट है ।

1.1 जादू SysRq कुंजी क्या है?

यह एक 'जादुई' कुंजी कॉम्बो है जिसे आप हिट कर सकते हैं जो कि कर्नेल को जो कुछ भी कर रहा है उसकी परवाह किए बिना जवाब देगा, जब तक कि यह पूरी तरह से बंद न हो।

1.2 मैं जादू SysRq कुंजी को कैसे सक्षम करूं?

sysrq उबंटू कर्नेल में बनाया गया है, लेकिन बूट-टाइम पर डिफ़ॉल्ट रूप से अक्षम है, 10-मैजिक-sysrq.conf का उपयोग करके।

इसे बूट समय पर फिर से सक्षम करने के लिए, आपको /etc/sysctl.d/10-magic-sysrq.conf फ़ाइल को संपादित करना होगा। अर्थात इस लाइन को अनसुना करने से sysrq के सभी कार्य सक्षम हो जाएंगे:

#   1 - enable all functions of sysrq

जब SysRq के साथ संकलित किया जा रहा है, / proc / sys / कर्नेल / sysrq चला रहा है, तो SysRq कुंजी के माध्यम से आह्वान किए जाने वाले कार्यों को नियंत्रित करता है। यहाँ / proc / sys / कर्नेल / sysrq में संभावित मानों की सूची दी गई है:

0 - disable sysrq completely
1 - enable all functions of sysrq
>1 - bitmask of allowed sysrq functions (see below for detailed function description):
    2 - enable control of console logging level
    4 - enable control of keyboard (SAK, unraw)
    8 - enable debugging dumps of processes etc.
    16 - enable sync command
    32 - enable remount read-only
    64 - enable signalling of processes (term, kill, oom-kill)
    128 - allow reboot/poweroff
    176 - allow only sync, reboot and "remount read-only"
    256 - allow nicing of all RT tasks 

आप निम्न कमांड द्वारा फ़ाइल में मान सेट कर सकते हैं।

echo "number" >/proc/sys/kernel/sysrq

तो पूरी तरह से सक्षम करने के लिए यह होगा।

echo "1" > /proc/sys/kernel/sysrq

या कर भी सकते हैं।

sysctl -w kernel.sysrq=1  

ध्यान दें।
/ Proc / sys / कर्नेल / sysrq का मान केवल कीबोर्ड के माध्यम से मंगलाचरण को प्रभावित करता है। / ऑपरेशन / sysrq- ट्रिगर के माध्यम से किसी भी ऑपरेशन का आह्वान हमेशा अनुमति देता है (व्यवस्थापक विशेषाधिकारों के साथ एक उपयोगकर्ता द्वारा-नीचे देखें)।

1.3 मैं जादू SysRq कुंजी का उपयोग कैसे करूँ?

उबंटू डेस्कटॉप

आप कुंजी कॉम्बो Alt+ SysRq+ दबाएं command key

NB- इस अनुभाग में और अन्य सिस्टम और कीबोर्ड के लिए अन्य संभावित डिफ़ॉल्ट सेटिंग्स के लिए समस्या निवारण अनुभाग में नोट देखें।

अपने चयन के किसी भी चरित्र को सेट करना संभव है: ऑल आर्किटेक्चर

/ खरीद / sysrq-ट्रिगर के लिए एक चरित्र लिखें:

echo t > /proc/sysrq-trigger

नोट केT रूप में व्यवहार सेट करेगा SysRq

कुछ कीबोर्ड में एक कुंजी लेबल नहीं हो सकता है SysRqSysRqकुंजी के रूप में भी जाना जाता है Print Screenकुंजी। इसके अलावा कुछ कीबोर्ड एक ही समय में दबाए जा रहे इतने सारे कुंजी को संभाल नहीं सकते हैं, इसलिए आपके पास Alt+ के साथ बेहतर भाग्य हो सकता है SysRq- SysRqफिर प्रेस करें command keyफिर सब कुछ जारी करें। QA का पूरा लेखन देखें, जो इस गाइड https://fedoraproject.org/wiki/QA/Sysrq#How_do_I_use_the_magic_SysRq_key.3F पर आधारित है ।

1.4 'कमांड' कीज क्या हैं?

'b' - Will immediately reboot the system without syncing or unmounting your disks.
'c' - Will perform a kexec reboot in order to take a crashdump.
'd' - Shows all locks that are held.
'e' - Send a SIGTERM to all processes, except for init.
'f' - Will call oom_kill to kill a memory hog process.
'g' - Used by kgdb on ppc and sh platforms.
'h' - Will display help (any key that is not listed here will bring forth help )
'i' - Send a SIGKILL to all processes, except for init.
'k' - Secure Access Key (SAK) Kills all programs on the current virtual terminal.  

ध्यान दें।
SAK अनुभाग में नीचे दिए गए महत्वपूर्ण टिप्पणियां देखें।

'l' - Shows a stack backtrace for all active CPUs.
'm' - Will dump current memory info to your console.
'n' - Used to make RT tasks nice-able
'o' - Will shut your system off (if configured and supported).
'p' - Will dump the current registers and flags to your console.
'q' - Will dump a list of all running timers.
'r' - Turns off keyboard raw mode and sets it to XLATE.
's' - Will attempt to sync all mounted filesystems.
't' - Will dump a list of current tasks and their information to your console.
'u' - Will attempt to remount all mounted filesystems read-only.
'v' - Dumps Voyager SMP processor info to your console.
'w' - Dumps tasks that are in uninterruptable (blocked) state.
'x' - Used by xmon interface on ppc/powerpc platforms.
'0'-'9' - Sets the console log level, controlling which kernel messages will be printed to your console. ('0', for example would make it so that only emergency messages like PANICs or OOPSes would make it to your console.) 

1.5 ठीक है, तो मैं उनके लिए क्या उपयोग कर सकता हूं?

rजब आपका X सर्वर या svgalib प्रोग्राम क्रैश होता है तो Un aw बहुत आसान है।

सा k(सिक्योर एक्सेस की) उपयोगी है जब आप यह सुनिश्चित करना चाहते हैं कि कंसोल पर कोई ट्रोजन प्रोग्राम नहीं चल रहा है जो आपके पासवर्ड को तब पकड़ सकता है जब आप लॉगिन करने की कोशिश करेंगे। यह दिए गए कंसोल पर सभी प्रोग्रामों को मार देगा, इस प्रकार आपको यह सुनिश्चित करने में मदद करेगा कि जो लॉगिन प्रॉम्प्ट आप देख रहे हैं वह वास्तव में इनिट से है, कुछ ट्रोजन प्रोग्राम नहीं। अन्य लोग इसे (सिस्टम अटेंशन की) के रूप में उपयोगी पाते हैं जो तब उपयोगी होता है जब आप एक प्रोग्राम से बाहर निकलना चाहते हैं जो आपको कंसोल को स्विच करने नहीं देगा। (उदाहरण के लिए, X या svgalib प्रोग्राम।)
नोट।
अपने असली रूप में यह एक c2 अनुरूप प्रणाली में एक की तरह एक सच्चा SAK नहीं है, और इसे इस तरह से गलत नहीं किया जाना चाहिए।

bजब आप शट डाउन करने में असमर्थ हों तो Re oot अच्छा है।
ध्यान दें।
यह सामान्य है कि uपहले माउंट करने के लिए एक अच्छा अभ्यास माना जाता है

cजब सिस्टम लटका दिया जाता है तो क्रैशडम्प का उपयोग मैन्युअल रूप से रैशम्प को चालू करने के लिए किया जा सकता है।
ध्यान दें।
कर्नेल को CONFIG_KEXEC सक्षम किया गया है!

जब आपका सिस्टम लॉक हो जाता है तो सिंक बहुत अच्छा होता है, यह आपको sअपने डिस्क को ync करने की अनुमति देता है और निश्चित रूप से डेटा हानि और fscking की संभावना को कम करेगा।
चेतावनी
जब तक आप "ओके" और "डन" स्क्रीन पर दिखाई नहीं देते तब तक सिंक नहीं हुआ है। (यदि कर्नेल वास्तव में संघर्ष में है, तो आपको कभी भी OK या पूर्ण संदेश नहीं मिल सकता है।

Uमाउंट मूल रूप से Sync के समान ही उपयोगी है ।

Loglevels 0- 9उपयोगी है जब आपके कंसोल गिरी संदेशों जैसा कि आप देख नहीं करना चाहते से भर गया है कर रहे हैं। चयन करने 0से आपके कंसोल तक पहुंचने से सभी लेकिन सबसे ज़रूरी कर्नेल संदेशों को रोका जा सकेगा।
ध्यान दें।
यदि syslogd / klogd जीवित है, तो वे अभी भी लॉग इन होंगे

टी erm और k ill उपयोगी हैं यदि आपके पास किसी प्रकार की अपवाह प्रक्रिया है तो आप किसी अन्य तरीके से मारने में असमर्थ हैं, खासकर अगर यह अन्य प्रक्रियाओं को पैदा कर रहा है।
ध्यान दें।
जब बुरा कर्नेल आतंक का सामना करना Alt+ Sysrq+ eतो Alt+ Sysrq+ uतो Alt+ Sysrq+ iऔर अंत Alt+ Sysrq+b

1.6 समस्या निवारण

1.6.1 लटकाए जाने से पहले initscripts चलाएं

यदि मशीन को चलाने से पहले लटका दिया जाता है, तो बूट करने के लिए sysrq_always_enabled=1

1.6.2 कभी-कभी SysRq का उपयोग करने के बाद 'अटक' लगता है, मैं क्या कर सकता हूं?

दोहन shift, altऔर controlकीबोर्ड के दोनों किनारों पर, और एक अवैध sysrq अनुक्रम को फिर से मारना समस्या को ठीक करेगा। (यानी, कुछ की तरह alt+ sysrq+ z)।

एक और वर्चुअल कंसोल ( Ctrl+ Alt+ Fn1- Fn6) पर स्विच करना और फिर से वापस Ctrl+ Alt+ Fn7भी मदद करनी चाहिए।

1.6.3 मैंने मारा SysRq, लेकिन कुछ भी नहीं हुआ, क्या गलत है?

कुछ कीबोर्ड हैं जो SysRqपूर्व-परिभाषित 0x54 की तुलना में अलग-अलग स्केनोड भेजते हैं। इसलिए यदि आप SysRqएक निश्चित कीबोर्ड के लिए बॉक्स से बाहर काम नहीं करते हैं, showkey -sतो उचित स्कैन्कोड अनुक्रम का पता लगाने के लिए दौड़ें । फिर setkeycodes <sequence> 84इस क्रम को सामान्य SysRqकोड में परिभाषित करने के लिए उपयोग करें (84 0x54 के लिए दशमलव है)। इस कमांड को बूट स्क्रिप्ट में रखना शायद सबसे अच्छा है।
चेतावनी
आप showkeyदस सेकंड के लिए कुछ भी नहीं टाइप करके बाहर निकलें ।

1.6.4 मैं SysRqएक मॉड्यूल में महत्वपूर्ण घटनाओं को जोड़ना चाहता हूं , यह कैसे काम करता है?

तालिका के साथ एक मूल फ़ंक्शन को पंजीकृत करने के लिए, आपको सबसे पहले हेडर को शामिल करना include/linux/sysrq.hहोगा, यह आपकी ज़रूरत की हर चीज़ को परिभाषित करेगा। इसके बाद, आपको एक sysrq_key_op स्ट्रक्चर बनाना होगा, और इसके साथ पॉप्युलेट करना होगा ...

  • प्रमुख हैंडलर फ़ंक्शन आप उपयोग करेंगे।

  • SysRQ प्रिंट की मदद करने पर एक help_msg स्ट्रिंग, जो प्रिंट करेगा

  • एक एक्शन_एमएसजी स्ट्रिंग, जो आपके हैंडलर को कॉल करने से ठीक पहले प्रिंट होगी। आपके हैंडलर को 'sysrq.h' में प्रोटोटाइप के अनुरूप होना चाहिए

Sysrq_key_op बनने के बाद, आप कर्नेल फ़ंक्शन register_sysrq_key (इंट कुंजी, स्ट्रक्चर sysrq_key_op * op_p) कह सकते हैं; यह तालिका कुंजी 'कुंजी' में 'op_p' द्वारा इंगित किए गए ऑपरेशन को पंजीकृत करेगा, यदि तालिका में वह स्थान रिक्त है। मॉड्यूल अनलोड समय पर, आपको फ़ंक्शन को unregister_sysrq_key (int key, स्ट्रक्चर sysrq_key_op * op_p) पर कॉल करना होगा, जो कि 'op_p' द्वारा 'की' से इंगित की गई महत्वपूर्ण ऑप को हटा देगा, यदि और केवल तभी कि यह उस समय पंजीकृत है। स्लॉट। यदि आपने इसे पंजीकृत किया है, तो यह स्लॉट ओवरराइट हो गया है।

मैजिक SysRqसिस्टम एक महत्वपूर्ण ऑप लुकिंग टेबल के खिलाफ महत्वपूर्ण संचालन दर्ज करके काम करता है, जिसे 'ड्राइवर / चार / sysrq.c' में परिभाषित किया गया है। इस कुंजी तालिका में संकलित समय पर इसमें कई ऑपरेशन दर्ज किए गए हैं, लेकिन यह परिवर्तनशील है, और इंटरफ़ेस के लिए 2 फ़ंक्शन इसे निर्यात किया जाता है register_sysrq_key और unregister_sysrq_key। बेशक, कभी भी टेबल में एक अमान्य पॉइंटर न छोड़ें। अर्थात; जब आपका मॉड्यूल जिसे register_sysrq_key () बाहर निकलता है, तो इसे उपयोग की जाने वाली sysrq कुंजी तालिका प्रविष्टि को साफ करने के लिए unregister_sysrq_key () को कॉल करना होगा।
ध्यान दें।
तालिका में अशक्त संकेत हमेशा सुरक्षित होते हैं।

यदि किसी कारण से आपको handle_sysrq फ़ंक्शन को कॉल करने की आवश्यकता महसूस होती है, जिसे handle_sysrq नामक फ़ंक्शन के भीतर से जाना जाता है, तो आपको अवगत होना चाहिए कि आप एक लॉक में हैं (आप एक बाधा हैंडलर में भी हैं, जिसका अर्थ है कि नींद नहीं है!), इसलिए आपको इसके बजाय __handle_sysrq_nolock कॉल करना होगा।

1.6.5 निष्कर्ष

का प्रयोग करें Alt+ SysRq+ Sऔर फिर Uऔर फिर Bसिंक करने के लिए, सभी घुड़सवार फ़ाइल सिस्टम को पुन: माउंट करने के लिए और फिर रिबूट अगर जरूरत का प्रयास। सिस्टम फ़ाइलों में कोई चीज़ बदले बिना।
अगर Alt+ SysRq+ Bसिस्टम को रीबूट नहीं है कि यह क्रम में /etc/sysctl.d/10-magic-sysrq.conf संपादित करने के लिए आवेदन करने की अनुमति देने के लिए प्रयास आवश्यक हो सकता है Alt+ SysRq+ B(या / और Oबाद संपादन / proc / sys / गिरी / sysrq का उपयोग करके सिस्टम को रिबूट और सिस्टम को बंद करने में सक्षम करने के लिए sysrq बिटमास्क। आप ऊपर वर्णित किसी भी विधि द्वारा ऐसा कर सकते हैं।

1.6.6 APPENDIX: यह भी देखें - http://ubuntuforums.org/showthread.php?t=617349 और https://www.kernel.org/doc/Documentation/sysrq.txt

Apple MacBook कीबोर्ड वालों के लिए sysrq के बारे में परेशानियों को देखें: https://help.ubuntu.com/community/AppleKeyboard और https://bugs.launchpad.net/mactel-support/+bug/262408

दिलचस्प रोचक जानकारी- बीबीसी कार्यक्रम "क्लिक" के 17 08 2013 के एपिसोड और "साइबरवारफेयर" लेख को देखने के बाद वास्तव में मेरा ध्यान आकर्षित किया। कार्यक्रम की अपनी वेबसाइट भी है यदि आप कार्यक्रम नहीं देख सकते हैं तो क्लिक करें । FAWC


2
विशेष रूप से, मैंने अभी पूरी तरह से अपडेटेड क्वांटल i386 सिस्टम पर Al + SysRq + REISUB का परीक्षण किया और यह ठीक काम करता है। क्या आप सुनिश्चित हैं कि लिंक किए गए सुरक्षा बग, या इस उत्तर में सुरक्षा की चर्चा का कोई हिस्सा, वास्तव में समस्या से संबंधित है? यदि हां, तो क्या यह इस समस्या का एक सामान्य पर्याप्त कारण है कि इसे इस उत्तर में पहले प्रकट होना चाहिए?
एलिया कागन

सुरक्षा मुद्दा महत्वपूर्ण है क्योंकि बूट टाइम पर लागू किए जा रहे बिटकॉइन 176 के कारण sysrq कमांड का पूरा सेट उपलब्ध नहीं है; जैसा कि बग रिपोर्ट बताती है।
गीज़ानशा

3

मैं दूसरे दिन इसमें भाग गया और इसे काम करने में कुछ सेकंड लगे। मैंने भी पूरे REISUB अनुक्रम को दो बार किया हो सकता है।

इसके अलावा, सुनिश्चित करें कि आप sysrq कुंजी का उपयोग कर रहे हैं (अधिकांश लैपटॉप आपको फ़ंक्शन को दबाए रखने की आवश्यकता होगी, इसलिए आप वास्तव में 4 सेकंड नीचे रख रहे हैं)


आपके उत्तर के लिए धन्यवाद स्कॉट। मुझे वास्तव में Alt और sysrq के साथ फंक्शन की (fn) को पकड़ना है। एक बार जब मैं REISUB अनुक्रम को समाप्त करने के लिए अंतिम B कुंजी दबाता हूं तो मेरा लैपटॉप प्रदर्शित होने के बाद लॉकअप हो जाता है: रीसेट करना जैसा कि मैजिक कुंजी अनुक्रम से गुजरना फिर से कुछ भी नहीं करता है, और न ही स्क्रीन पर कुछ भी प्रदर्शित होता है। तो ऐसा लगता है कि जब रीबूट का मतलब होता है तो सिस्टम लॉक हो जाता है।
जेम्स व्हाइट

3

कुछ साल वापस मैं का उपयोग करते थे Alt+ SysRq+ S, U, B, Oरिबूट या करने के लिए बिजली बंद एक अटक मशीन, की तरह है क्योंकि आप के लिए, Alt+ SysRq+ Bकभी कभी नहीं काम करने के लिए करना चाहता था।

(इसके अलावा, मैं का उपयोग करने का आदत में प्राप्त करने की आवश्यकता Alt+ SysRq+ E, Iपहले। मैं बहुत ज्यादा नहीं बिंदु का उपयोग करने का दिख रहा है Alt+ SysRq+ R, अगर यह रिबूट रखकर किसी तरह इसे पुनर्स्थापित करने के लिए जा रहा है के बाद से क्यों कुंजीपटल मोड फर्क पड़ता है?)


1
यदि यह किसी भी तरह रिबूट और रीसेट करने जा रहा है तो कीबोर्ड मोड क्यों मायने रखता है? क्योंकि यह कीबोर्ड को वापस इनपुट क्षमता देता है? इसका मतलब यह हो सकता है आप रिबूट या सत्ता से दूर करने की जरूरत नहीं
geezanansa
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.