Alt + sysrq + REISUB не перезагружает мой ноутбук

Иногда мой ноутбук зависал, поэтому я использовал волшебную комбинацию клавиш Alt + SysRq + REISUB для выполнения безопасная перезагрузка. Однако, мне кажется, что это не работает, когда я нажимаю клавишу B , чтобы завершить команду магического ключа, она просто говорит «сброс ...» и ничего не делает. [110 ]

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

У меня сложилось впечатление, что мой ноутбук должен перезагрузиться после того, как все магические клавиши были нажаты в порядке REISUB.

58
задан 04.04.2020, 22:38

5 ответов

Alt + SysRq был отключен, чтобы исправить ошибку. Отключение Magic-SysRq считалось самой ошибкой, и с тех пор оно было повторно включено ( # 1025467 ). Если он все еще отключен для вас, вы можете снова включить его:

Ubuntu 12.04 и старше

Отредактируйте файл /etc/sysctl.conf , чтобы включить строку

kernel.sysrq=1

Ubuntu 12.10 и новее

Начиная с Ubuntu 12.10, возможен более детальный контроль над включенными функциями Magic-SysRq. Просто отредактируйте файл /etc/sysctl.d/10-magic-sysrq.conf .

Файл хорошо документирован и говорит вам, как именно включить эти функции. Текущее значение по умолчанию было выбрано в целях безопасности и должно быть изменено только в том случае, если вы знаете, зачем вам это нужно (сведения о безопасности см. В # 194676 ).

0
ответ дан 04.04.2020, 22:39
  • 1
    @geezanansa Вы можете редактировать свои комментарии, пока они еще горячие. Пожалуйста, не добавляйте несколько последовательных комментариев. Также у меня SysRq работает 13.04. Никогда не пробовал на Live DVD, только после установки. Итак, я не понимаю положительных отзывов об этом ответе, потому что это очень короткий период времени (см. Отчет об ошибке). ;) – kri 04.04.2020, 22:39
  • 2
    Нет, это не так. Он отлично работает на индивидуалистах, натти, онейриках и точных. – Jess 04.04.2020, 22:40
  • 3
    @geezanansa, да, я думаю, что они отключили его в количественном выражении, после того как я опубликовал это – Offirmo 04.04.2020, 22:40
  • 4
    Он был фактически отключен для устранения ошибки, но он был снова включен. Я обновил ответ. Должны ли мы также отредактировать вопрос, чтобы он был немного более общим? – om-nom-nom 04.04.2020, 22:40
  • 5
    @gertvdijk: Когда я обновил вопрос, я упомянул файл etc / sysctl.d / 10-magic-sysrq.conf, который включает параметры sysrq для всего, что вам нужно для включения всех соответствующих функций. Когда вопрос был задан (в 2010 году), на самом деле это было решение, потому что & quot; b & quot; был фактически деактивирован по умолчанию из-за ошибки. Я изменил ответ на более общий с целью, я отвечаю на вопрос о том, что sysrq является полностью нефункциональным, а также частично нефункциональным. – Allen 04.04.2020, 22:41

ATTRIBUTIONS :
https://fedoraproject.org/wiki/QA/Sysrq#How_do_I_use_the_magic_SysRq_key , которая была основана на оригинальной работе
[ 1125] Кредиты
Автор Mydraal
Обновлено Adam Sulmicki
Обновлено Jeremy M. Dolan 2001/01/28 10:15:59
Добавлено Crutcher Dunnavant

https://askubuntu.com/a/11194/102029 mneiss предоставил ссылки для LaunchPad.

Содержание

Что такое sysrq?
Почему RESIUB (O) не работает?

1 Как заставить sysrq вести себя так, как я хочу?
1.1 Что такое магический ключ SysRq?
[1132 ] 1.2 Как включить магический ключ SysRq?
1.3 Как использовать магический ключ SysRq?
1.4 [ 11160] Что такое «командные» клавиши?
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 ПРИЛОЖЕНИЕ
Примечание.
Вы можете использовать Ctrl + F , чтобы использовать оглавление.

Что такое SysRq?

Широко используется широко известный и используемый метод восстановления использования машины после ее зависания или блокировки с ограничением риска повреждения диска, приводящего к повреждению системного файла или потере данных. 1143]
Alt + SysRq + r , а затем s , а затем e а затем i , а затем u , а затем b и / или, если необходимо ( o )

