Alt + sysrq + REISUB ไม่รีบูตแล็ปท็อปของฉัน


59

ในโอกาสแล็ปท็อปของฉันได้กลายเป็นติดอยู่ดังนั้นผมเคยใช้คีย์ผสมความมหัศจรรย์ของAlt+ SysRq+ REISUBที่จะดำเนินการรีบูตปลอดภัย อย่างไรก็ตามดูเหมือนว่ามันจะไม่ได้ผลสำหรับฉันเหมือนเมื่อฉันกดBปุ่มเพื่อทำให้คำสั่ง magic key สมบูรณ์เพียงแค่พูดว่า "รีเซ็ต ... " และไม่ทำอะไรเลย

ปุ่มอื่น ๆ ดูเหมือนว่าจะทำงานได้ดีเนื่องจากมันจะรีเซ็ตเค้าโครงแป้นพิมพ์ฆ่างานทั้งหมดและอื่น ๆ แต่ดูเหมือนจะไม่เสร็จสมบูรณ์เมื่อรีบูต

ฉันรู้สึกว่าแล็ปท็อปของฉันควรจะรีบูตหลังจากคีย์เวทย์ถูกกดตามลำดับของ REISUB

คำตอบ:


58

Alt + SysRq ถูกปิดใช้งานเพื่อแก้ไขข้อบกพร่อง การปิดการใช้งาน Magic-SysRq นั้นถือเป็นข้อผิดพลาดและได้เปิดใช้งานอีกครั้ง ( # 1025467 ) หากยังคงปิดใช้งานอยู่สำหรับคุณคุณสามารถเปิดใช้งานได้อีกครั้ง:

Ubuntu 12.04 ขึ้นไป

แก้ไขไฟล์/etc/sysctl.confเพื่อรวมบรรทัด

kernel.sysrq=1

Ubuntu 12.10 และใหม่กว่า

เริ่มต้นด้วย Ubuntu 12.10 การควบคุมอย่างละเอียดยิ่งขึ้นซึ่งคุณสมบัติ Magic-SysRq เปิดใช้งานเป็นไปได้ เพียงแค่แก้ไขไฟล์/etc/sysctl.d/10-magic-sysrq.conf

ไฟล์ดังกล่าวได้รับการบันทึกไว้อย่างดีและบอกวิธีเปิดใช้งานคุณสมบัติต่างๆ ค่าเริ่มต้นปัจจุบันถูกเลือกเพื่อความปลอดภัยและควรเปลี่ยนเฉพาะเมื่อคุณรู้ว่าทำไมคุณต้อง (สำหรับผลกระทบด้านความปลอดภัยดู# 194676 )


6
ไม่มันไม่ได้ มันใช้งานได้ดีกับผู้ไม่ฝักใฝ่ฝ่ายใด, natty, oneiric และแม่นยำ
psusi

มันถูกปิดการใช้งานจริงเพื่อแก้ไขข้อผิดพลาด แต่มันถูกเปิดใช้งานอีกครั้ง ฉันอัพเดตคำตอบแล้ว เราควรแก้ไขคำถามให้กว้างขึ้นหรือไม่?
mniess

1
@geezanansa คุณสามารถแก้ไขความคิดเห็นของคุณได้ในขณะที่ยังร้อนอยู่ โปรดหลีกเลี่ยงการเพิ่มความคิดเห็นต่อเนื่องหลายรายการ นอกจากนี้ SysRq ทำงานสำหรับฉันที่ 13.04 ไม่เคยลองใช้กับ Live DVD หลังจากติดตั้งเสร็จแล้ว ดังนั้นฉันไม่เข้าใจ upvotes ของคำตอบนี้เพราะเป็นช่วงเวลาสั้น ๆ (ดูรายงานข้อผิดพลาด) ;)
gertvdijk

1
@ gertvdijk: เมื่อฉันอัปเดตคำถามที่ฉันพูดถึง ฯลฯ / sysctl.d / 10-magic-sysrq.conf ซึ่งรวมถึงพารามิเตอร์ sysrq สำหรับทุกสิ่งที่คุณต้องการเพื่อเปิดใช้งานฟังก์ชั่นที่เกี่ยวข้องทั้งหมด ย้อนกลับไปเมื่อคำถามถูกถาม (ในปี 2010) มันเป็นวิธีการแก้ปัญหาเพราะ "b" ถูกปิดการใช้งานจริงโดยค่าเริ่มต้นเนื่องจากข้อผิดพลาด ฉันเปลี่ยนคำตอบให้เป็นเรื่องทั่วไปมากขึ้นในวัตถุประสงค์ฉันตอบคำถามของ sysrq ที่ไม่สมบูรณ์อย่างสมบูรณ์และไม่สมบูรณ์บางส่วน
mniess

1
@geezanansa ใช่ฉันคิดว่าพวกเขาปิดการใช้งานใน quantal หลังจากที่ผมโพสต์
psusi

31

คีย์บอร์ดเป็นปัญหาที่นี่!

  • บางคนไม่ชอบ 4-keys-down ในเวลาเดียวกันและเพียงแค่หยุดเป็นคีย์บอร์ดจนกว่าคุณจะปล่อย
  • คีย์บอร์ดทั้งหมดเปลี่ยนเป็นเค้าโครงแบบ QWERTY เมื่อคุณส่งสัญญาณ SysRq สิ่งนี้ทำให้ยากต่อการค้นหาคำสั่งที่ถูกต้องบนคีย์บอร์ดที่มีเค้าโครงอื่น Wikipedia: คำสั่ง SysRqแสดงตารางเพื่อค้นหาสิ่งที่ถูกต้องสำหรับเลย์เอาต์ทั่วไป
  • บางคนมีSysRqคีย์อื่นนอกเหนือจากที่PrtScจะถือด้วยปุ่มฟังก์ชั่น แล็ปท็อปของฉันนี้+Fn EndการถือAlt+ PrtScใช้งานได้ก็ต่อเมื่อกระบวนการของระบบ (ตัวจัดการหน้าต่าง) แปลให้ฉันเท่านั้น เมื่อเกิดการชนรวมเฉพาะผลงานจริง เท่านั้นSysRq!
  • SysRqปุ่มทริกเกอร์บางอย่างเท่านั้นเมื่อคุณถือ+ ขวา (โดยฮาร์ดแวร์) ปุ่ม Alt ด้านซ้ายจะไม่ทำงานในกรณีเช่นนี้ด้วยเหตุผลเดียวกับข้างต้น นี่คือการทำงานของแป้นพิมพ์ USB ของฉันAltPrtSc
  • เคล็ดลับ: ลองกดปุ่มShift+ Alt+ SysRqเพื่อดูผลลัพธ์ 'วิธีใช้' บนเทอร์มินัลเสมือน สิ่งนี้มีประโยชน์เพื่อดูว่าทำงานได้โดยไม่ทำอันตรายใด ๆ หรือไม่:

    SysRq: ช่วยเหลือ: loglevel (0-9) reBoot Crash ยุติการทำงานทั้งหมด (E) memory-full-oom-kill (F) kill-all-task (I) thaw-filesystems (J) saK แสดง backtrace-all -active-cpus (L) แสดงการใช้งานหน่วยความจำ (M) nice-all-RT- งาน (N) powerOff แสดงการลงทะเบียน (P) show-all-timers (Q) unRaw Sync แสดงสถานะงาน (T) ถอนติดตั้งการแสดงที่ถูกบล็อกงาน (W) dump-ftrace-buffer (Z)

ในทุกกรณีที่ฉันเจอมันไม่ทำงานการสลับคีย์บอร์ดทำงานได้อย่างสมบูรณ์และแสดงว่าไม่มีอะไรผิดปกติกับการตั้งค่าเคอร์เนล


2
@geezanansa ฉันเห็นแป้นพิมพ์ไม่สามารถจัดการชุดค่าผสม 4 คีย์ได้อย่างชัดเจน การแทนที่จะแก้ไขปัญหาได้ จริงๆ. มันอาจใช้ได้กับคีย์บอร์ดของคุณทั้งหมด และถ้าคุณไม่เข้าใจ upvotes แล้วทำไมคุณไม่อธิบายว่าทำไมคุณถึงไม่ชอบล่ะ
gertvdijk

2
การพิจารณา James ยืนยันว่าคำสั่ง sysrq ทั้งหมดทำงานด้วยข้อยกเว้นของ B. คำตอบนี้ไม่ใช่คำตอบของคำถามที่ฉันอ่านว่าทำไม sysrq B ไม่ทำงาน? กระดานหลักไม่ใช่ปัญหาของ James หรือเรื่องอื่น ๆ อีกมากมายเกี่ยวกับ sysrq -1
geezanansa

17

อนุมานสาเหตุ :
https://fedoraproject.org/wiki/QA/Sysrq#How_do_I_use_the_magic_SysRq_keyซึ่งอยู่บนพื้นฐานการทำงานเดิมโดย
เครดิต
เขียนโดย Mydraal
Updated โดยอดัม Sulmicki
Updated โดยเจเรมีเอ็ม Dolan 2001/01/28 10:15:59
เพิ่ม โดย Crutcher Dunnavant

https://askubuntu.com/a/11194/102029 mneiss ให้ลิงก์สำหรับ LaunchPad

สารบัญ

sysrq คืออะไร
เหตุใด RESIUB (O) จึงไม่ทำงาน

1 ฉันจะให้ sysrq ทำงานในแบบที่ฉันต้องการได้อย่างไร
1.1คีย์ SysRq เวทมนต์คืออะไร?
1.2ฉันจะเปิดใช้งานคีย์มายากล SysRq ได้อย่างไร
1.3ฉันจะใช้คีย์ SysRq ได้อย่างไร?
1.4คีย์ 'คำสั่ง' คืออะไร
1.5เอาล่ะฉันจะใช้อะไรได้บ้าง

1.6 แก้ไขปัญหา

1.6.1แขวนก่อน initscripts เรียกใช้
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) จึงไม่ทำงาน

