LinuxSir.cn,穿越时空的Linuxsir!

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

旧话重提, initramfs/initrd 的创建。。

[复制链接]
发表于 2007-4-18 08:05:51 | 显示全部楼层 |阅读模式
看了那么久,几个常用的是:

mkinitrd
通用,但是功能很垃圾。。。。。。

yaird
很久似乎没开发了,bug似乎不少。我倒腾了半天没弄出来。还不好删除。NND。

mkinitcpio
似乎是 arch linux 专有的,很好用,我最喜欢的。但是我不知道如何放到其他发行版,很郁闷。弄了半天也弄不过去。

genkernel
自然是 gentoo 自带的,功能似乎很强大,但是我没用上,每次都失败。很郁闷。

唉。。。。郁闷。。。。到头来一个也没用上,郁闷。想自己开发一个。。TNND。。。谁支持?哈哈。。
发表于 2007-4-18 09:36:47 | 显示全部楼层
livecd上的initramfs呢,有研究没,搞的我一头雾水
回复 支持 反对

使用道具 举报

发表于 2007-4-18 22:39:16 | 显示全部楼层
其实标准的这玩意儿就一个目的:把根找到。我正在做个通用的呢。
那几个我都用过,mkinitrd也没有太垃圾。yaird是不太好。arch还不错。
对于LFS直接把驱动编内核里好了。
回复 支持 反对

使用道具 举报

发表于 2007-4-18 23:43:36 | 显示全部楼层
我自己做
回复 支持 反对

使用道具 举报

发表于 2007-4-19 00:29:51 | 显示全部楼层
Post by youbest
我自己做

强人:2cool
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-4-19 00:57:50 | 显示全部楼层
Post by kangkang
其实标准的这玩意儿就一个目的:把根找到。我正在做个通用的呢。
那几个我都用过,mkinitrd也没有太垃圾。yaird是不太好。arch还不错。
对于LFS直接把驱动编内核里好了。
Post by youbest
我自己做


不知道两位兄弟有没有兴趣交流一下,一定有不少心得的。也让我们这些菜鸟开开眼界的说。嘿嘿。

通用的要达到几个目的,我觉得如果可以把 arch 的那个简化一下,通用一点,再加点别的功能,一定很不错的。兄弟认为呢?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-4-19 02:37:08 | 显示全部楼层
我想到的功能需求:

1。模块选择。
创建 initrd 的时候可以自动检测需要的模块,并且加入到 initrd 里边。当然,内核没包括的模块就没办法了。
另外一个简单的方法就是把全部模块都包括进去(fallback),不用选择。当然,声卡等就和启动无关的就不需要了。

和启动有关的模块:(欢迎补充)
 驱动:SCSI  PATA  SATA  USB  1394
 网络:网卡  协议等
 外设:USB设备

2。随意添加文件。
自己想扔什么文件进去都可以,不过处理起来复杂一点而已。

3。LVM RAID 等
说简单就简单,说复杂也复杂。好好设计一下就出来了。

4。内核版本指定
能处理指定版本的内核,必须的功能。:)。
打算只支持 2.6 系列。

5。打包简单一点就好了。
用起来方便点,这个没什么可说的,不过必须要能用,不然什么都没意义了。

6。rescue 模式。
不知道能否做到,就是比如找不到root就停下来,让用户介入,而不是直接pacnic。

7。智能检测 root fstype。
见鬼的,ARCH 经常不能 mount root,还要自己指定,实在太弱智了!
至少支持常用的 extX/reiserfs/xfs/jfs 等等。

8。root 目录的指定。
恩,这个我很喜欢,不过没有任何initrd支持。AFAIK。
好处就是在一个分区里边可以放多个发行版了。用目录分开即可。

其他的想到再补充。

名字打算叫个 fird 算了, Flexible InitRD (也可以认为是 fantasy initrd,嘿嘿。)至少似乎没有软件和这个重名的说。

(按照 d00m3d 的观点,我又要 reinvent wheels 了,不过希望这次是 if you have to, at least invent a better one。)
回复 支持 反对

使用道具 举报

发表于 2007-4-19 09:42:21 | 显示全部楼层
1.这点可以做到,一般的initrd制作工具都或多或少有这个功能
还有文件系统的模块很必要。
2.这个不太难,让制作程序在中间停一下就好了,或者弄个目录,自己想要的文件放里面,打包的时候放进去
3.实现倒是不难,意义不是太大,一般的initrd都有这功能,我在做的反倒是去掉了这功能
4.嗯,这个功能必要
5.也是必要的
6.一般的initrd应该支持吧,我正做的是支持
7.arch那个生成的initrd有时候是很ft,这个也是没有问题的
8.这个想法很赞,做做做~~ 哪样实现比较好呢?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-4-19 09:58:32 | 显示全部楼层
kangkang,,你是 kanger?是看到你的签名才知道你的。:)。我是 黄金海岸。

不知道你已经做出来的是东西是什么语言写的?方便共享么?

3。这个功能还是很有用的,毕竟用RAID 的人也许还是有的,LVM 也随之而来,反正就几行字,很简单的啦。:)。
8。 这个实现不容易,简单的 pivot_root 不可行,因为 fstab 写不了。具体想法还没成形,要再考虑考虑才行。
回复 支持 反对

使用道具 举报

发表于 2007-4-19 10:30:02 | 显示全部楼层
呵呵,是啊. 你换ID了哈
我现在在实现基本功能,还没有做完,在svn里有,http://dev.inlsd.org/projects/in ... shell的工作。
制作的程序应该不是shell就是python的。

3.嗯,以后加上,LVM反倒是简单些,RAID的阵列麻烦点。
8.如果想快速实现,可以用unionfs/aufs先用着,有好的想法再改也行。
回复 支持 反对

使用道具 举报

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

本版积分规则

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