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


59

Іноді мій ноутбук застряг, тому я використав чарівну комбінацію клавіш Alt+ SysRq+, REISUBщоб виконати безпечну перезавантаження. Однак, здається, це не працює для мене, як коли я натискаю Bклавішу, щоб виконати команду магічної клавіші, вона просто говорить: "скидання ..." і нічого не робить.

Усі інші клавіші, здається, працюють добре, оскільки він скидає розкладку клавіатури, вбиває всі завдання тощо, але, схоже, не завершується перезавантаженням.

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

Відповіді:


58

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 ).


6
Ні, ні. Це чудово працює на Maverick, Natty, Oneiric та точно.
psusi

Фактично було вимкнено вирішення помилки, але її було ввімкнено повторно. Я оновив відповідь. Чи слід також редагувати питання, щоб бути трохи більш загальним?
mniess

1
@geezanansa Ви можете редагувати свої коментарі, поки вони ще гарячі. Будь ласка, уникайте додавання декількох послідовних коментарів. Також SysRq працює для мене 13.04. Ніколи не пробував його на Live DVD, хоча після встановлення. Отже, я не розумію підстав цієї відповіді, оскільки йдеться про дуже короткий проміжок часу (див. Звіт про помилку). ;)
gertvdijk

1
@gertvdijk: Коли я оновлював запитання, я згадував etc / sysctl.d / 10-magic-sysrq.conf, який включає параметри sysrq для всього необхідного для включення всіх відповідних функцій. Ще коли було задано запитання (у 2010 році), це було насправді рішенням, оскільки "b" було фактично відключено за замовчуванням через помилку. Я змінив відповідь на більш загальну за призначенням, відповідаю на питання про те, що sysrq є повністю нефункціональним, а також частково нефункціональним.
mniess

1
@geezanansa, так, я думаю, вони відключили це в кванталі, після того як я опублікував це
psusi

31

Клавіатури - це питання тут!

  • Деяким просто не подобається одночасне натискання 4-клавіш і просто перестають бути клавіатурою, поки ви не відпустите деякі.
  • Усі клавіатури перетворюються на макет QWERTY, коли ви надсилаєте сигнал SysRq. Це ускладнює пошук правильних команд на клавіатурах з іншим компонуванням. Вікіпедія: Команди SysRq показують таблицю, щоб знайти потрібні для загальних альтернативних макетів.
  • У деяких є SysRqінша клавіша, ніж PrtScутримувати функціональну клавішу. На моєму ноутбуці це Fn+ End. Холдинг Alt+ PrtScпрацює лише у тому випадку, якщо якийсь системний процес (менеджер вікон?) Перекладає його на мене. На тотальний крах, тільки справжні SysRq роботи!
  • Деякі натискають SysRqклавіші лише після того, як ви утримуєте праву Alt + PrtSc(апаратно). У такому випадку ліва клавіша Alt не працюватиме з тієї ж причини, що і вище. Ось так працює моя клавіатура USB.
  • Порада: спробуйте натиснути Shift+ Alt+, SysRqщоб побачити вихід "довідки" на віртуальному терміналі. Це корисно, щоб дізнатися, чи працює він, не завдаючи шкоди:

    SysRq: ДОПОМОГА: loglevel (0-9) перезавантаження Crash завершити всі завдання (E) пам'ять-full-oom-kill (F) kill-all-task (I) thaw-fileystems (J) saK show-backtrace-all -активний-cpus (L) шоу-пам'ять-використання (M) приємно-всі-RT-завдання (N) powerOff шоу-регістри (P) шоу-таймери (Q) unRaw Sync show-task-state (T) Відключити показ-блокованих завдань (W) дамп-ftrace-буфер (Z)

У всіх випадках, коли я натрапив на це, це не спрацювало, поміняючи клавіатуру, працював ідеально, і показав, що з налаштуваннями ядра нічого не було.


2
@geezanansa Я бачив, як клавіатура явно не може обробити певні 4-клавішні комбінації. Заміна її вирішила питання. Дійсно. Однак це може працювати для всіх ваших клавіатур. А якщо ви не розумієте нагород, то чому б вам не пояснити, чому ви цього не зробите?
gertvdijk

