0Zzz 发表于 2007-1-23 17:58:41

关于BOoRFGOnZ的liveCD发表一下拙见

大家好,我是新人,关于liveCD发表一下拙见,希望不要拍砖:
0、尽量不要使用新技术aufs等,还是目前稳定成熟的技术可靠啊,哈哈。
1、关于initrd最好能用CPIO格式的。
毕竟CPIO没有大小的限制,再说现在流行CPIO嘛,也是趋势啊。好像目前是ext2的,中标的那个就是Ext2的,不知道能不能在新的magiclive里更新。
2、关于引导界面最好能用Grub。
毕竟功能强大,还能用图和中文(多用几个生僻字,让老外看不懂)。
3、关于initrd/linuxrc最好能使用nash
目前initrd好像都用nash吧,毕竟nash不需要完整的系统环境,而且非常小,可以节省空间,但是也又不足(不足后面说吧)。
4、关于initrd/linuxrc(重点说说,提点建议啊)。
1)要是使用CPIO和nash配合使用的话,最好改成init,呵呵,地球人都知道。
最好使用root=/dev/XXX,原先的linuxrc中的“echo 0x100 > /proc/sys/kernel/real-root-dev”好像属于历史遗留问题(个人认为是核心的bugs,写核心的人太不负责了,但是我也拿他们没法子),最好不使用,说不好在新的版本中就不再支持了,那就没有延续性了。
2)再就是“pivot_root /sysroot /sysroot/initrd”之后就不要再作其他的工作了,余下的部分可以在真正的根分区中解决,这样可以使initrd更加简练。
3)最好使用insmod代替modprobe,modprobe需要建立完整的文件夹目录,而且有一定的风险。

说了这么多,不知道有没有人会仔细看啊,我也不是光说不作啊,贴点上来(没有整理,把重点的放出来,大家讨论讨论吧)
initrd中的init
#!/bin/nash
mount -t proc /proc /proc
mount -t sysfs /sys /sys
mount -o mode=0755 -t tmpfs /dev /dev
mknod /dev/console c 5 1
mknod /dev/null c 1 3
mknod /dev/zero c 1 5
mkdir /dev/pts
mkdir /dev/shm
/bin/udevstart
mount --ro -t iso9660 /dev/hdc /sysroot
switchroot --movedev /sysroot

对init脚本说明一下(工作还不充分):
1、内核必须支持iso9660文家格式要不就得自己insmod了
2、因为有了挂载根分区的操作,因此root=可以不要了
3、光驱(可以是刻录机)一定要是hdc,要不就不能用了,兼容hdb、hdd的问题还没有搞定。
4、真正根分区中的初始化,我就不管了啊,目前没有时间了

initrd中文件列表:
./lib
./bin
./bin/nash
./bin/insmod
./bin/modprobe
./bin/udevstart
./bin/hotplug
./etc
./etc/udev
./etc/udev/udev.conf
./dev
./dev/console
./dev/null
./dev/ram
./dev/systty
./dev/tty1
./dev/tty2
./dev/tty3
./dev/tty4
./dev/zero
./proc
./sys
./sysroot
./sbin
./init
./cdrom

就写道这把,要是讨论热烈的话,再把相关内容写出来,太累了,哈哈。
总结一下从Ext2到Cpio格式转化过程中的问题:
1、cpio格式没有建立完整的文件系统,需要自己找系统的相关文件(我是参考了BOoRFGOnZ以前的initrd)
2、nash和bash的语法有点不同,mount的时候要注意
3、关于root=和 echo 0x100 > /proc/sys/kernel/real-root-dev 要非常小心的使用,是核心的一个小问题,等我整理一下。
4、mkrootdev的相关工作还没有写,等下次吧
5、经过测试liveCD和liveUSB均可以使用了(当然,我没有使用BOoRFGOnZ的真正的文件系统,它的那个太大了,太可怕了,哈哈)
目前存在问题:
1、对于光驱只能对hdc进行操作,比较郁闷,请udev的高手指点
2、没有使用mkrootdev,尝试过了,但是没有成功,还需努力

BOoRFGOnZ 发表于 2007-1-23 18:42:51

中肯 中肯 :mrgreen:
LZ说的有些情况我都考虑过的,然后采取的折中的方案。
不过 你没有注意的事情是: 我是在不怎么改变ML工作方式的情况下做的Livecd,那是要解决在只读介质上的可写问题(内存辅助) :D
所以 只是单纯的iso9xxx挂上光驱,是起不了光驱上ML的(就是你说的我那个大大的文件系统,还是压缩过的) :D

另外
aufs是改进版的unionfs
cpio的initrd也是有大小限制的,大约不能超过16M :roll:
光盘上的引导程序似乎grub不可以吧?

再另外
LZ似乎是只是用的Neoshine的Live 而没有用过Magci Linux:lol:

sejishikong 发表于 2007-1-23 19:41:05

呵呵,光盘上的引导程序用grub可以啊。ml2.1a2就是用grub引导安装的。

不过楼主提的有些是ml的问题。2.1版本里可能会改的。

BOoRFGOnZ 发表于 2007-1-23 19:44:48

那就是 光盘上也可以 grub+gfx 咯 。。

嘿嘿 :mrgreen:

0Zzz 发表于 2007-1-24 09:36:14

我看了Neoshine的live,其中做了mount --bind的工作,就是解决可写问题的吧。这些工作可以不在initrd中做啊,可以在squashfs中做相关的工作的,应该是没有问题的,不过我没有实验过。
cpio的限制我也不知道,你这么一说我也学了新的东西了,哈哈
光盘的Grub是可以的使用grub中的stage2_eltorito作为mkisofs时候的-b就可以了,我以前试验过,不过现在的grub更新的很快,最新的是不是还是这个文件我就不知道了。
另外关于ML的live我就不下了,我拨号啊,容易吗。
楼上两位都是干什么的啊,早上6点就来上网,晕啊,哈哈。

BOoRFGOnZ 发表于 2007-1-24 09:40:59

LZ说的是1。0的Neoshine的Live制作方法(1.0的NeoshineLive你可以扔到垃圾箱中了),新版本的制作方法已经和以前的不一样了 :-D

npcomet 发表于 2007-1-24 12:14:04

其实最好的意见是
添加安装到硬盘的功能 :mrgreen::mrgreen::mrgreen:

gsli52 发表于 2007-2-2 11:36:49

嗯,添加安装到硬盘

i810无法用安装盘的。。

咦?livecd貌似也画屏啊。。

命苦啊,可怜我那台旧机子啊

BOoRFGOnZ 发表于 2007-2-2 13:33:02

花瓶 可以换个控制台 进行xorg。conf配置

gsli52 发表于 2007-2-12 15:45:28

请指教一下啊‘

偶是linux新手

0Zzz 发表于 2007-2-13 11:14:58

画屏的问题,不一定是什么问题啊,需要具体描述!
页: [1]
查看完整版本: 关于BOoRFGOnZ的liveCD发表一下拙见