LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 1003|回复: 6

debian 内核编译问题

[复制链接]
发表于 2007-7-25 16:54:37 | 显示全部楼层 |阅读模式
今天尝试编译了一次内核,版本是2.6.18.3
deb文件已经生成并安装了新的内核,但在
创建Ramdisk时,执行
mkinitrd.yaird -o /boot/initrd.img-2.6.18.3  2.6.18.3时,
出现unknown kernel version的致命错误,不知道是为什么,
请高手出招。谢谢
发表于 2007-7-25 23:16:18 | 显示全部楼层
内核有没有 ramdisk 支持?

PS:个人认为 initrd 总是问题多多,还是把必要的文件系统支持编入内核,把 initrd 省掉为上策
回复 支持 反对

使用道具 举报

发表于 2007-7-26 01:14:38 | 显示全部楼层
Post by d00m3d
内核有没有 ramdisk 支持?

PS:个人认为 initrd 总是问题多多,还是把必要的文件系统支持编入内核,把 initrd 省掉为上策

请问,你指的是在编译内核时的make-kpkg的参数中去掉--initrd,是么?
回复 支持 反对

使用道具 举报

发表于 2007-7-26 08:04:26 | 显示全部楼层
俺从来不用 --initrd 参数
回复 支持 反对

使用道具 举报

发表于 2007-7-26 22:48:41 | 显示全部楼层
Post by d00m3d
俺从来不用 --initrd 参数

能具体解释一下--initrd参数的作用么?网上好多资料关于debian内核的编译都建议添加--initrd参数
回复 支持 反对

使用道具 举报

发表于 2007-7-27 06:21:36 | 显示全部楼层
就是通知系统去调用制作 initrd 的工具,比如 mkinitramfs、mkinitrd、yaird 之类去制作 initrd

我在置顶帖曾经解释过,Debian 之所以编译都建议添加 --initrd 参数,主要原因是 Debian 的内核维护者都有洁癖,他们希望内核是"干净"的,於是所有的驱动(包括 ext2 或其他文件系统的支援)被编译成模块,而非编入内核,结果得出来的内核如无 initrd 协助引导的话是无法启动的!

这正是一众兄弟们初次在编译内核时出问题的因,因为很多时候他们不知道如何制作 initrd 而无法引导。更可悲的是 Debian 制作 initrd 的脚本不一,旧版(尤其是 Sarge 年代) initrd-tools 提供的 mkinitrd 脚本是依赖 devfs 的,而 devfs 在 2.6.13 後的内核已被废止,如不知道更新又会出问题,有关遇到这方面的问题帖子多不胜数!

initrd 在 Linux 的世界并非必要的,只要内核编入必要的支持便能启动,早期使用移动硬盘来启动时曾经需要借助它来提供延时,但 2.6.11 内核以後提供了 rootdelay 参数来延时,initrd 从此变成废物,我个人认为无需多此一举,省却麻烦。

Clear?
回复 支持 反对

使用道具 举报

发表于 2007-7-30 20:24:01 | 显示全部楼层
ls /lib/modules
看看安装的内核是什么,然后用那个内核版本来生成指定的initrd
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表