2
Зважаючи на те, що Джеймс підтверджує, що всі команди sysrq працюють за винятком B. Ця відповідь не є відповіддю на питання, яке я читав як Чому sysrq B не працює? Джеймс або багато інших щодо sysrq не є ключовою дошкою. -1
geezanansa

17

АТРИБУЦІЇ :
https://fedoraproject.org/wiki/QA/Sysrq#How_do_I_use_the_magic_SysRq_key, яка базувалася на оригінальній роботі "
Кредити"
Автор: Mydraal
Оновлено Адам Сулміцький
Оновлено Джеремі М. Долан 2001/01/28 10:15:59
Додано до Ратчер Даннаван

https://askubuntu.com/a/11194/102029 mneiss надав посилання для LaunchPad.

Зміст

Що таке sysrq?
Чому RESIUB (O) не працює?

1 Як змусити sysrq поводитись так, як я хочу?
1.1 Що таке магічний ключ SysRq?
1.2 Як увімкнути чарівну клавішу SysRq?
1.3 Як використовувати магічну клавішу SysRq?
1.4 Що таке "командні" клавіші?
1.5 Гаразд, для чого я можу їх використовувати?

1.6 Виправлення неполадок

1.6.1 Підвішування перед тим, як розпочати запуск
інциклітів 1.6.2 Іноді SysRq здається, що він "застряг" після його використання, що я можу зробити?
1.6.3 Я натиснув SysRq, але, здається, нічого не трапиться, що не так?
1.6.4 Я хочу додати ключові події SysRQ до модуля, як це працює?
1.6.5 Висновок
1.6.6 ДОДАТОК
Примітка.
Ви можете скористатись Ctrl+, Fщоб корисно використовувати зміст.

Що таке SysRq?

Загальновідомий і застосовуваний метод відновлення використання машини після її заморожування або блокування з обмеженням ризику пошкодження диска, що призводить до пошкодження або втрати даних системних файлів, - це використовувати
Alt+ SysRq+, rа потім sі потім, eі потім, iі потім, uі потім, bі / або за потреби ( o)

Це не спрацювало, як очікувалося для багатьох (тобто я та Джеймс) завдяки різним смакам від> = 8.04LTS до поточного релізу 13.04.

Чому RESIUB (O) не працює?

Розглянемо цей опис помилки, знайдений у LaunchPad Bug 194676 :

Опис проблеми:
За замовчуванням SysRq увімкнено за замовчуванням на настільних системах Ubuntu, що є безцінним, коли система заблокується, і ви хочете зупинити її якомога обережніше або налагоджувати проблему. Однак багато людей дивуються, що ви також можете попросити його скинути вміст поточної пам'яті на консоль (або dmesg), хоча тільки з клавіатури.
openSUSE встановлює біт-маску за замовчуванням 176 на своєму SysRq, що за замовчуванням обмежує синхронізацію, перезавантаження та "перезавантаження лише для читання". Це зупиняє людей, що використовують sysrq за замовчуванням, щоб перевірити пам'ять, яка звучить розумно.

Розробники Ubuntu побачили необхідність зробити щось з цього приводу, і найкращим рішенням, враховуючи можливі ускладнення згаданого спостереження, є застосування бітової маски 176 sysrq за замовчуванням, що створює необхідність у введенні користувача для встановлення sysrq за своїм бажанням. Bitmask 176 тільки дозволяє S, U, Bщо синхронізація, перемонтувати змонтовані розділи та перезавантаження.
Читаючи повний звіт про помилки та коментарі, виділяються деякі варіанти, які можуть бути застосовні до вашої системи.

Накопичувальний вплив різних апаратних засобів, ядер, клавіатур і бітмасок означає, що sysrq поводиться по-різному для різних людей.

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

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

Якщо sysrq працює для вас; можливо, варто запитати: "Якщо я не змінив налаштування 10-магічного sysrq; хто це зробив?"

1 Як змусити sysrq поводитись так, як я хочу?

