在学习LKMP的时候,需要修改内核代码,编译完后为了避免浪费太多的时间在重启机器上,于是我想到了kexec。不过,这还是我第一次使用这个命令,很多地方都还不是太清楚。不过还好,最后总算弄出来了,下面做个简单的记录:
OS: Ubuntu 10.04
1.首先需要安装kexec-tools包:
$ sudo apt-get install kexec-tools
2.编译内核源码:
我使用的是2.6.35.4
# make mrproper
# make menuconfig // 直接退出即可,这里会生成默认的.config文件,kexec要求CONFIG_KEXEC=y,不过默认的内核以及帮我们配置好了。
# make
# make modules_install install
3.编译好后,利用mkinitramfs命令生成initrd.img
# mkinitramfs 2.6.35.4 -o /boot/initrd-2.6.35.4.img
4.使用kexec装载新的内核,并执行
# kexec -l /boot/vmlinuz-2.6.35.4 \
--initrd=/boot/initrd-2.6.35.4.img \
--append="root=/dev/sda1 init 3"
# kexec -e
之前没有自己生成initrd,直接使用-l和--append参数,试了好多次,一执行就会死在那里,后面使用了--initrd指定了自己新生成的img文件才成功。
注:-p选项一直还不知道怎么使用。。。还有kdump,有时间再去研究下。。
阅读(2159) | 评论(0) | 转发(0) |