Что делать, если Линукс завис

Материал из Linux.Uz Wiki

Перейти к: навигация, поиск
Fatall error!

Предлагаю сразу определиться — под «зависанием» понимается то состояние компьютера, когда он не откликается на действия пользователя. Такие случае в линуксе бывают редко и бывают в основном из-за следующих причин:

  • Кривые проприетарные драйвера или приложения. Старайтесь использовать при возможности только OpenSource.
  • Проблемы с железом.
  • Нестабильные версии программ.
  • Извращенные действия пользователей

Многие, в таких обстоятельствах, просто жмут кнопку reset. Подход немного неправильный. Хоть и теперь у всех используются журналируемые ФС [1], все равно данные могут не успеть записаться и что-то может повредиться. Есть более разумный способ — Magic System Request Key.

Клавиша SysRq на клавиатуре предназначалась изначально не для скриншотов (сейчас она на большинстве клавах и называется PrintScreen). В линуксе она служит для прямой связи с ядром. То есть, если повисли иксы до такой степени, что не работает Ctrl+Alt+Backspace, иными словами, до такой степени, что комп не реагирует на клавиатуру, линукс все равно будет перехватывать клавишу SysRq, если конечно само ядро не ушло в панику. Так вот, чтобы комп «отвиснул», надо послать ядру такие сочетания клавиш поочередно:

  • Alt+SysRq+R (Чтобы возвратить управление клавиатуре. После этой команды можно попробовать нажать Ctrl+Alt+F1 и попасть в консоль, а там уже залогиниться и выполнить sudo reboot или другие команды для исправления ситуации. Если это не поможет, тогда вводим комбинации дальше.)
  • Alt+SysRq+E (Посылается сигнал завершения всем процессам. Так сказать, попытка завершить проги «по-хорошему». Если зависшая прога отреагирует на него, тогда все данные из этой проги точно сохраняться.)
  • Alt+SysRq+I (Убиваем все процессы, которые не захотели завершиться по-хорошему.)
  • Alt+SysRq+S (Синхронизация жесткого диска, то есть записывание кэша из памяти на жесткий диск, чтобы не потерять данные.)
  • Alt+SysRq+U (Перемонтируем все разделы в режим «только чтение», чтобы еще лучше обезопаситься от потери данных.)
  • Alt+SysRq+B (Собственно, сам ребут. Аналог ресета.)

Нажимать это все желательно с небольшими паузами. Ну или можно подсмотреть в вывод консоли по dmesg, если первые команнды помогли завершить зависшие приложения.

Более подробно на тему SysRq Magic Key можно почитать в документации к самому ядру (Documentation/sysrq.txt). Ну и еще пару ссылок:

Примечания

  1. Файловая система — описание в Википедий