linux的kexec功能

发布日期:分类:Linux & homelab linux的kexec功能无评论
注意:本文最后更新于 7年 前。

首先声明,kexec并不是什么传说中的“内核热切换”,它仅仅相当于不经过硬件和启动引导器的重启。

 这是正常的重启:
   init系统停止服务等->内核退出并向硬件发送重启信号->硬件关闭和启动->启动引导器(如GRUB)->内核初始化->init系统启动服务等
 这是kexec的重启:
   init系统停止服务等->内核推出并直接启动新的内核->init系统启动服务等

从直观上看区别就是,用了kexec后重启变块了,而且不会出现bios界面了。
kexec分为2个部分,一般在内核里的部分都是默认就有的,所以我们安装用户空间上的kexec程序即可
在Debian系发行版上安装kexec的用户空间部分(来跟我一起念:Debian大法好 [滑稽])

sudo apt-get install kexec-tools

安装时会问你,是否对reboot命令使用kexec,这里我们选是,这样以后用reboot命令重启就是用kexec的了

然后执行sudo reboot即可看到效果
如果你想手动用kexec命令来重启,这样:

kexec -l <kernel-image> --append="<command-line-options>"
kexec -e

<kernel-image>是内核镜像的地址,<command-line-options>是内核参数,缺一不可,内核参数可以通过cat /proc/cmdline查看

第一行只是设置,第二行才是真正的去重启。

作者:WuSiYu

学生,Web开发者,智能硬件&IOT爱好者

发表评论

您的电子邮箱地址不会被公开。