Далі йде відредагована копія та вставка https://fedoraproject.org/wiki/QA/Sysrq .

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-тригер завжди дозволено (користувачем з правами адміністратора (див. Нижче)).

1.3 Як використовувати магічну клавішу SysRq?

Ubuntu Desktop

Ви натискаєте клавішу комбі Alt+ SysRq+ command key.

Примітка. Див. Примітки в цьому розділі та в розділі "Виправлення неполадок" для інших можливих налаштувань за замовчуванням для інших систем та клавіатур.

Можна встановити будь-який символ на ваш вибір: Усі архітектури

Напишіть символ на / proc / sysrq-тригер:

echo t > /proc/sysrq-trigger

встановив би Tсебе як SysRq
Note.
На деяких клавіатурах може не бути маркованих ключів SysRq. SysRqКлюч також відомий як Print Screenключ. Також деякі клавіатури не можуть обробляти стільки клавіш, які одночасно натискати, тож вам може бути більше удачі з Alt+ SysRq- SysRqтоді натисніть, command keyа потім відпустіть усе. Детальну інформацію про це див. У повному обсязі написання якості, на основі якого посібник заснований на 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 raw дуже зручно, коли ваш сервер X або програма svgalib виходить з ладу.

Sa k(ключ безпечного доступу) корисний, коли ви хочете бути впевненим, що на консолі не працює троянська програма, яка могла б захопити ваш пароль при спробі входу. Це знищить усі програми на даній консолі, тим самим дозволить вам переконатися, що підказка для входу, яку ви бачите, є насправді тією, що є з init, а не з якоюсь троянською програмою. Інші вважають це корисним як (System Key Key), що корисно, коли ви хочете вийти з програми, яка не дозволить вам перемикати консолі. (Наприклад, X або програма svgalib.)
Примітка.
У своїй справжній формі це не справжній SAK, як той, що відповідає системі c2, і він не повинен помилятися як такий.

Re boot добре, коли ви не можете закрити.
Примітка.
Загальноприйнятою вважається хороша практика uмонтуватися спочатку

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

