Из Википедии, бесплатной энциклопедии
Перейти к навигации Перейти к поиску
Ключ SysRq

Ключ магии SysRq это комбинация клавиша понята ядром Linux , что позволяет пользователю выполнять различные команды низкого уровня , независимо от состояния системы. Он часто используется для восстановления после зависаний или для перезагрузки компьютера без повреждения файловой системы . [1] Его действие аналогично кнопке аппаратного сброса компьютера (или выключателю питания), но с гораздо большим количеством опций и большим контролем.

Эта комбинация клавиш обеспечивает доступ к мощным функциям для разработки программного обеспечения и аварийного восстановления. В этом смысле это можно рассматривать как форму escape-последовательности . Основными среди предлагаемых команд являются средства принудительного отключения файловых систем, завершения процессов, восстановления состояния клавиатуры и записи незаписанных данных на диск. В отношении этих задач эта функция служит крайним средством.

Волшебный ключ SysRq не может работать при определенных условиях, таких как паника ядра [2] или аппаратный сбой, препятствующий правильной работе ядра.

Команды [ править ]

Комбинация клавиш состоит из Alt+ SysRq(для Linux Mint комбинация Ctrl Alt+ SysRq) и другой клавиши, которая управляет выданной командой. SysRqможет быть отпущен перед нажатием командной клавиши, пока Altостается нажатой.

Комбинации всегда предполагают раскладку клавиатуры QWERTY ; например, на раскладке клавиатуры Дворжака комбинация для выключения системы использует Rклавишу вместо O. Кроме того, на некоторых клавиатурах может не быть отдельной SysRqклавиши. В этом случае PrtScrдолжен присутствовать отдельный ключ.

На некоторых устройствах, особенно на ноутбуках, Fnдля использования волшебной клавиши может потребоваться нажать SysRqклавишу, например, Thinkpad Carbon X1 SysRqактивируется одновременным нажатием Alt+ Fn+ S, затем отпусканием Fnи Sудерживанием Alt( см. Здесь ).

Доступ к функциям SysRq также возможен без клавиатуры. См. § Другие способы вызова Magic SysRq ниже.

Вывод SysRq hна ядре x86_64:

sysrq: HELP: loglevel (0-9) перезагрузка (b) сбой (c) terminate-all-tasks (e) memory-full-oom-kill (f) kill-all-tasks (i) thaw-filesystems (j) sak (k) show-backtrace-all-active-cpus (l) show-memory-usage (m) nice-all-RT-tasks (n) poweroff (o) show-registers (p) show-all-timers ( q) unraw (r) sync (s) show-task-states (t) unmount (u) force-fb (v) show-blocked-tasks (w) dump-ftrace-buffer (z)

Использует [ редактировать ]

Обычно волшебный ключ SysRq используется для безопасной перезагрузки компьютера с Linux, который в противном случае заблокирован ( сокращенно REISUB ). Это может предотвратить необходимость выполнения команды fsck при перезагрузке и дает некоторым программам возможность сохранять аварийные резервные копии несохраненной работы. [4] QWERTY - (или AZERTY) Мнемоника : « aising lephants s о tterly ORing», « Eboot вэн е ystem tterly roken» или просто слово «занят» чтение в обратном направлении, часто используются , чтобы помнить следующее SysRq-клавиши последовательности:REISUBREISUB

  • un Raw (вернуть управление клавиатурой из X ),
  • t Erminate (отправить SIGTERM всем процессам, позволяя им корректно завершиться),
  • k Ill (отправить SIGKILL всем процессам, кроме init , чтобы они немедленно завершились),
  • Sync (сбросить данные на диск),
  • Unmount (перемонтировать все файловые системы только для чтения),
  • re Boot.

Когда волшебные SysRqклавиши используются для уничтожения зависшей графической программы, программа не имеет возможности восстановить текстовый режим . Это может сделать все нечитаемым. Команды textmode (часть SVGAlib ) и команда сброса могут восстановить текстовый режим и снова сделать консоль доступной для чтения.

В дистрибутивах, которые не включают команду textmode , клавиша command + + иногда может принудительно вернуться к текстовой консоли. (Используйте , , , ..., , где п наибольшее количество текстовых консолей , созданных распределения. + + , Как правило, используется для режима GUI на введите снова систему , на которой сервер X не разбился.) Есть также дистрибутивы, где + + ( , ..., ) открывает текстовые консоли, + + повторно входит в режим графического интерфейса пользователя, + + повторно входит в режим графического интерфейса пользователя на странице входа в систему, чтобы войти в систему другого пользователя.CtrlAltF1F1F2F3FnCtrlAltF(n+1)CtrlAltF3F(n-2)CtrlAltF1CtrlAltF2

Конфигурация [ править ]

Эта функция управляется как параметром compile -time в конфигурации ядра, CONFIG_MAGIC_SYSRQ , так и параметром ядра sysctl , kernel.sysrq .

В более новых ядрах (начиная с версии 2.6.12 [5] ) можно получить более детальный контроль над тем, как можно использовать волшебный ключ SysRq. [6] На этих машинах число, записанное в / proc / sys / kernel / sysrq, может быть 0, 1 или числом больше 1, которое является битовой маской, указывающей, какие функции разрешить. В Ubuntu во время загрузки устанавливается значение, определенное в /etc/sysctl.d/10-magic-sysrq.conf .

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

Хотя волшебная клавиша SysRq изначально была реализована как часть обработчика клавиатуры ядра для отладки, функциональность также была представлена ​​через файловую систему proc и обычно используется для обеспечения расширенных возможностей управления для автономных и удаленных систем. Доступ к SysRq из программ пользовательского пространства (таких как оболочка командной строки) можно получить, записав в / proc / sysrq-trigger (например, ). [1]echo s > /proc/sysrq-trigger

Многие встроенные системы не имеют подключенной клавиатуры, но вместо этого используют последовательную консоль для ввода / вывода текста в работающую систему. Функцию Magic SysRq можно вызвать через последовательную консоль, отправив сигнал прерывания последовательного порта , за которым следует желаемый ключ. Способ отправки прерывания зависит от программы терминала или оборудования, используемого для подключения к последовательной консоли. Для включения этой функции необходимо установить параметр sysctl . [7]

Демоны Linux sysrqd [8] и tcpconsole [9] предоставляют метод доступа к функциям SysRq через TCP-соединение после аутентификации с использованием пароля в виде простого текста. Hangwatch [10] демон будет вызывать предварительно настроенные SysRq триггеры , когда система Средняя нагрузка превышает определенный порог.

Xen гипервизор имеет функциональность для отправки магических команд на припаркованные домены через его хты SYSRQ команды. [11] Кроме того, команду SysRq можно вызвать из паравиртуальной консоли Xen, отправив последовательность прерывания +, за которой следует желаемый ключ.CtrlO

У Chromebook есть клавиатура, но нет выделенной клавиши SysRq. Вместо этого они используют Alt+ VolumeUp( Alt+ F10), [12] [13] [14], однако некоторые клавиши имеют другие функции. [15] [16]

Серверы IBM Power Systems могут вызывать функцию Magic SysRq с помощью Ctrl+, Oза которым следует желаемый ключ из Консоли управления оборудованием .

Разделы мэйнфреймов IBM могут вызывать функцию Magic SysRq с помощью ^+, -за которым следует желаемый ключ на консоли 3270 или HMC.

См. Также [ править ]

  • Стоп-A , последовательность клавиш используется для доступа Sun Microsystems «s Open Firmware (OpenBoot)
  • Консольный сервер
  • KVM-переключатель
  • Системная консоль

Ссылки [ править ]

  1. ^ a b «Взлом Linux Magic System Request Key» . kernel.org . 2013-08-12 . Проверено 21 мая 2017 . CS1 maint: обескураженный параметр ( ссылка )
  2. ^ Khamlichi, Мел (18 октября 2010), использование магии SysRq Комбинация клавиш для восстановления из системы замороженных в Linux , Unixmen, Архивировано из оригинального 20 августа 2014 года , получен 21 сен 2014 CS1 maint: обескураженный параметр ( ссылка ).
  3. ^ Барнс, Джесси (2007-11-07). «DRM: i915: поддержка настройки режима добавления» . Git (фиксация). Ядро . Проверено 31 августа 2013 . CS1 maint: обескураженный параметр ( ссылка )
  4. ^ Peddicord, Иаков (2007-09-08). «Исправить замороженную систему с помощью ключей Magic SysRq» . Fosswire . Проверено 31 августа 2013 . CS1 maint: обескураженный параметр ( ссылка )
  5. ^ Кальеха, Диего (2012-07-17). «Linux 2.6.12» . Новички в ядре Linux . Проверено 31 августа 2013 . CS1 maint: обескураженный параметр ( ссылка )
  6. ^ "QA / Sysrq" . Проект Fedora . 2013-05-09 . Проверено 9 апреля 2015 . CS1 maint: обескураженный параметр ( ссылка )
  7. ^ Тернер, Глен; Комарински, Марк Ф (31 марта 2003 г.). «Волшебный ключ SysRq» . Практическое руководство по удаленной последовательной консоли . Проект документации Linux . Проверено 8 мая 2015 . CS1 maint: обескураженный параметр ( ссылка )
  8. ^ Данжу, Жюльен. "sysrqd" (проект) . Проверено 13 сентября 2016 . CS1 maint: обескураженный параметр ( ссылка )
  9. ^ van Heusden, Folkert. "tcpconsole" . Проверено 31 августа 2013 . CS1 maint: обескураженный параметр ( ссылка )
  10. ^ Морган, Пол. "Hangwatch" . GitHub . Проверено 31 августа 2013 . CS1 maint: обескураженный параметр ( ссылка )
  11. ^ «27. Краткий справочник по команде xm», Руководство по виртуализации Enterprise Linux 5 , RedHat , получено 31 августа 2013 г. CS1 maint: обескураженный параметр ( ссылка )
  12. ^ «Ярлыки кнопок отладки» . Документы Chromium OS . Проверено 22 октября 2018 . CS1 maint: обескураженный параметр ( ссылка )
  13. ^ "Изменение 29110: CHROMIUM: sysrq: рассматривать F10 как волшебный ключ sysrq" . Проверено 11 июля 2016 . CS1 maint: обескураженный параметр ( ссылка )
  14. ^ "Chromium OS dev: SysRq в ядре ChromiumOS" . Проверено 11 июля 2016 . CS1 maint: обескураженный параметр ( ссылка )
  15. ^ "Помогает отладить зависает система" . Проекты Chromium . Проверено 25 сентября 2018 . CS1 maint: обескураженный параметр ( ссылка )
  16. ^ "CHROMIUM: sysrq: добавить возможность для sysrq-x сигнализировать chrome / X" . Проверено 12 апреля 2018 . CS1 maint: обескураженный параметр ( ссылка )

Внешние ссылки [ править ]

  • «Документация / sysrq.txt» . Linux (дерево исходных кодов ядра). kernel.org . Проверено 31 января 2017 . CS1 maint: обескураженный параметр ( ссылка )
  • "Linux Magic System Request Key Hacks" . Linux (документация ядра Linux). kernel.org . Проверено 1 июня 2020 . CS1 maint: обескураженный параметр ( ссылка )
  • Мортон, Эндрю (13 марта 2013 г.). «Патч ядра к дереву -mm, в котором добавлена ​​функция / proc / sysrq-trigger: это делает возможности sysrq доступными для удаленных пользователей» . Проверено 9 апреля 2015 . CS1 maint: обескураженный параметр ( ссылка )
  • Лоуренс, Тони (13 апреля 2005 г.). «Magic Sysrq Key в Linux» . А. П. Лоуренс . Проверено 9 апреля 2015 . CS1 maint: обескураженный параметр ( ссылка )
  • Галл, Том (2000-04-01). «Волшебный системный запрос» . Разработчик работает . IBM . Архивировано из оригинала на 2007-05-27 . Проверено 3 сентября 2013 . CS1 maint: обескураженный параметр ( ссылка )