Rebooting Волшебный путь

от автора

Если вы когда-либо имели жесткий диск сбой на удаленном сервере, вы можете вспомнить ощущение, что вы были после попытки выполнить следующие команды:

    # перезагружать
    удар: /SBIN / перезагрузка: Ошибка ввода / вывода
    # выключение -r Теперь
    удар: /SBIN / выключение: Ошибка ввода / вывода

очевидно, есть проблема с приводом. Эти команды терпят неудачу, потому что ядро ​​не может загрузить /sbin/reboot а также /sbin/shutdown двоичные файлы с диска, так что он может выполнять их.

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

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

The «ключ магия SysRq» предоставляет способ для отправки команд непосредственно к ядру через / Proc файловая система. Он включается с помощью опции времени компиляции ядра, CONFIG_MAGIC_SYSRQ, который, как представляется, является стандартной в большинстве дистрибутивов. Сначала вы должны активировать магические опции SysRq:

эхо 1 > / Труды / SYS / ядро ​​/ SysRq

Когда вы будете готовы перезагрузить машину просто выполнить следующую:

эхо б> / Труды / SysRq-триггера

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

В дополнение к Перезагрузка системы SYSRQ трюк может быть использован для дамп памяти на консоль, синхронизировать все файловые системы, перемонтировать все файловые системы, в-только для чтения режима, отправить SIGTERM или SIGKILL всем процессам, кроме инициализации, или выключения питания машины полностью, между прочим.

Также, вместо того, чтобы вторя в /proc/sys/kernel/sysrq каждый раз, когда вы можете активировать магический ключ SysRq во время загрузки системы с помощью SYSCTL, где поддерживается:

эхо "kernel.sysrq = 1" >> /etc/sysctl.conf

Если вы хотели бы узнать больше о волшебном SysRq вы можете прочитать sysrq.txt файл в документации к ядру.