พิจารณารายละเอียดข้อผิดพลาดนี้ได้ที่LaunchPad Bug 194676 :

คำอธิบายของปัญหา:
โดยค่าเริ่มต้น SysRq ถูกเปิดใช้งานตามค่าเริ่มต้นบนระบบเดสก์ท็อป Ubuntu ซึ่งมีค่าเมื่อระบบล็อคและคุณต้องการหยุดอย่างนุ่มนวลที่สุดหรือแก้ไขปัญหา อย่างไรก็ตามหลายคนประหลาดใจที่คุณสามารถขอให้ทิ้งเนื้อหาของหน่วยความจำปัจจุบันไปยังคอนโซล (หรือ dmesg) แม้ว่าจะมาจากแป้นพิมพ์เท่านั้น
openSUSE ตั้งค่า bitmask เริ่มต้นที่ 176 บน SysRq ซึ่งตามค่าเริ่มต้นจะ จำกัด ให้คุณทำการซิงค์รีบูตและ "remount แบบอ่านอย่างเดียว" สิ่งนี้จะหยุดคนที่ใช้ sysrq โดยค่าเริ่มต้นเพื่อตรวจสอบหน่วยความจำที่ฟังดูสมเหตุสมผล

นักพัฒนา Ubuntu เห็นความจำเป็นที่จะต้องทำบางสิ่งบางอย่างเกี่ยวกับเรื่องนี้และทางออกที่ดีที่สุดในการพิจารณาความยุ่งยากที่อาจเกิดขึ้นจากการสังเกตดังกล่าวคือการใช้ bitmask 176 sysrq โดยค่าเริ่มต้นสร้างความต้องการสำหรับผู้ใช้งาน bitmask 176 เพียง แต่ช่วยให้S, U, Bซึ่งเป็นซิงค์, remount ติดตั้งพาร์ทิชันและรีบูต
การอ่านรายงานข้อผิดพลาดแบบเต็มและความคิดเห็นจะเน้นตัวเลือกบางอย่างที่อาจใช้กับระบบของคุณ

