Chinaunix首页 | 论坛 | 博客
  • 博客访问: 2006875
  • 博文数量: 369
  • 博客积分: 10093
  • 博客等级: 上将
  • 技术积分: 4271
  • 用 户 组: 普通用户
  • 注册时间: 2005-03-21 00:59
文章分类

全部博文(369)

文章存档

2013年(1)

2011年(2)

2010年(10)

2009年(16)

2008年(33)

2007年(146)

2006年(160)

2005年(1)

分类: LINUX

2006-05-14 12:43:32

在大二的时候曾经天真的想过是否可以更换内核而不重启操作系统,也就是说不杀掉现有的各种服务,偷偷地把操作系统内核换掉。偶然间在2.6.16内核中发现了kexec这个系统调用,原以为是自己想要的,看了些文档之后发现,这个系统调用只是能够达到重启操作系统或者是更换内核,不用回到BIOS自检和BootLoader的那个阶段,重启后直接进行内核的初始化和服务的初始化,不过这也是够激动人心的,毕竟还是节省了好多时间。
Gentoo系统中用kexec快速重启操作系统的操作步骤如下:
  1. 编译内核,选中Processor type and features中的kexec system call选项。
  2. 安装用户空间软件kexec-tools,直接用命令emerge kexec-tools就行了。
  3. 编辑/etc/conf.d/kexec,一般只需要设定KNAME="vmlinuz",INITRD="/boot/fbsplash-emergence-1024x768"。
  4. 用命令rc-update add kexec boot将kexec加入boot运行级。并启动此服务 /etc/init.d/kexec start
  5. 重启操作系统,是不是没有看到计算机自检的界面呢?是不是速度开了好多呢?
如果更换了新的内核一般需要手动重启kexec服务(/etc/init.d/kexec restart),然后重启就行了。如果不想用kexec重启操作系统,比如说想重启进入windows操作系统,因为目前kexec还不支持重启其它非Linux内核(我想重启windows内核,最终也不会被支持的),所以只能进行“真实”的重启,用kexec -u取消kexec,再重启你将进行真实的重启。
参考资料:
eboot Linux faster using kexec
阅读(3181) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~