Введение

Команды клавиатуры для восстановления системы Linux. Магическая клавиша SysRq – это комбинация клавиш, распознаваемая ядром Linux, позволяющая пользователю выполнять различные команды низкого уровня независимо от состояния системы. Она часто используется для восстановления после зависаний или перезагрузки компьютера без повреждения файловой системы. Её эффект аналогичен аппаратной кнопке сброса (или выключателю питания), но с гораздо большим количеством опций и контролем. Эта комбинация клавиш предоставляет доступ к функциям аварийного восстановления. В этом смысле её можно рассматривать как последовательность выхода из критической ситуации. Среди основных предлагаемых команд – принудительное отмонтирование файловых систем, завершение процессов, восстановление состояния клавиатуры и запись несохранённых данных на диск. Магическая клавиша SysRq не может работать в определенных условиях, например, при панике ядра или аппаратном сбое, препятствующем нормальной работе ядра.

Применение

До появления журналируемых файловых систем, обычным применением магической клавиши SysRq была безопасная перезагрузка заблокированного компьютера Linux (сокращенно REISUB), что позволяло избежать риска повреждения файловой системы. С современными файловыми системами эта практика не рекомендуется, поскольку не дает никаких преимуществ по сравнению с обычной перезагрузкой, хотя значение по умолчанию для kernel.sysrq в таких дистрибутивах, как Ubuntu и Debian, остается 176 и 438 соответственно. Ранее клавиша также использовалась для завершения работы зависшей графической программы, поскольку X Window System имела полный контроль над графическим режимом и устройствами ввода. На дистрибутивах, не имеющих команды, сочетание клавиш иногда может принудительно вернуть в текстовую консоль. (Используйте , , , , где size=100% – максимальное количество текстовых консолей, настроенных в дистрибутиве. обычно используется для повторного входа в графический режим на системе, где сервер X не завершил работу аварийно.) Существуют также дистрибутивы, где + (, ,) открывает текстовые консоли, возвращает в графический режим, возвращает в графический режим на экране входа, чтобы войти под другим пользователем.

Конфигурация

Эта функция управляется как опцией времени компиляции в конфигурации ядра, так и параметром sysctl ядра. В новых ядрах (начиная с 2.6.12) появилась возможность более детально настроить использование магической клавиши SysRq. На этих машинах значение, записываемое в , может быть 0, 1 или числом больше 1, которое представляет собой битовую маску, определяющую разрешенные функции. В Ubuntu это значение устанавливается при загрузке в соответствии с , определенным в .

Другие способы вызова Magic SysRq

В то время как магическая клавиша SysRq изначально была реализована как часть обработчика клавиатуры ядра для отладки, эта функциональность также была предоставлена через файловую систему proc и обычно используется для обеспечения расширенных возможностей управления для систем без монитора и удаленных систем. Из программ пользовательского пространства (таких как командная строка) доступ к SysRq можно получить, записывая в (например, ). Демоны Linux и предоставляют способ доступа к функциям SysRq через TCP-соединение после аутентификации с помощью обычного текстового пароля. Демон будет вызывать предварительно настроенные триггеры SysRq, когда средняя загрузка системы превысит определенный порог. Гипервизор Xen имеет функциональность для отправки магических команд гостевым доменам через свою команду. Кроме того, команду SysRq можно вызвать с паравиртуальной консоли Xen, отправив прерывание, за которым следует желаемая клавиша. У Chromebooks есть клавиатура, но нет выделенной клавиши SysRq. Вместо этого они используют , однако некоторые клавиши выполняют другую функцию. Серверы IBM Power Systems могут вызвать функцию Magic SysRq, используя , за которой следует желаемая клавиша, из консоли управления оборудованием. Разделы IBM-мейнфреймов могут вызвать функцию Magic SysRq, используя , за которой следует желаемая клавиша, на консоли 3270 или HMC.