ผลกระทบสะสมของฮาร์ดแวร์, เมล็ด, คีย์บอร์ดและ bitmasks ที่แตกต่างกันหมายความว่า sysrq ทำงานแตกต่างกันไปสำหรับแต่ละคน

วิธีหนึ่งในการรับเอาต์พุต txt เกี่ยวกับวิธีที่ระบบของคุณใช้ sysrq คือการใช้คำสั่ง sysrq จาก tty (เมื่อระบบไม่ประสบปัญหาจากการล็อก / ค้าง) การทำเช่นนี้อาจบ่งบอกว่า sysrq ยังไม่ได้ปิดการใช้งานอย่างสมบูรณ์ แต่ใช้ bitmask 176

ค้นหา / proc / sys / kernel / sysrq บนเดสก์ท็อป 13.04 amd64 liveDVD และการติดตั้งเดสก์ท็อป amd64 13.04 ยืนยันว่าค่าเริ่มต้นปัจจุบันอยู่ที่ sysrq ที่ bitmask 176

หาก sysrq ทำงานให้คุณ; มันอาจจะคุ้มค่าที่จะถามว่า "ถ้าฉันไม่ได้เปลี่ยนการตั้งค่า 10-magic-sysrq

1 ฉันจะให้ sysrq ทำงานในแบบที่ฉันต้องการได้อย่างไร

