В репозиториях Debian/Ubuntu/Fedora/RHEL можно найти пакет kexec-tools, дающий возможность быстрой перезагрузки через обновление ядра в памяти, без задействования фазы с участием BIOS.Ставим kexec-tools в Debian/Ubuntu:
apt-get install kexec-tools
После установки пакета автоматически при перезагрузке будет использован вызов kexec. Чтобы отключить kexec необходимо в файле конфигурации /etc/default/kexec установить LOAD_KEXEC=false
В RHEL/Fedora установка производится аналогичным способом:yum install kexec-tools
Замена текущего ядра в ручном режиме.
Читаем ядро в память:
kexec -l /boot/vmlinuz --initrd=/boot/initrd.img --command-line="`cat /proc/cmdline`"Переводим управление на загруженное на прошлом этапе ядро:
kexec -e
URL:
Обсуждается: http://www.opennet.me/tips/info/2237.shtml
cat /proc/cmdline не надо делать. Он по умолчанию должен строчку от старого ядра взять.
Я ничего не понял. Объясните? Перезагружается е компьютер, а система? Ядро загружается в память второй раз и начинается процесс загрузки? Надеюсь, что хоть от root'а.
Мгновенная перезагрузка Linux при помощи Hard Reset
Загружается второе ядро и ему передается управление, старое выгружается. Получаем обновление ядра без остановки сервисов и перезагрузки - немного противоречит заголовку.
>Загружается второе ядро и ему передается управление, старое выгружается. Получаем обновление ядра
>без остановки сервисов и перезагрузки - немного противоречит заголовку.остановка сервисов происходит - не происходит сброс процессора, минуется стадия загрузчика и все что идет до нее от момента сброса процессора/включения питания при обычной перезагрузке/загрузке
> Получаем обновление ядра без остановки сервисов и перезагрузки - немного противоречит заголовку."Без остановки" - только в том смысле, что они не будут корректно завершены.
Но все "умрут", т. к. фактически заново начнется инициализация.А вообще, тут такие "откровения" через раз - как только "писатель" откроет для себя новую утилиту, параметр к ней, или прочтет по диагонали man xxx.
Если посмотреть произвольный текст про kexec (например,
http://www.ibm.com/developerworks/linux/library/l-kexec.html - нам больше и не надо), то видно, что kexec именно перезагружает систему. От hard reset он отличается только тем, что серверная материнка не получает возможности тормозить пять минут в BIOS.
А можно ли в Линуксе как-то сделать типа Reset, т.е. что бы никакие процессы не завершались, а комп просто сразу пошел на загрузку?
У меня несколько раз возникала ситуация, когда в системе зависал какой-то драйвер ввода-вывода и программы находились в состоянии D. Естественно, что ни о каком штатном завершении системы тут быть не может.
Alt+SysRq+B может поможет?
перед ним можно сделать Alt+SysRq+S, подождать 3-5 сек и Alt+SysRq+U
Удаленно это же можно сделать так:Например сделать sync всем файловым системам (с клавиатуры это Alt+SysRq+S)
echo S > /proc/sysrq-trigger
Побробности в исходниках ядра, в файле /usr/src/linux/Documentation/sysrq.txt
"It is left to you to kill all applications and unmount file systems before attempting a kexec reboot."Так что систему нужно подготовить к этому.
http:/openforum/vsluhforumID3/44511.html#3Война давно уже кончилась, а они поезда с s_ранеными_одними и теми же вопросами_ всё идут...
ну и как переходить по этой ссылке?
>ну и как переходить по этой ссылке?