Синхронізація чудова, коли ваша система заблокована, вона дозволяє sсинхронізувати ваші диски і, безумовно, зменшить шанс втрати даних і fscking.
Попередження
Синхронізація не відбулася, доки на екрані не з’являться "ОК" та "Готово". (Якщо ядро ​​справді перебуває у сутичці, ви, можливо, ніколи не отримаєте повідомлення ОК чи Готово.

Umount в основному корисний тими ж способами, що і Sync.

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

T erm і k ill корисні, якщо у вас є якийсь утікаючий процес, ви не можете вбити іншим способом, особливо якщо це нерест інших процесів.
Примітка.
Якщо у вас виникає паніка ядра, зробіть Alt+ Sysrq+, eпотім Alt+ Sysrq+, uпотім Alt+ Sysrq+ iі, нарешті, Alt+ Sysrq+b

1.6 Виправлення неполадок

1.6.1 Вішання перед запуском підписів

Якщо машина зависає до того, як Initscripts запуститься, завантажтеся sysrq_always_enabled=1

1.6.2 Іноді SysRq здається, що він "застряг" після його використання, що я можу зробити?

Дотик shift, altі controlпо обидва боки від клавіатури, і вражаючи неприпустиму послідовність SYSRQ знову буде вирішити цю проблему. (тобто щось на зразок alt+ sysrq+ z).

Переключення на іншу віртуальну консоль ( Ctrl+ Alt+ Fn1- Fn6), а потім знову 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 друкує довідку

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

Після створення sysrq_key_op ви можете викликати функцію ядра register_sysrq_key (ключ int, структура sysrq_key_op * op_p); це зареєструє операцію, на яку вказує 'op_p', при клавіші таблиці 'ключ', якщо цей слот у таблиці порожній. Під час розвантаження модуля необхідно викликати функцію undegister_sysrq_key (ключ int, struct sysrq_key_op * op_p), яка видалить ключ op, на який вказує 'op_p', з ключа 'key', якщо і лише якщо він наразі зареєстрований у цій виїмка. Це в тому випадку, якщо слот було перезаписано з моменту його реєстрації.

Система Magic SysRqпрацює, реєструючи ключові операції у таблиці пошуку операційного ключа, яка визначена у "драйверах / char / sysrq.c". Ця ключова таблиця має ряд операцій, зареєстрованих у ній під час компіляції, але є змінною, і для функцій інтерфейсу до неї експортуються 2 функції register_sysrq_key та undegister_sysrq_key. Звичайно, ніколи не залишайте недійсний покажчик у таблиці. тобто; коли ваш модуль, який викликав register_sysrq_key (), виходить, він повинен викликати undegister_sysrq_key (), щоб очистити запис таблиці ключових sysrq, який він використовував.
Примітка.
Нульові вказівники в таблиці завжди безпечні.

Якщо ви з якоїсь причини відчуваєте необхідність викликати функцію handle_sysrq з-за функції, яку викликає handle_sysrq, ви повинні знати, що ви перебуваєте в блокуванні (ви також перебуваєте в обробці переривань, а це означає, що не спите!), Так Ви повинні замість цього зателефонувати __handle_sysrq_nolock.

1.6.5 Висновок

Використовуйте Alt+ SysRq+, Sа потім Uі потім, Bщоб синхронізувати, спробуйте повторно встановити всі змонтовані файлові системи, а потім, якщо потрібно, перезавантажте. Без зміни речі на системні файли.
Якщо Alt+ SysRq+ Bне перезавантажує систему, можливо, доведеться відредагувати /etc/sysctl.d/10-magic-sysrq.conf, щоб дозволити спробу застосувати Alt+ SysRq+ B(або / та Oпісля редагування / proc / sys / kernel / sysrq бітова маска для ввімкнення перезавантаження та відключення системи за допомогою sysrq. Ви можете це зробити будь-яким із описаних вище способів.

1.6.6 ДОДАТОК: Дивіться також - 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 серпня 2013 року епізоду програми BBC "Клацніть" та статті "Кібервійни" дійсно привернула мою увагу. У програмі також є власний веб-сайт Клацніть, якщо ви не можете переглянути програму. FAWC


2
Зокрема, я щойно тестував Al + SysRq + REISUB на повністю оновленій системі Quantal i386, і вона працює чудово. Ви впевнені, що пов’язана помилка безпеки чи будь-яка частина обговорення безпеки у цій відповіді насправді пов’язана з проблемою? Якщо так, то чи достатньо поширена причина проблеми, що вона повинна з’явитися першою у цій відповіді?
Елія Каган

Проблема безпеки важлива, оскільки повний набір команд sysrq недоступний через те, що бітмаска 176 застосовується під час завантаження; як описано у звіті про помилку.
geezanansa

3

Я натрапив на це днями, і на це пішло кілька секунд. Можливо, я навіть двічі робив всю послідовність REISUB.

Також переконайтеся, що ви використовуєте клавішу sysrq (для більшості ноутбуків вам потрібно буде утримувати функцію, тому ви дійсно утримуєте відразу 4 клавіші)


Дякую за вашу відповідь Скотт. Мені дійсно доводиться утримувати функціональну клавішу (fn) разом з alt та sysrq. Як тільки я натискаю останню клавішу B, щоб закінчити послідовність REISUB, мій ноутбук, схоже, замикається після його відображення: Скидання. Після перегляду послідовності магічних клавіш знову нічого не робиться, і нічого не відображається на екрані після. Так виглядає, що система блокується під час перезавантаження.
Джеймс Уайт

3

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

(Крім того , мені потрібно , щоб увійти в звичку використовувати Alt+ SysRq+ E, в Iпершу чергу. Я не бачу особливого сенсу у використанні Alt+ SysRq+ R, так чому ж режим клавіатури має значення , якщо це буде перезавантажити і скинути його в будь-якому випадку?)


1
Чому режим клавіатури має значення, якщо він все одно перезавантажиться і скине його? Тому що це дає можливість зворотного вводу клавіатурі? що може означати, що вам не потрібно перезавантажувати або відключати живлення
geezanansa
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.