สิ่งที่ตามมาคือการคัดลอกแก้ไขและวางของhttps://fedoraproject.org/wiki/QA/Sysrq

1.1 คีย์ SysRq เวทมนต์คืออะไร?

มันเป็นคำสั่งผสม 'ขลัง' ที่คุณสามารถกดได้ซึ่งเคอร์เนลจะตอบสนองโดยไม่คำนึงถึงสิ่งอื่นที่กำลังทำอยู่เว้นแต่ว่าล็อคไว้อย่างสมบูรณ์

1.2 ฉันจะเปิดใช้งานคีย์มายากล SysRq ได้อย่างไร

sysrq สร้างขึ้นในเคอร์เนล Ubuntu แต่ถูกปิดใช้งานในเวลาบูตโดยค่าเริ่มต้นโดยใช้ 10-magic-sysrq.conf

หากต้องการเปิดใช้งานอีกครั้งในเวลาบูตคุณต้องแก้ไขไฟล์ /etc/sysctl.d/10-magic-sysrq.conf คือการไม่ใส่เครื่องหมายความคิดเห็นบรรทัดนี้จะเปิดใช้งานฟังก์ชั่นทั้งหมดของ sysrq:

#   1 - enable all functions of sysrq

เมื่อรันเคอร์เนลที่มี SysRq ที่คอมไพล์แล้ว / proc / sys / kernel / sysrq จะควบคุมฟังก์ชั่นที่อนุญาตให้เรียกใช้ผ่านคีย์ SysRq นี่คือรายการของค่าที่เป็นไปได้ใน / proc / sys / kernel / 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 / kernel / sysrq มีผลเฉพาะการเรียกใช้ผ่านคีย์บอร์ด การเรียกใช้การดำเนินการใด ๆ ผ่าน / proc / sysrq-trigger จะได้รับอนุญาตเสมอ (โดยผู้ใช้ที่มีสิทธิ์ผู้ดูแลระบบดูด้านล่าง)

1.3 ฉันจะใช้คีย์ SysRq ได้อย่างไร?

Ubuntu Desktop

คุณกดคำสั่งผสมที่สำคัญAlt+ +SysRqcommand key

NB-ดูบันทึกในส่วนนี้และในส่วนการแก้ไขปัญหาสำหรับการตั้งค่าเริ่มต้นอื่น ๆ ที่เป็นไปได้สำหรับระบบอื่น ๆ และแป้นพิมพ์

เป็นไปได้ที่จะตั้งค่าตัวละครที่คุณเลือก: สถาปัตยกรรมทั้งหมด

เขียนอักขระไปยัง / proc / sysrq-trigger:

echo t > /proc/sysrq-trigger

จะตั้งค่าการTทำงานเป็นSysRq
หมายเหตุ แป้นพิมพ์บางคนอาจไม่ได้สำคัญที่ระบุว่า
ที่สำคัญยังเป็นที่รู้จักกันเป็นสำคัญ นอกจากนี้คีย์บอร์ดบางตัวไม่สามารถจัดการกับแป้นที่กดได้หลายตัวในเวลาเดียวกันดังนั้นคุณอาจจะโชคดีกับ+ - จากนั้นกดจากนั้นปล่อยทุกอย่าง ดูการเขียน QA ฉบับสมบูรณ์ซึ่งคู่มือนี้อ้างอิงจากhttps://fedoraproject.org/wiki/QA/Sysrq#How_do_I_use_the_magic_SysRq_key.3Fสำหรับข้อมูลเพิ่มเติมเกี่ยวกับเรื่องนี้SysRqSysRqPrint ScreenAltSysRqSysRqcommand key

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 เอาล่ะฉันจะใช้อะไรได้บ้าง

