LinuxSir.cn,穿越时空的Linuxsir!

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

完全基于initramfs的LFS系统

[复制链接]
发表于 2008-11-9 05:54:24 | 显示全部楼层 |阅读模式
目前正在研究把整个LFS系统打包成initramfs的办法。在GRUB4DOS讨论区已经有人成功把定制的Ubuntu打包成initramfs。

这样的内核完全不需要内建任何文件系统或者磁盘驱动(那些都可以编译为模块),大大精简内核大小。同时,系统可以在各种各样的媒质上运行,包括U盘,PXE等等。因为它最大限度减少了对硬件的依赖(唯一的依赖,也就是——内存),所以这样的启动系统应该是非常有用的。

参考现有发行版的unionfs等技术,可以把根文件系统合并到一个读写文件系统上,这样就可以保存数据了。但是如何在LFS上实现这一点还有待研究。
发表于 2008-11-9 12:03:39 | 显示全部楼层
initramfs只是一个内核启动之前的过渡吧,不需内建文件系统,是指使用内存文件系统吧?
你是想只使用initrd来启动系统,而不使用kernel吗?
我也在做这个尝试,呵呵
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-11-9 16:12:54 | 显示全部楼层
Post by think365;1906137
initramfs只是一个内核启动之前的过渡吧,不需内建文件系统,是指使用内存文件系统吧?
你是想只使用initrd来启动系统,而不使用kernel吗?
我也在做这个尝试,呵呵

不用kernel???这可能吗?而且initramfs和kernel的关系应该是:
*bootloader加载kernel和initramfs
*kernel读取initramfs并处理为文件系统
*kernel寻找initramfs里面的init文件并执行
*initramfs里面的init负责找到并挂载真正的根文件系统,并执行真正的init
*真正的init完成系统初始化并最终可以交给用户使用
回复 支持 反对

使用道具 举报

发表于 2008-11-10 14:42:11 | 显示全部楼层
这为老兄,我也正在研究这个问题
但是我想问问,你是想把整个LFS都放到initramfs里面???不太现实吧?
应该是initramfs放些启动的别要东西,把根文件系统用squashfs文件打包格式打包放在磁盘上,启动后挂载,然后利用unionfs等技术吧??
请问老兄,这个LFS你想放些什么东西??限制多大了?
现在你准备做这个东西,有什么可行方案不?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-11-10 17:13:32 | 显示全部楼层
Post by prettydream;1906644
这为老兄,我也正在研究这个问题
但是我想问问,你是想把整个LFS都放到initramfs里面???不太现实吧?
应该是initramfs放些启动的别要东西,把根文件系统用squashfs文件打包格式打包放在磁盘上,启动后挂载,然后利用unionfs等技术吧??
请问老兄,这个LFS你想放些什么东西??限制多大了?
现在你准备做这个东西,有什么可行方案不?


有人尝试过搞一个100M的initramfs,成功了。我估计,要是精简一下,不是没有可能。

打算让它启动后能够在上面完成LFS,就算功德圆满。我想这些功能都不需要另外的根文件系统。

至于unionfs/aufs,我有一个想法是用它做包管理器。也就是说,每个软件包都被制作成squashfs,然后在启动的时候用aufs一个一个加载到根上,于是最终得到一个完整系统。当不需要某个软件包时,简单地不予加载,就相当于卸载了。这样的系统就非常灵活,伸缩性、可定制性可以非常强。但是我现在对aufs/squashfs经验还不多,不知道这个方案的可行性如何。
回复 支持 反对

使用道具 举报

发表于 2008-11-10 22:22:08 | 显示全部楼层
Post by 地球发动机;1906712
有人尝试过搞一个100M的initramfs,成功了。我估计,要是精简一下,不是没有可能。

打算让它启动后能够在上面完成LFS,就算功德圆满。我想这些功能都不需要另外的根文件系统。

至于unionfs/aufs,我有一个想法是用它做包管理器。也就是说,每个软件包都被制作成squashfs,然后在启动的时候用aufs一个一个加载到根上,于是最终得到一个完整系统。当不需要某个软件包时,简单地不予加载,就相当于卸载了。这样的系统就非常灵活,伸缩性、可定制性可以非常强。但是我现在对aufs/squashfs经验还不多,不知道这个方案的可行性如何。

做这么大initramfs干嘛?
把glib,libc都打包进去了?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-11-11 06:53:40 | 显示全部楼层
Post by think365;1906901
做这么大initramfs干嘛?
把glib,libc都打包进去了?


作用1:能够从网络直接启动整个系统,而无须借助NFS/Samba
作用2:内核不再需要编译任何文件系统/磁盘驱动模块,也能正常启动。因为initramfs的加载不需要这些。
回复 支持 反对

使用道具 举报

发表于 2008-11-13 09:27:47 | 显示全部楼层
只要内存够大,设置合适的内核参数,这个很简单的。
完全基于 initramfs 有点过分浪费。
Post by 地球发动机;1906972
作用1:能够从网络直接启动整个系统,而无须借助NFS/Samba
想法不错,但感觉不实用,能给个实际应用的范例否?
回复 支持 反对

使用道具 举报

发表于 2009-3-19 20:28:49 | 显示全部楼层
Post by 聚焦深空;1907849
只要内存够大,设置合适的内核参数,这个很简单的。
完全基于 initramfs 有点过分浪费。
想法不错,但感觉不实用,能给个实际应用的范例否?

dsl有个版本是完全放在initrd的,initramfs实现是肯定没问题,不过感觉这样很混乱
从网络启动的话,slax应该说是实现了的
回复 支持 反对

使用道具 举报

发表于 2009-3-23 16:16:46 | 显示全部楼层
当然可以,但那不是标准做法
回复 支持 反对

使用道具 举报

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

本版积分规则

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