Chinaunix首页 | 论坛 | 博客
  • 博客访问: 68179
  • 博文数量: 15
  • 博客积分: 602
  • 博客等级:
  • 技术积分: 172
  • 用 户 组: 普通用户
  • 注册时间: 2009-09-07 13:35
文章分类

全部博文(15)

文章存档

2011年(8)

2010年(2)

2009年(5)

分类: LINUX

2011-05-17 16:32:56

在学习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,有时间再去研究下。。
阅读(2081) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~