+ -
当前位置:首页 → 问答吧 → debian 内核编译问题

debian 内核编译问题

时间:2007-07-25

来源:互联网

今天尝试编译了一次内核,版本是2.6.18.3
deb文件已经生成并安装了新的内核,但在
创建Ramdisk时,执行
mkinitrd.yaird -o /boot/initrd.img-2.6.18.3 2.6.18.3时,
出现unknown kernel version的致命错误,不知道是为什么,
请高手出招。谢谢

作者: utada   发布时间: 2007-07-25

内核有没有 ramdisk 支持?

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

作者: d00m3d   发布时间: 2007-07-26

引用:
作者: d00m3d
内核有没有 ramdisk 支持?

PS:个人认为 initrd 总是问题多多,还是把必要的文件系统支持编入内核,把 initrd 省掉为上策
请问,你指的是在编译内核时的make-kpkg的参数中去掉--initrd,是么?

作者: yunlinux   发布时间: 2007-07-26

俺从来不用 --initrd 参数

作者: d00m3d   发布时间: 2007-07-26

引用:
作者: d00m3d
俺从来不用 --initrd 参数
能具体解释一下--initrd参数的作用么?网上好多资料关于debian内核的编译都建议添加--initrd参数

作者: yunlinux   发布时间: 2007-07-27

就是通知系统去调用制作 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?

作者: d00m3d   发布时间: 2007-07-27

ls /lib/modules
看看安装的内核是什么,然后用那个内核版本来生成指定的initrd

作者: springwind426   发布时间: 2007-07-31

热门下载

更多