Волшебная клавиша SysRq / Printscreen

Интро
Когда Линукс намертво вешается, есть возможность проводить прямые работы над ядром. Манипуляции эти проводятся с помощью клавиши SysRq, которая работает всегда. При помощи некоторых комбинаций клавиш можно заставить систему аварийно сбросить данные на диски, размонтировать все файловые системы в режим «только-чтение» и перезагрузиться даже при наглухо зависшей системе.

Как ей пользоваться?
Сначала нужно убедиться, что она включена: в конфиге ядра CONFIG_MAGIC_SYSRQ должно иметь значение Y (по крайней мере в дефолтном ядре Дебиана это так). Дальше применение такое: нажимаем и держим ALT, нажимаем SysRq, отпускаем всё и нажимаем одну из «командных» клавиш — ниже их краткое описание.

Командные клавиши
Ниже перечислены наиболее полезные клавиши, которые могут пригодиться для тех, кто проводит бесчеловечные эксперименты над системой или устанавливает проприетарные драйвера. Чтобы их легче было запомнить, будет написано слово, в котором эта буква есть по смыслу. Всё сказанное ниже актуально по крайней мере для ядер 2.6.20 и выше.

Одновременное нажатие клавиш Alt + SysRq +
H’elp — выводит все доступные возможности SysRq, выделяя большой буквой клавишу действия;

loglevel’0‘-‘8‘ — позволяет менять уровень подробности вывода от 0 (только критические сообщения) до 8 (самый подробный режим);

re’B‘oot — немедленная перезагрузка системы, прямо как клавиша RESET (без синхронизации и размонтирования файловых систем);

C‘rashdump — выполняет директиву kexec для перезагрузки, чтобы получить сведения об ошибках;

hol’D‘s — показывает все блокировки, которые держат устройства или файлы;

power’O‘ff — корректно выключает систему (если настроено и поддерживается, обычно это прямая команда отключения);

S‘ync — пытается синхронизировать все примонтированные файловые системы, при этом пишет в консоли «Emergency Remount R/O» — когда этот процесс закончится, должно написать «Emergency Remount Complete»;

U‘nmount — пытается перемонтировать все примонтированные файловые системы в режим «только-чтение»;

show’T‘asks — выдаст список текущих задач и информацию о них в текущую консоль;

N‘ice — используется для того, чтобы сделать задачи реального времени с изменяемым приоритетом;

sho’W‘-blocked-tasks — выдаст список всех непрерываемых (заблокированных, ждущих окончание ввода-вывода) задач;

show’M’em — выдаст информацию о доступной и занятой оперативной памяти, а так же степени использования своп-файла;

F‘ull — вызвать oom_kill (out-of-memory kill) для прерывания приложений, забравших слишком много памяти (может занять продолжительное время);

secure acces ‘K‘ey — убивает все программы на текущей консоли, но не применяйте её на консоли, где запущены иксы (графический сервер будет остановлен и вы не сможете увидеть то, что печатаете и то, что ответит SysRq);

un’R‘aw — забирает контроль над мышью и клавиатурой у Х-сервера, что полезно, если Х-севрвер завис: так можно перейти в консоль, убить Х-сервер или проверить логи;

t’E‘rm — послать сигнал завершения работы SIGTERM всем процессам, кроме init.

K’I‘LL — послать сигнал немедленного завершения работы SIGKILL всем процессам, кроме init.

Аутро
То есть, например, для аварийной синхронизации данных жмём ALT+SysRq + s, далее ALT+SysRq + u и после этого можно жать на ресет или, что тоже самое ALT+SysRq+b.

Ссылки: