Центр Диагностики & База Системных Ошибок

Решения для Windows Server, Active Directory, 1С, СУБД, Linux, Cisco, MikroTik и IP-телефонии.

⚠️ Важная информация Все материалы, инструкции, команды и скрипты предоставлены исключительно в ознакомительных целях. Их применение может повлиять на работу операционной системы, баз данных и сетевого оборудования. Перед выполнением действий обязательно создайте резервную копию. При отсутствии необходимой квалификации обратитесь к ИТ-специалистам.
LINUX-SYSRQ-REISUB-GUIDE Linux / DevOps

Гайд: Настройка Magic SysRq Key: экстренная синхронизация дисков и безопасная перезагрузка (REISUB)

Обновлено: 21.08.2026  ·  Официальная база знаний

Архитектура подсистемы Magic SysRq Key в ядре Linux

Комбинация Magic SysRq Key — это встроенный в ядро Linux низкоуровневый механизм экстренной отладки и восстановления, работающий напрямую через драйвер клавиатуры или системный псевдотерминал /proc/sysrq-trigger. В отличие от стандартных демонов пространства пользователя (Userspace), обработчик SysRq перехватывает системные прерывания на уровне прерываний ядра (Interrupt Handler). Это позволяет безопасно остановить зависшую систему, сбросить файловые кэши на диск и перезагрузить сервер даже в ситуациях, когда:

  • Полностью завис графический сервер Xorg / Wayland;
  • Пространство пользователя заблокировано из-за 100% исчерпания оперативной памяти (OOM Thrashing);
  • Заблокирован планировщик задач или процесс упал в состояние Uninterruptible Sleep (D-state) из-за зависшего дискового I/O;
  • Сервер недоступен по протоколу SSH.

Бизнес-риски аварийного отключения по питанию (Hard Reset)

Жесткое выключение сервера кнопкой питания или через PDU без предварительного сброса буферов приводит к повреждению журналов файловых систем (EXT4/XFS), потере транзакций в СУБД (MySQL/PostgreSQL) и разрушению RAID-массивов.

Мнемоническая последовательность REISUB (Raising Elephants Is So Utterly Boring)

КлавишаСистемное действие ядраНазначение
R (unRaw)Переводит клавиатуру из режима Raw в режим XLATE.Возврат контроля над клавиатурой при зависшем Xorg.
E (tErm)Отправляет сигнал SIGTERM всем процессам, кроме init / systemd.Корректное завершение пользовательских программ.
I (kIll)Отправляет сигнал SIGKILL всем оставшимся процессам.Принудительное уничтожение зависших процессов.
S (Sync)Сбрасывает все «грязные» страницы (Dirty Pages) из RAM на диск.Предотвращение повреждения файловых систем.
U (Unmount)Ремонтирует все смонтированные файловые системы в режим Read-Only.Защита разделов перед сбросом питания.
B (reBoot)Мгновенно перезагружает систему в обход BIOS/UEFI.Безопасный перезапуск сервера.

Регламент включения и применения Magic SysRq

Сценарий 1: Персистентная активация SysRq в sysctl

По умолчанию в большинстве дистрибутивов (Ubuntu, Debian, RHEL) функционал SysRq включен частично (битовая маска 176 или 438). Для полной активации задайте битовую маску 1:

# 1. Проверка текущего значения битовой маски SysRq:
cat /proc/sys/kernel/sysrq

# 2. Включение всех функций на лету:
sudo sysctl -w kernel.sysrq=1

# 3. Персистентное сохранение в конфигурационном файле:
sudo tee /etc/sysctl.d/99-sysrq.conf <<EOF
kernel.sysrq = 1
EOF

sudo sysctl --system

Сценарий 2: Порядок экстренной перезагрузки через клавиатуру (REISUB)

Зажмите комбинацию клавиш Alt + PrintScreen (SysRq) и, удерживая их, последовательно нажимайте клавиши с интервалом в 2–3 секунды:

  1. Alt + SysRq + R — перехват клавиатуры;
  2. Alt + SysRq + E — отправка SIGTERM (подождите 3 секунды для сохранения данных приложениями);
  3. Alt + SysRq + I — уничтожение зависших процессов через SIGKILL;
  4. Alt + SysRq + S — синхронизация файловых систем (дождитесь мигания индикаторов диска или надписи Emergency Sync complete в консоли);
  5. Alt + SysRq + U — перемонтирование в Read-Only (сообщение Emergency Remount R/O);
  6. Alt + SysRq + B — немедленный ребут.

Сценарий 3: Выполнение SysRq команд через псевдотерминал /proc/sysrq-trigger (Удаленно по SSH / IPMI Serial-over-LAN)

Если доступен доступ к шеллу, но система нестабильна:

# Экстренная синхронизация буферов диска:
sudo bash -c 'echo s > /proc/sysrq-trigger'

# Перевод файловых систем в режим Read-Only:
sudo bash -c 'echo u > /proc/sysrq-trigger'

# Принудительный OOM-Kill самого тяжелого процесса:
sudo bash -c 'echo f > /proc/sysrq-trigger'

# Мгновенная перезагрузка:
sudo bash -c 'echo b > /proc/sysrq-trigger'

Типовые ошибки администраторов

  • Слишком быстрое нажатие последовательности: Если нажать REISUB за 1 секунду, ядро не успеет завершить сброс сотен мегабайт грязных страниц из буферов на диск до отправки команды b (Reboot). Обязательно выдерживайте паузу 3–5 секунд между S, U и B.
  • Использование на ноутбуках без функциональной клавиши: На многих компактных клавиатурах кнопка PrintScreen совмещена с Fn или Insert (комбинация становится Alt + Fn + PrtScn + [Key]).
Серверы зависают намертво без видимых причин в dmesg?
Инженеры ITSTM настроят сбор ядерных дампов, консольный вывод по Serial-over-LAN (IPMI SoL) и проведут аудит системной памяти.
Практический опыт инженера: При отладке зависших драйверов ядра отправьте команду 'echo t > /proc/sysrq-trigger' или нажмите Alt+SysRq+T. Ядро выведет трассировку стека (Backtrace) абсолютно всех процессов и потоков системы в dmesg, что позволяет мгновенно обнаружить зависший семафор или мьютекс.

Частые вопросы (FAQ)

Что означают значения битовой маски kernel.sysrq?

0 — полностью выключено; 1 — включены все команды; 2 — включен контроль уровней логирования консоли; 4 — управление клавиатурой (SAK, unraw); 8 — отладочные дампы процессов; 16 — синхронизация sync; 32 — перемонтирование remount-ro; 64 — сигналы процессам (term, kill, oom-kill); 128 — перезагрузка/выключение.

Как вызвать SysRq в виртуальной машине KVM / Proxmox?

В Proxmox/QEMU выполните команду в консоли монитора: sendkey sysrq-b или sendkey alt-sysrq-s.

Чем отличается SysRq 'o' от SysRq 'b'?

Команда 'b' выполняет немедленный перезапуск (reBoot), а команда 'o' инициирует немедленное отключение питания материнской платы (powerOff) через ACPI.

Безопасно ли оставлять kernel.sysrq = 1 на публичных серверах?

Если к физической консоли или KVM-интерфейсу имеют доступ посторонние лица, SysRq позволяет перезагрузить сервер или вызвать OOM-killer. В защищенных ЦОД с авторизованным доступом значение 1 является стандартом DevOps.