Un raw มีประโยชน์มากเมื่อเซิร์ฟเวอร์ X หรือโปรแกรม svgalib ขัดข้อง

Sa k(คีย์การเข้าถึงที่ปลอดภัย) มีประโยชน์เมื่อคุณต้องการให้แน่ใจว่าไม่มีโปรแกรมโทรจันที่ทำงานอยู่ที่คอนโซลซึ่งสามารถคว้ารหัสผ่านของคุณเมื่อคุณพยายามเข้าสู่ระบบ มันจะฆ่าโปรแกรมทั้งหมดบนคอนโซลที่กำหนดดังนั้นให้คุณตรวจสอบให้แน่ใจว่าการแจ้งเตือนการเข้าสู่ระบบที่คุณเห็นนั้นแท้จริงแล้วมาจาก init ไม่ใช่โปรแกรมโทรจันบางโปรแกรม คนอื่น ๆ พบว่ามีประโยชน์ในฐานะ (System Attention Key) ซึ่งมีประโยชน์เมื่อคุณต้องการออกจากโปรแกรมที่จะไม่ยอมให้คุณเปลี่ยนคอนโซล (ตัวอย่างเช่น X หรือโปรแกรม svgalib)
หมายเหตุ
ในรูปแบบที่แท้จริงมันไม่ได้เป็น SAK ที่แท้จริงเช่นเดียวกับในระบบที่เข้ากันได้กับ c2 และไม่ควรเข้าใจผิดเช่นนั้น

การรีbบูตทำได้ดีเมื่อคุณไม่สามารถปิดเครื่องได้
บันทึก.
โดยทั่วไปถือว่าเป็นวิธีปฏิบัติที่ดีในการuติดตั้งก่อน

Crashdump สามารถใช้เพื่อเรียกcrashdump ด้วยตนเองเมื่อระบบหยุดทำงาน
บันทึก.
เคอร์เนลจำเป็นต้องได้รับการสร้างขึ้นโดยเปิดใช้งาน CONFIG_KEXEC!

