+ -
当前位置:首页 → 问答吧 → 启动新内核可以没有initrd文件吗?

启动新内核可以没有initrd文件吗?

时间:2008-11-04

来源:互联网

我clfs好的内核就是没法起来,总是报什么kernel panic: VFS 找不到sdb1. 听说是内核选项问题,后来我索性用了宿主的选项,结果还是不行.又看到有人说是没有initrd的原因,这个文件到底是不是必须的啊?

作者: timidwolf   发布时间: 2008-11-04

initrd 不是必须的,不过你的错误确实是有点关系。主要是你的kernel里面没有编译进去根文件系统所在设备的驱动。你的sdb1提示你需要编译进去sata的驱动。不要 编译成模块。这样就不需要initrd了。如果编译成模块,需要一个initrd包含这个模块。

作者: JianLee   发布时间: 2008-11-04

引用:
作者: JianLee
initrd 不是必须的,不过你的错误确实是有点关系。主要是你的kernel里面没有编译进去根文件系统所在设备的驱动。你的sdb1提示你需要编译进去sata的驱动。不要 编译成模块。这样就不需要initrd了。如果编译成模块,需要一个initrd包含这个模块。
我的理解是,有两种方法:1)把驱动编进内核,不要编成驱动。2)创建一个initrd文件。对吗?

怎么产生initrd文件呢?

作者: timidwolf   发布时间: 2008-11-04

内核编译的时候要把相关文件系统选项选上,把sata硬盘的相关选项选上,不要M

作者: hritian   发布时间: 2008-11-04

引用:
作者: timidwolf
我的理解是,有两种方法:1)把驱动编进内核,不要编成驱动。2)创建一个initrd文件。对吗?

怎么产生initrd文件呢?
把驱动编进内核,不要编成驱动
这句话好有趣~

mkinitrd/mkinitramfs/cpio。。。。

作者: simdiak   发布时间: 2008-11-04

打错了,不好意思,不过大家好像都看懂了,呵呵呵...

作者: timidwolf   发布时间: 2008-11-04

initrd 五花八门,不同发行版用不同脚本来制作,说得好听的是自由,说得不好听就是没有标准,乱七八糟,吾恶之!

说回正题,LFS 手册没有教你做这玩意吧,答案应该自行领误了。

作者: d00m3d   发布时间: 2008-11-04

引用:
作者: timidwolf
我clfs好的内核就是没法起来,总是报什么kernel panic: VFS 找不到sdb1. 听说是内核选项问题,后来我索性用了宿主的选项,结果还是不行.又看到有人说是没有initrd的原因,这个文件到底是不是必须的啊?
我也卡在initrd上了,initrd是是怎么做的?
我是dd出一个文件块,在mount -o loop 上,再往里面塞很多东西,最后gzip一下,搞定的,不过还没跑起来。。。。

好像有多个程序可以生成initrd,如mkinitrd, mkramfs(这个不确定),gentoo下好像也有个专门命令的
但是我都没有成功,郁闷啊

作者: think365   发布时间: 2008-11-05

这类脚本多不胜数,mkinitrd,mkinitramfs,yaird,还有 Arch 的叫什麽记不到了。。。

LFS/CLFS 都不用的,干嘛老想做这玩意?

作者: d00m3d   发布时间: 2008-11-06