linux升级内核mkinitrd问题

来源:百度知道 编辑:UC知道 时间:2024/06/25 08:45:45
小弟在学习升级内核,在虚拟机下安装了redhat9.0 内核版本为2.4.20-8 想把它升级为2.6.15.5 按照资料上的提示先升级了一些工具 步骤为
make oldconfig
make
make modules
make modules_install
下一步我不清楚该如何做了,不知道如何产生initrd-2.6.15.5.image这个文件,有的说是用mkinitrd 但我在什么目录下使用该命令?又在哪里生成?生成的文件对应的是哪个内核啊?希望有大侠帮忙指点一下,谢谢
/boot/grub/下面的启动项配置文件中出现的initrd-2.6.15.5.image是什么作用啊?没有也可以吗?
再补充一下,mkinitrd是如何使用的,在终端下运行该命令生成的文件对应的是哪个内核的?当前内核还是正在编译的内核? 十分谢谢jiangtao9999

生成当前的就有问题了,我要生成和编译的版本相对应的啊? 难道各个版本的这个文件没区别?

make install 即可。
安装程序会自动复制 config vmlinuz 和 system 到 /boot 里面。
不过你还需要自己设置 /boot/grub/menu.lst ,增加新的内核启动。

至于 initrd ,着要看你的系统干什么了。一般是用 mkinitrd 生成。
不过自己编译的定制内核应该不需要这个东西的。这个东西不是必备物资。
--------------------------------------
initrd-2.6.15.5.image 就是mkinitrd 生成的东西,这东西是 linux 启动时首先启动进入一个内存中的磁盘系统,很多系统为了兼容性而进入这个由 grub 启动内核是同时载入的镜像文件里面放上驱动和其他支持程序来优先启动这个盘。因为是 grub 载入内存的,所以他不需要驱动就能保证 linux 可以正常启动。这个文件里面的系统会初始化一些环境之后继续启动到硬盘。

一般个人自己编译的内核,如果内核配置正确,不需要这个文件。
当然一些附加的效果需要这个文件的协助,比如 splash ,以及高级功能,比如网络启动什么的。
-------------------------
印象里 mkinitrd 可以指定内核版本,不指定就是当前。

从redhat 9.0升级到2.6内核会遇到很多问题导致系统不稳定--redhat专门做过优化的。
你查一下makefile里面的目标,看看image的依赖项目有哪些,好像就是make image吧?