[ 1199] Это не сработало, как ожидалось, для многих (то есть для меня и Джеймса) во всех разновидностях от> = 8.04LTS до текущей версии 13.04.

Почему RESIUB (O) не работает?

Рассмотрим описание этой ошибки, найденное в Ошибка LaunchPad 194676 :

Описание проблемы: [1144 ]
По умолчанию SysRq включен по умолчанию в настольных системах Ubuntu, что неоценимо, когда система заблокирована, и вы хотите остановить ее как можно осторожнее или устранить проблему. Однако многие удивляются, что вы также можете попросить его сбросить содержимое текущей памяти на консоль (или dmesg), хотя бы только с клавиатуры.
openSUSE устанавливает битовую маску по умолчанию 176 в своем SysRq, которая по умолчанию ограничивает вас синхронизацией, перезагрузкой и «перемонтированием только для чтения». Это останавливает людей, использующих sysrq по умолчанию для проверки памяти, которая звучит разумно.

Разработчики Ubuntu сочли необходимым сделать что-то с этим, и лучшее решение, учитывая возможные сложности упомянутого наблюдения, состоит в том, чтобы по умолчанию применять битовую маску 176 sysrq, создавая необходимость ввода данных пользователем, чтобы установить sysrq как они хотят. Битовая маска 176 допускает только S , U , B , что является синхронизацией, перемонтированием смонтированных разделов и перезагрузкой.
Прочтите полный отчет об ошибке и комментарии, чтобы выделить некоторые параметры, которые могут быть применимы к вашей системе.

Совокупное влияние различных аппаратных средств, ядер, клавиатур и битовых масок означает, что sysrq ведет себя по-разному для разных людей.

Один из способов получения вывода txt относительно того, как ваша система использует sysrq, - это применять команды sysrq от tty (когда система не страдает от блокировок / зависаний). Это может указывать на то, что sysrq не был полностью отключен, но использует битовую маску 176.

Поиск / proc / sys / kernel / sysrq на 13.04 Desktop amd64 liveDVD и установка 13.04 Desktop amd64 подтверждают, что по умолчанию в данный момент установлено значение оставить sysrq в битовой маске 176.

Если sysrq работает для вас; возможно, стоит спросить: «Если я не изменил настройки 10-magic-sysrq, то кто?»

1 Как заставить sysrq вести себя так, как я хочу?

Далее следует отредактированная копия и вставка https://fedoraproject.org/wiki/ ОК / SYSRQ . [+1169]

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?

Рабочий стол Ubuntu

Вы нажимаете комбинацию клавиш Alt + SysRq + командный ключ .

N.B .- См. Примечания в этом разделе и в разделе «Устранение неполадок» для других возможных настроек по умолчанию для других систем и клавиатур.

Можно установить любой символ по вашему выбору: Все архитектуры

Записать символ в / proc / sysrq-trigger:

echo t > /proc/sysrq-trigger

установит T ведет себя как SysRq
Примечание.
У некоторых клавиатур может не быть клавиши с надписью SysRq . Клавиша SysRq также известна как клавиша Печать экрана . Кроме того, некоторые клавиатуры не могут обрабатывать столько клавиш одновременно, поэтому вам может повезти с Alt + SysRq - SysRq , а затем нажмите командный ключ затем отпустите все. См. Полное описание QA, на котором основано это руководство https://fedoraproject.org/wiki/QA/Sysrq#How_do_I_use_the_magic_SysRq_key.3F для получения дополнительной информации об этом.

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 r aw очень удобно, когда ваш X-сервер или программа svgalib аварии.