การซิงค์เป็นสิ่งที่ยอดเยี่ยมเมื่อระบบของคุณถูกล็อคมันช่วยให้คุณสามารถsดิสก์ ync และจะช่วยลดโอกาสในการสูญเสียข้อมูลและ fscking
คำเตือน
การซิงค์ยังไม่เกิดขึ้นจนกว่าคุณจะเห็น "OK" และ "Done" ปรากฏบนหน้าจอ (หากเคอร์เนลขัดแย้งกันจริงๆคุณอาจไม่เคยได้รับข้อความ OK หรือ Done

Uการติดตั้งนั้นมีประโยชน์ในลักษณะเดียวกับSync

loglevels 0- 9มีประโยชน์เมื่อคอนโซลของคุณเต็มไปด้วยข้อความเคอร์เนลที่คุณไม่ต้องการเห็น การเลือก0จะป้องกันทั้งหมดยกเว้นข้อความเคอร์เนลที่เร่งด่วนที่สุดถึงคอนโซลของคุณ
บันทึก.
พวกเขาจะยังคงเข้าสู่ระบบหาก syslogd / klogd ยังมีชีวิตอยู่

T erm และ k iจะมีประโยชน์หากคุณมีกระบวนการแบบไม่ต้องควบคุมบางอย่างคุณไม่สามารถฆ่าวิธีอื่นได้
บันทึก.
เมื่อพบว่าเคอร์เนลเสียให้ทำAlt+ Sysrq+ eแล้วAlt+ Sysrq+ uแล้วAlt+ Sysrq+ iและสุดท้ายAlt+ Sysrq+b

1.6 แก้ไขปัญหา

1.6.1 แขวนก่อน initscripts เรียกใช้

หากเครื่องหยุดทำงานก่อน initscripts จะเริ่มทำงานให้บูตด้วย sysrq_always_enabled=1

1.6.2 บางครั้ง SysRq ดูเหมือนจะ 'ติด' หลังจากใช้งานฉันควรทำอย่างไร

Tapping shift, altและcontrolทั้งสองด้านของแป้นพิมพ์และกดปุ่ม SysRq ลำดับที่ไม่ถูกต้องอีกครั้งจะแก้ไขปัญหาได้ (เช่นบางอย่างเช่นalt+ sysrq+ z)

การเปลี่ยนไปใช้คอนโซลเสมือนอื่น ( Ctrl+ Alt+ Fn1- Fn6) แล้วกลับมาอีกครั้งCtrl+ Alt+ Fn7ควรช่วยด้วย

1.6.3 ฉันโดนSysRqแต่ไม่มีอะไรเกิดขึ้นเกิดอะไรขึ้น

มีแป้นพิมพ์บางตัวที่ส่ง scancodes ที่แตกต่างกันSysRqกว่าที่กำหนดไว้ล่วงหน้า 0x54 ดังนั้นหากSysRqไม่ได้ผลออกมานอกกรอบสำหรับแป้นพิมพ์บางตัวให้เรียกใช้showkey -sเพื่อหาลำดับ scancode ที่เหมาะสม จากนั้นใช้setkeycodes <sequence> 84เพื่อกำหนดลำดับนี้ให้กับSysRqรหัสปกติ(84 คือทศนิยมสำหรับ 0x54) อาจเป็นการดีที่สุดที่จะใช้คำสั่งนี้ในสคริปต์บูต
คำเตือน
คุณออกshowkeyโดยไม่พิมพ์อะไรเลยเป็นเวลาสิบวินาที

1.6.4 ฉันต้องการเพิ่มSysRqเหตุการณ์สำคัญในโมดูลมันทำงานอย่างไร

ในการลงทะเบียนฟังก์ชั่นพื้นฐานกับตารางคุณต้องใส่ส่วนหัวก่อนinclude/linux/sysrq.hซึ่งจะกำหนดทุกอย่างที่คุณต้องการ ถัดไปคุณต้องสร้างโครงสร้าง sysrq_key_op และเติมด้วย ...

  • ฟังก์ชันตัวจัดการคีย์ที่คุณจะใช้

  • สตริง help_msg ที่จะพิมพ์เมื่อ SysRQ พิมพ์ความช่วยเหลือ

  • สตริง action_msg ที่จะพิมพ์ก่อนที่จะเรียกใช้ตัวจัดการของคุณ ตัวจัดการของคุณจะต้องสอดคล้องกับต้นแบบใน 'sysrq.h'

หลังจากสร้าง sysrq_key_op แล้วคุณสามารถเรียกใช้ฟังก์ชันเคอร์เนล register_sysrq_key (คีย์ int, struct sysrq_key_op * op_p) สิ่งนี้จะลงทะเบียนการดำเนินการที่ชี้ไปโดย 'op_p' ที่คีย์ของตาราง 'คีย์' หากสล็อตในตารางนั้นว่างเปล่า ในเวลาที่โมดูลยกเลิกการโหลดคุณต้องเรียกใช้ฟังก์ชัน unregister_sysrq_key (คีย์ int, struct sysrq_key_op * op_p) ซึ่งจะลบคีย์ op ที่ชี้โดย 'op_p' จากคีย์ 'key' หากในปัจจุบันมีการลงทะเบียนในนั้น สล็อต นี่คือในกรณีที่ช่องถูกเขียนทับตั้งแต่คุณลงทะเบียน

SysRqระบบMagic ทำงานโดยการลงทะเบียนการดำเนินงานที่สำคัญกับตารางการค้นหาคีย์ซึ่งกำหนดไว้ใน 'drivers / char / sysrq.c' ตารางคีย์นี้มีจำนวนของการดำเนินการที่ลงทะเบียนไว้ในเวลารวบรวม แต่สามารถเปลี่ยนแปลงได้และฟังก์ชั่น 2 รายการจะถูกส่งออกสำหรับอินเตอร์เฟสไปยัง register_sysrq_key และ unregister_sysrq_key แน่นอนไม่เคยออกจากตัวชี้ที่ไม่ถูกต้องในตาราง เช่น; เมื่อโมดูลของคุณที่เรียกว่า register_sysrq_key () ออกจากนั้นจะต้องเรียก unregister_sysrq_key () เพื่อล้างรายการตารางคีย์ sysrq ที่ใช้
บันทึก.
พอยน์เตอร์ Null ในตารางปลอดภัยเสมอ

ถ้าด้วยเหตุผลบางอย่างที่คุณรู้สึกว่าจำเป็นต้องเรียกใช้ฟังก์ชัน 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 / kernel / sysrq bitmask เพื่อเปิดใช้งานการรีบูตและปิดระบบโดยใช้ sysrq คุณสามารถทำได้โดยวิธีการใด ๆ ที่อธิบายไว้ข้างต้น

1.6.6 ภาคผนวก: ดูเพิ่มเติมที่ - 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 ของรายการ BBC คลิก "และ" cyberwarfare "บทความได้รับความสนใจอย่างมาก โปรแกรมยังมีเว็บไซต์ของตัวเองคลิกหากคุณไม่สามารถดูโปรแกรม FAWC


2
โดยเฉพาะอย่างยิ่งฉันเพิ่งทดสอบ Al + SysRq + REISUB บนระบบ Quantal i386 ที่ได้รับการอัปเดตอย่างสมบูรณ์และทำงานได้ดี คุณแน่ใจหรือว่าข้อบกพร่องด้านความปลอดภัยที่เชื่อมโยงหรือส่วนหนึ่งของการอภิปรายเกี่ยวกับความปลอดภัยในคำตอบนี้เกี่ยวข้องกับปัญหาจริงหรือ ถ้าเป็นเช่นนั้นมันเป็นสาเหตุของปัญหาที่พบได้บ่อยพอสมควรในคำตอบนี้หรือไม่?
Eliah Kagan

ปัญหาด้านความปลอดภัยมีความสำคัญเนื่องจากชุดคำสั่ง sysrq เต็มรูปแบบไม่พร้อมใช้งานเนื่องจาก bitmask 176 ถูกใช้ในเวลาบูต ตามที่รายงานบั๊กอธิบาย
geezanansa

3

ฉันวิ่งเข้าไปในนี้เมื่อวันก่อนและใช้เวลาสองสามวินาทีในการทำงาน ฉันอาจทำตามลำดับของ REISUB ทั้งหมดสองครั้ง

นอกจากนี้ตรวจสอบให้แน่ใจว่าคุณกำลังใช้คีย์ sysrq (แล็ปท็อปส่วนใหญ่ต้องการให้คุณกดฟังก์ชั่นค้างไว้ดังนั้นคุณจึงกดปุ่มค้างไว้ 4 ปุ่มพร้อมกัน)


ขอบคุณสำหรับคำตอบของคุณสกอตต์ แน่นอนฉันต้องกดแป้นฟังก์ชัน (fn) พร้อมกับ alt และ sysrq เมื่อฉันกดปุ่ม B สุดท้ายเพื่อจบลำดับ REISUB แล็ปท็อปของฉันดูเหมือนว่าจะถูกล็อคหลังจากที่มันแสดงขึ้น: การรีเซ็ตเมื่อผ่านลำดับของคีย์เวทย์มนตร์อีกครั้งจะไม่ทำอะไรเลยและไม่มีอะไรปรากฏขึ้นบนหน้าจอ ดังนั้นดูเหมือนว่าระบบจะล็อคเมื่อมันหมายถึงการรีบูต
James White

3

ไม่กี่ปีหลังผมเคยใช้Alt+ SysRq+ S, U, B, Oรีบูตเครื่องหรือปิดเครื่องติดเพราะชอบสำหรับคุณAlt+ SysRq+ Bบางครั้งก็ไม่ได้ต้องการที่จะทำงาน

(นอกจากนี้ผมจำเป็นต้องได้รับเป็นนิสัยของการใช้Alt+ SysRq+ E, Iครั้งแรก. ฉันไม่เห็นจุดมากของการใช้Alt+ SysRq+ Rตั้งแต่ทำไมเรื่องโหมดแป้นพิมพ์ถ้ามันจะรีบูตและการตั้งค่ามันอยู่แล้ว?)


1
เหตุใดโหมดคีย์บอร์ดจึงมีความสำคัญหากมันจะรีบูตและรีเซ็ตใหม่ เพราะมันให้ความสามารถในการป้อนกลับไปยังคีย์บอร์ด? ซึ่งอาจหมายความว่าคุณไม่จำเป็นต้องรีบูตหรือปิดเครื่อง
geezanansa
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.