답변:
버그 수정을 위해 Alt + SysRq가 비활성화되었습니다. Magic-SysRq를 비활성화하면 버그 자체로 간주되어 다시 활성화되었습니다 ( # 1025467 ). 여전히 비활성화되어 있으면 다시 활성화 할 수 있습니다.
/etc/sysctl.conf 파일을 편집하여 행을 포함하십시오
kernel.sysrq=1
Ubuntu 12.10부터는 Magic-SysRq 기능이 활성화되어 있는지보다 세밀하게 제어 할 수 있습니다. /etc/sysctl.d/10-magic-sysrq.conf 파일을 편집하십시오 .
파일은 잘 문서화되어 있으며 어떤 기능을 활성화 할 수 있는지 정확하게 알려줍니다. 현재 기본값은 보안 목적으로 선택되었으며 필요한 이유를 알고있는 경우에만 변경해야합니다 (보안 관련 사항은 # 194676 참조 ).
키보드가 문제입니다!
팁 : 가상 터미널에서 '도움말'출력을 보려면 Shift+ Alt+ SysRq를 누르십시오 . 이것은 아무런 해를 끼치 지 않고 작동하는지 확인하는 데 유용합니다.
SysRq : 도움말 : loglevel (0-9) 재부트 충돌 종료 모든 작업 (E) 메모리 전체 kill-kill (F) kill-all-tasks (I) thaw-filesystems (J) saK show-backtrace-all -active-cpus (L) show-memory-usage (M) nice-all-RT-tasks (N) powerOff show-registers (P) show-all-timers (Q) unRaw Sync 쇼 작업 상태 (T) show-blocked-tasks (W) 덤프 -ftrace-buffer (Z) 마운트 해제
모든 경우에 키보드가 제대로 작동하지 않고 커널 설정에 아무런 문제가 없음을 보여주었습니다.
귀인 :
https://fedoraproject.org/wiki/QA/Sysrq#How_do_I_use_the_magic_SysRq_key 에 의해 원래의 작업을 기반으로 한
크레딧
Mydraal 글
아담 Sulmicki에 의해 업데이트
제레미 M. 고언 2001년 1월 28일 10시 15분 59초에 의해 업데이트
추가 목발 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 부록
참고. + 를 사용하여 목차를 사용하는 것이 도움
이 될 수 있습니다.CtrlF
이 동결 또는 시스템 파일의 손상이나 데이터 손실로 이어지는 디스크 손상의 위험을 limitising으로 잠금 후 기계의 사용을 회복하는 일반적인 잘 알려진 및 사용 방법은 사용하는 것입니다
Alt+ SysRq+ r다음과 s다음 e다음 i다음 u다음과 b및 / 또는 필요한 경우 ( o)
이것은> = 8.04LTS에서 현재 13.04 릴리스까지 모든 특징을 통해 많은 (예 : 나 자신과 James)에게는 예상대로 작동하지 않았습니다.
LaunchPad 버그 194676에 있는이 버그 설명을 고려하십시오 .
문제 설명 :
기본적으로 SysRq는 Ubuntu 데스크탑 시스템에서 기본적으로 활성화되어 있으며 시스템이 잠기고 가능한 한 부드럽게 중지하거나 문제를 디버그하려는 경우 매우 유용합니다. 그러나 많은 사람들은 키보드를 통해서만 현재 메모리의 내용을 콘솔 (또는 dmesg)에 덤프하도록 요청할 수 있습니다.
openSUSE는 SysRq에 기본 비트 마스크 176을 설정하여 기본적으로 동기화, 재부팅 및 "읽기 전용 마운트"로 제한합니다. 이로 인해 사람들은 기본적으로 sysrq를 사용하여 감지 가능한 메모리를 검사합니다.
우분투 개발자들은 이것에 대해 무언가를 할 필요가 있다고 언급했으며 언급 된 관측의 가능한 합병증을 고려할 때 최상의 해결책은 기본적으로 비트 마스크 176 sysrq를 적용하여 원하는대로 sysrq를 설정하기 위해 사용자 입력이 필요하다는 것입니다. 비트 마스크 (176)만을 허용 S, U, B동기화, 다시 마운트 장착 파티션 재부팅된다.
전체 버그 보고서와 설명을 읽으면 시스템에 적용 할 수있는 몇 가지 옵션이 강조 표시됩니다.
다른 하드웨어, 커널, 키보드 및 비트 마스크의 누적 영향은 sysrq가 다른 사람들에게 다르게 동작한다는 것을 의미합니다.
시스템이 sysrq를 사용하는 방법에 관한 txt 출력을 얻는 한 가지 방법은 tty에서 sysrq 명령을 적용하는 것입니다 (시스템이 잠금 / 고정에 영향을받지 않는 경우). 이렇게하면 sysrq가 완전히 비활성화되지 않았지만 비트 마스크 176을 사용하고 있음을 나타낼 수 있습니다.
13.04 데스크탑 amd64 liveDVD 및 13.04 데스크탑 amd64 설치에서 / proc / sys / kernel / sysrq를 검색하면 기본값이 현재 비트 마스크 176에 sysrq를 남겨두고 있음을 확인합니다.
sysrq가 효과가 있다면; "만약 내가 10-magic-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 키는 어떻게 사용합니까?
우분투 데스크탑
키 콤보 Alt+ SysRq+를 누릅니다 command key.
NB- 다른 시스템 및 키보드의 다른 기본 설정에 대해서는이 섹션 및 문제 해결 섹션의 참고 사항을 참조하십시오.
선택한 모든 문자를 설정할 수 있습니다.
/ proc / sysrq-trigger에 문자를 작성하십시오.
echo t > /proc/sysrq-trigger
T동작을 SysRq
참고 로 설정합니다 .
일부 키보드에는 레이블이 지정된 키가 없을 수 있습니다 SysRq. SysRq키는 또한으로 알려져 있습니다 Print Screen키를 누릅니다. 또한 일부 키보드는 많은 키를 동시에 누르는 처리 할 수없는, 그래서 당신은 더 나은 운있을 수 있습니다 Alt+를 SysRq- SysRq다음 Enter 키를 눌러 command key다음 모든 것을 놓습니다. 이에 대한 자세한 내용은 https://fedoraproject.org/wiki/QA/Sysrq#How_do_I_use_the_magic_SysRq_key.3F 를 기반으로하는 QA 전체 내용을 참조하십시오 .
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의 프롬프트인지 확인하게합니다. 다른 사람들은 콘솔 전환을 허용하지 않는 프로그램을 종료하려고 할 때 유용한 (시스템주의 키)로 유용하다고 생각합니다. (예 : X 또는 svgalib 프로그램)
참고.
실제 형식에서는 c2 호환 시스템에있는 것과 같은 실제 SAK가 아니므로 오해해서는 안됩니다.
다시 b당신이 종료 할 수있을 때 OOT 좋다.
노트.
일반적으로 u먼저 장착 하는 것이 좋습니다.
크래시 덤프는 c시스템이 중단 된 경우 수동으로 크래시 덤프를 트리거하는 데 사용할 수 있습니다 .
노트.
커널은 CONFIG_KEXEC를 사용하여 빌드해야합니다!
동기화는 시스템이 잠겨있을 때 s유용하며 디스크 를 YNC 할 수 있으며 데이터 손실 및 fscking 가능성을 확실히 줄입니다.
경고
화면에 "확인"과 "완료"가 나타날 때까지 동기화가 이루어지지 않았습니다. (커널이 실제로 어려움을 겪고 있다면 OK 또는 Done 메시지를받지 못할 수도 있습니다.
Umount는 기본적으로 Sync 와 같은 방식으로 유용합니다 .
로그 수준 0- 9콘솔에보고 싶지 않은 커널 메시지가 넘칠 때 유용합니다. 선택하면 0가장 긴급한 커널 메시지를 제외한 모든 콘솔 메시지가 콘솔에 도달하지 못하게됩니다.
노트.
syslogd / klogd가 활성 상태이면 여전히 기록됩니다.
T erm과 ikll은 어떤 종류의 런 어웨이 프로세스가있는 경우, 특히 다른 프로세스를 생성하는 경우 다른 방법으로 죽일 수없는 경우에 유용합니다.
노트.
나쁜 커널 패닉이 발생하면 Alt+ Sysrq+ e, Alt+ Sysrq+ u, Alt+ Sysrq+ i그리고 마지막으로 Alt+ Sysrq+b
1.6 문제 해결
1.6.1 initscript가 실행되기 전에 중단
초기화 스크립트가 실행되기 전에 머신이 정지 된 경우 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의 10 진수) 로 정의 하는 데 사용하십시오 . 이 명령을 부팅 스크립트에 넣는 것이 가장 좋습니다.
경고 10 초 동안 아무 것도 입력하지 않으면
종료 showkey
됩니다.
1.6.4 SysRq주요 이벤트를 모듈 에 추가하고 싶습니다 . 어떻게 작동합니까?
테이블에 기본 기능을 등록하려면 먼저 header를 포함 include/linux/sysrq.h
시켜야합니다. 그러면 필요한 모든 것이 정의됩니다. 다음으로 sysrq_key_op 구조체를 생성하고 채워야합니다.
사용할 키 핸들러 기능.
SysRQ가 도움말을 인쇄 할 때 인쇄되는 help_msg 문자열
핸들러가 호출되기 직전에 인쇄되는 action_msg 문자열. 핸들러는 'sysrq.h'의 프로토 타입을 준수해야합니다.
sysrq_key_op가 생성되면 커널 함수 register_sysrq_key (int key, struct sysrq_key_op * op_p)를 호출 할 수 있습니다. 테이블의 해당 슬롯이 비어 있으면 테이블 키 'key'에서 'op_p'가 가리키는 작업을 등록합니다. 모듈 언로드 시간에 unregister_sysrq_key (int key, struct sysrq_key_op * op_p) 함수를 호출해야합니다.이 함수는 현재 등록되어있는 경우에만 키 'key'에서 'op_p'가 가리키는 키 op를 제거합니다. 슬롯. 슬롯을 등록한 후 슬롯을 덮어 쓴 경우입니다.
Magic SysRq시스템은 'drivers / char / sysrq.c'에 정의 된 키 조작 조회 테이블에 대해 키 조작을 등록하여 작동합니다. 이 키 테이블에는 컴파일 타임에 여러 작업이 등록되어 있지만 변경할 수 있으며 register_sysrq_key 및 unregister_sysrq_key에 대한 인터페이스를 위해 2 개의 함수가 내보내집니다. 물론 테이블에 유효하지 않은 포인터를 두지 마십시오. 즉; register_sysrq_key ()를 호출 한 모듈이 종료되면 unregister_sysrq_key ()를 호출하여 사용한 sysrq 키 테이블 항목을 정리해야합니다.
노트.
테이블의 널 포인터는 항상 안전합니다.
어떤 이유로 handle_sysrq가 호출 한 함수 내에서 handle_sysrq 함수를 호출해야한다고 생각되면 잠금 상태 (인터럽트 처리기에도 있음)를 알고 있어야합니다. 대신 __handle_sysrq_nolock을 호출해야합니다.
사용 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 부록 : 참고 사항 - http://ubuntuforums.org/showthread.php?t=617349 및 https://www.kernel.org/doc/Documentation/sysrq.txt
sysrq와 관련된 Apple MacBook 키보드 문제가있는 사용자는 https://help.ubuntu.com/community/AppleKeyboard 및 https://bugs.launchpad.net/mactel-support/+bug/262408을 참조하십시오.
상대적으로 흥미로운 정보 -BBC 프로그램 "Click" 과 "cyberwarfare"기사의 2013 년 8 월 17 일 에피소드를 본 후 정말 주목을 받았습니다. 이 프로그램에는 자체 웹 사이트도 있습니다 . 프로그램을 볼 수 없으면 클릭하십시오 . FAWC
나는 다른 날에 이것을 만났고 작동하는 데 몇 초가 걸렸습니다. 전체 REISUB 시퀀스를 두 번 수행했을 수도 있습니다.
또한 sysrq 키를 사용하고 있는지 확인하십시오 (대부분의 랩톱에서는 기능을 누르고 있어야하므로 한 번에 4 개의 키를 누르고 있습니다)
몇 년 전에 제가 사용하는 데 사용 Alt+ SysRq+ S, U, B, O재부팅하거나 전원을 끄고 당신을 위해, 같은 때문에, 스턱 기계 Alt+ SysRq+ B가끔 작동하지 않았다.
(또한, 내가 사용하는 습관을 얻을 필요가 Alt+ SysRq+는 E, I첫째. 내가 사용하는 많은 점을 볼 수 없습니다 Alt+ SysRq+ R, 왜 재부팅 어쨌든 다시 것 경우 키보드 모드 물질을합니까? 이후)