Sa k (ключ безопасного доступа) полезен, если вы хотите убедиться, что на консоли не запущена троянская программа, которая могла бы получить ваш пароль при попытке входа в систему. Он убьет все программы на данной консоли, что позволит вам убедиться, что приглашение для входа в систему, которое вы видите, на самом деле происходит от init, а не от какой-либо троянской программы. Другие находят его полезным как (Системный ключ внимания), который полезен, когда вы хотите выйти из программы, которая не позволит вам переключать консоли. (Например, X или программа svgalib.)
Примечание.
В своей истинной форме это не настоящий SAK, как в системе, совместимой с c2, и его не следует ошибочно принимать.

Re b хорошо, когда вы не можете выключиться.
[Тысяча сто семьдесят шесть] Примечание. [Тысяча сто семьдесят шесть] [+1154] [+1154] Обычно считается хорошей практикой u монтировать сначала

Crashdump можно использовать для ручного запуска c rashdump, когда система зависает.
Примечание.
Ядро должно быть собрано с включенным CONFIG_KEXEC!

Синхронизация великолепна, когда ваша система заблокирована, она позволяет вам s ync ваши диски и, несомненно, уменьшит вероятность данных потеря и фскинг.
Предупреждение
Синхронизация не состоялась до тех пор, пока на экране не появятся «OK» и «Готово». (Если ядро ​​действительно находится в состоянии раздора, вы можете никогда не получить сообщение OK или Готово.

Монтирование U в основном полезно так же, как S ync.

Уровни журналов 0 - 9 полезны, когда ваша консоль загружается сообщениями ядра, которые вы не хотите видеть. Выбор 0 будет препятствовать тому, чтобы все, кроме самых срочных сообщений ядра, доходили до вашей консоли.
Примечание.
Они по-прежнему будут регистрироваться, если syslogd / klogd живы

T e rm и k i ll полезны, если у вас есть какой-то сбежавший процесс, который вы не можете убить любым другим способом, особенно если он порождает другие процессы.
Примечание.
При возникновении паники в ядре выполните Alt + Sysrq + e затем Alt + Sysrq + u затем Alt + Sysrq + i и, наконец, Alt + Sysrq + b

[1117 5] 1.6 Устранение неполадок

1.6.1 Зависание до запуска initscripts

Если машина зависает до запуска initscripts, загрузитесь с sysrq_always_enabled=1

1.6.2 Иногда SysRq, похоже, застревает после его использования, что мне делать?

Нажатие shift , alt и control с обеих сторон клавиатуры, и повторное нажатие неверной последовательности sysrq решит проблему. (то есть что-то вроде alt + sysrq + z ).

Переключение на другую виртуальную консоль ( Ctrl + Alt + Fn1 - Fn6 ) и затем снова обратно < kbd> Ctrl + Alt + Fn7 также должен помочь.

1.6.3 Я нажал SysRq , но, похоже, ничего не происходит, что не так?

Существуют некоторые клавиатуры, которые отправляют разные коды сканирования для SysRq , чем предопределенный 0x54. Поэтому, если SysRq не работает из коробки для определенной клавиатуры, запустите showkey -s, чтобы узнать правильную последовательность кодов сканирования. Затем используйте setkeycodes <sequence> 84 для определения этой последовательности в обычном коде SysRq (84 - десятичное число для 0x54). Вероятно, лучше всего поместить эту команду в загрузочный скрипт.
Предупреждение
Вы выходите из showkey, ничего не печатая в течение десяти секунд.

1.6.4 Я хочу добавить ключевые события SysRq в модуль, как это работает?

Чтобы зарегистрировать основной Для работы с таблицей необходимо сначала включить заголовок include/linux/sysrq.h, это определит все остальное, что вам нужно. Затем вы должны создать структуру sysrq_key_op и заполнить ее ...

  • Функция обработчика клавиш, которую вы будете использовать.

  • Строка help_msg, которая будет печататься, когда SysRQ печатает help

  • Строка action_msg, которая будет печататься непосредственно перед вызовом вашего обработчика. Ваш обработчик должен соответствовать прототипу в 'sysrq.h'

После создания sysrq_key_op можно вызвать функцию ядра register_sysrq_key (ключ int, struct sysrq_key_op * op_p); это зарегистрирует операцию, на которую указывает op_p в ключе таблицы «key», если этот слот в таблице пуст. Во время выгрузки модуля вы должны вызвать функцию unregister_sysrq_key (int key, struct sysrq_key_op * op_p), которая удалит ключ op, на который указывает op_p, из ключа 'key', если и только если он в настоящее время зарегистрирован в этом слот. Это в случае, если слот был перезаписан с момента регистрации.

Система Magic SysRq работает, регистрируя ключевые операции для таблицы поиска ключевых операций, которая определена в 'drivers / char / sysrq.c'. Эта таблица ключей имеет ряд операций, зарегистрированных в ней во время компиляции, но она изменчива, и для интерфейса с ней экспортируются 2 функции register_sysrq_key и unregister_sysrq_key. Конечно, никогда не оставляйте неверный указатель в таблице. то есть; Когда ваш модуль, который вызвал register_sysrq_key (), выходит, он должен вызвать unregister_sysrq_key (), чтобы очистить используемую им запись таблицы ключей sysrq.
[Тысяча сто восемьдесят две] Примечание. [Тысяча сто восемьдесят две]
Нулевые указатели в таблице всегда безопасны.

Если по какой-то причине вы чувствуете необходимость вызова функции handle_sysrq из функции, вызываемой handle_sysrq, вы должны знать, что вы находитесь в блокировке (вы также находитесь в обработчике прерываний, что означает, что не спать!), поэтому вы должны вместо этого вызвать __handle_sysrq_nolock.

1.6.5 Заключение

Используйте Alt + SysRq + S , а затем U < / kbd> и затем B для синхронизации, попытайтесь перемонтировать все смонтированные файловые системы и затем перезагрузить, если необходимо. Не меняя ничего в системных файлах.
Если Alt + SysRq + B не перезагружает систему, может потребоваться изменить /etc/sysctl.d/10-magic-sysrq. conf, чтобы разрешить попытку применения Alt + SysRq + B (или / и O после редактирования / Битовая маска proc / sys / kernel / sysrq для включения перезагрузки и выключения системы с помощью sysrq. Это можно сделать любым из способов, описанных выше.

1.6.6 ПРИЛОЖЕНИЕ: [ 11180] См. Также - http://ubuntuforums.org/showthread.php?t=617349 и https://www.kernel.org/doc/Documentation/sysrq.txt

Для тех, у кого проблемы с клавиатурой Apple MacBook, связанные с sysrq, см. https://help.ubuntu.com/community/AppleKeyboard и https://bugs.launchpad.net/ mactel-support / + bug / 262408

Относительно интересная информация- После просмотра 17 08 2013 эпизода программы BBC «Клик» и статья «Кибервойна» действительно привлекло мое внимание. У программы также есть собственный веб-сайт . Нажмите , если вы не можете смотреть программу. FAWC [1 183]

0
ответ дан 04.04.2020, 22:39

Я столкнулся с этим на днях, и работа заняла несколько секунд. Возможно, я даже сделал всю последовательность REISUB дважды.

Кроме того, убедитесь, что вы используете клавишу sysrq (большинство ноутбуков требуют, чтобы вы удерживали нажатой функцию, поэтому вы действительно одновременно удерживаете 4 клавиши)

0
ответ дан 04.04.2020, 22:40
  • 1
    Спасибо за ваш ответ, Скотт. Мне действительно нужно удерживать функциональную клавишу (fn) вместе с alt и sysrq. Как только я нажимаю заключительную клавишу B, чтобы завершить последовательность REISUB, мой ноутбук, кажется, блокируется после того, как он отображает: Сброс При повторении последовательности волшебных клавиш ничего не происходит, и после этого ничего не отображается на экране. Таким образом, похоже, что система блокируется при перезагрузке. – BrainSlugs83 04.04.2020, 22:41

Несколько лет назад я использовал Alt + SysRq + S , U , B , O для перезагрузки или выключения зависшего компьютера, потому что, как для вас, Alt + SysRq + B иногда не хотел работать.

(Также мне нужно привыкнуть использовать Alt + SysRq + E , I Во-первых, я не вижу особого смысла в использовании Alt + SysRq + R , так как почему режим клавиатуры имеет значение, если он собирается перезагрузиться и все равно сбросить?)

0
ответ дан 04.04.2020, 22:41
  • 1
    почему режим клавиатуры имеет значение, если он все равно перезагрузится и сбросит настройки? Потому что это дает возможность ввода с клавиатуры? это может означать, что вам не нужно перезагружаться или выключаться – Jon Onstott 04.04.2020, 22:41

Здесь проблема с клавиатурой!

  • Некоторым просто не нравится одновременное нажатие четырех клавиш, и они просто перестают быть клавиатурой, пока вы не отпустите их.
  • Все клавиатуры превращаются в раскладку QWERTY при отправке сигнала SysRq. Это затрудняет поиск правильных команд на клавиатурах с другой раскладкой. Википедия: Команды SysRq показывает таблицу, в которой можно найти подходящие варианты для распространенных альтернативных макетов.
  • У некоторых есть SysRq на другой клавише, чем PrtSc для удержания с функциональной клавишей. На моем ноутбуке это Fn + End . Удержание Alt + PrtSc работает только в том случае, если какой-то системный процесс (оконный менеджер?) Переведет его для меня. При полном сбое работает только реальный SysRq !
  • Некоторые запускают только клавишу SysRq , если удерживать вправо [ 112] Alt + PrtSc (аппаратно). Левая клавиша Alt не будет работать в таком случае по той же причине, что и выше. Так работает моя USB-клавиатура.
  • Совет: попробуйте нажать Shift + Alt + SysRq , чтобы увидеть вывод справки на виртуальном терминале. Это полезно, чтобы увидеть, работает ли он без какого-либо вреда:

    SysRq: HELP: loglevel (0-9) reBoot Crash terminate-all-tasks (E) memory-full-oom-kill ( F) «убить все задачи» (I) «thaw-filesystems» (J) «saK» show-backtrace-all-active-cpus («L») show-memory-Использование (M) «Nice-All-RT-задачи» (N) powerOff show- registers (P) show-all-timers (Q) unRaw Sync show-task-состояния (T) размонтировать show-заблокированные-задачи (W) dump-ftrace-buffer (Z)

  • [ 1112]

    Во всех случаях, с которыми я сталкивался, это не работало, замена клавиатуры работала отлично и показала, что с настройками ядра все в порядке.

0
ответ дан 04.04.2020, 22:41
  • 1
    Учитывая, что Джеймс подтверждает, что все команды sysrq работают, за исключением B. Этот ответ не является ответом на вопрос, который я прочитал как Почему sysrq B не работает? Клавиатура не является проблемой для Джеймса или многих других в отношении sysrq. -1 – jontro 04.04.2020, 22:41
  • 2
    @geezanansa Я видел, что клавиатура явно не в состоянии справиться с некоторыми комбинациями из 4 клавиш. Замена его решила проблему. В самом деле. Это может работать для всех ваших клавиатур. И если вы не понимаете, голос против, то почему бы вам не объяснить, почему вы не понимаете? – dule 04.04.2020, 22:42

Теги

Похожие вопросы