Перезагрузите Ubuntu без полной аппаратной перезагрузки

Я хотел бы перезагрузить ОС, как если бы она была загружена из GRUB, но без перезагрузки всего компьютера. Это связано с тем, что на этом компьютере установлено несколько разных ОС, и хотя перезагрузка необходима, взаимодействие с человеком для выбора параметров загрузки не соответствует этому сценарию. Есть идеи? Я знаю, что вы можете перейти на различные уровни выполнения, но я не знаю (давайте назовем это) «неполной перезагрузки программного обеспечения».

2
задан 2 July 2013 в 18:19

1 ответ

Попробуйте команду kexec , она, кажется, делает именно то, что вам нужно.

kexec -l kernel-image --append=command-line-options --initrd=initrd-image

из kexec manpage:

kexec - это системный вызов, который позволяет загружать и загружать другое ядро ​​из запущенного в данный момент ядра. kexec выполняет функцию загрузчика из ядра. Основное различие между стандартной загрузкой системы и загрузкой kexec заключается в том, что аппаратная инициализация , обычно выполняемая BIOS или встроенным программным обеспечением (в зависимости от архитектуры) , не выполняется во время загрузки kexec . Это приводит к сокращению времени, необходимого для перезагрузки.
...
Вставьте параметры командной строки, которые должны быть переданы новому ядру, в command-line-options. Передача точного содержимого /proc/cmdline в command-line-options - самый безопасный способ гарантировать, что правильные значения передаются ядру перезагрузки.

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

0
ответ дан 2 July 2013 в 18:19

Другие вопросы по тегам:

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