Загрузиться напрямую в другое ядро ​​из работающего Linux без загрузчика

Если скрипт запускается с bash -x, то он запускается и без него, так как единственное, что делает bash -x <file>, — это запуск скрипта в режиме отладки с отслеживанием каждой выполняемой команды.

7
06.10.2019, 10:00
2 ответа

относительно «как при выключении»:

это только почти как при выключении :все процессы в том числе и pid 1затираются, естественно, так как даже ядро ​​затирается и перезагружается. Но некоторые прошивки (переменные EFI )могут зависать, потому что kexec не является полной перезагрузкой.

Если вы не (компилируете и )тестируете одно ядро ​​за другим, использование kexec ограничено. Это "экспериментальный".

Но попробовать неплохо :это «между» перезагрузкой и изменением уровня запуска (что бы это ни значило во времена systemd или, фактически, всегда, в linux ). После нескольких успешных попыток он разбился, так что я оставил его. (Но ничего не произошло.)

Я только что прочитал последний комментарий:

The idea was to at least unmount existing file systems etc.

Но это та же проблема, что и с ctrl -alt -del, особенно без systemd. Извините за скептицизм, но процесс выключения с помощью sysvinit действительно немного сложен уже (с systemd также ).Несколько парадоксальным мне кажется "управляемое отключение" вместе с kexec (или ctrl -alt -del ).

Я всегда делаю "и т.д." прежде чем я «выдерну вилку» из моей системы :закройте/сохраните файлы, закройте firefox, проверьте монтирование tmpfs, размонтируйте разделы... и затем :reboot, poweroff, halt, shutdown, init 6,init 0, ctrl -alt -del или даже кнопку ON/OFF в течение пяти секунд... Я не хочу, чтобы kexec был еще одним источником потенциальных проблем.


добавлено через несколько дней:

На самом деле systemd интегрирует kexec(man systemctl). Я сожалею, что назвал эту идею «немного парадоксальной», но поддерживаю мою точку зрения :, почему бы не выбрать (или вручную не ввести )эту командную строку ядра несколькими секундами позже в командной строке загрузчика после обычной перезагрузки?

2
27.01.2020, 20:16

Вы можете использовать efibootmgr, чтобы проверить номер загрузочной записи, BootNext (, который обычно содержит 4 цифры ), и запустить следующую команду:

# efibootmgr --bootnext BootNext

От EFIBOOTMGR (8):

• BootNext - the boot entry which is scheduled to be run on next boot. This supercedes BootOrder for one boot only, and is deleted by the boot manager after first use. This allows you to change the next boot behavior without changing BootOrder.

0
27.01.2020, 20:16

Теги

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