零二年的夏天 回复于:2003-11-26 19:06:40 |
试试fstab。 另:CF卡是什么? :) |
ljsheng 回复于:2003-11-26 19:19:08 |
其实以只读的方式加载root文件系统是可以的。但是系统初始化时很多程序要写文件系统,所以初始化会失败。我知道有一种方法可以:系统以ram设备启动,然后将CF卡上的文件拷入ram盘。但是这种方法太麻烦,有点小题大作的感觉。 另:CF卡就是Compact Card。一种读写介质,需要使用读卡器读取。 |
ljsheng 回复于:2003-11-26 19:20:02 |
想请大虾指点一下简便的方法。 |
chenjn 回复于:2003-11-26 19:38:23 |
CF卡怎么会不能多次写呢?奇怪 |
ljsheng 回复于:2003-11-26 20:17:11 |
CF卡的写寿命远小于读寿命,而我的CF系统要运行很长的时间,所以需要尽量不写CF卡。因此才会只读加载CF卡上的root文件系统。 |
零二年的夏天 回复于:2003-11-27 09:52:33 |
[quote:ff582f4918="ljsheng"]其实以只读的方式加载root文件系统是可以的。但是系统初始化时很多程序要写文件系统,所以初始化会失败。我知道有一种方法可以:系统以ram设备启动,然后将CF卡上的文件拷入ram盘。但是这种方法太麻烦,有点小题大作..........[/quote:ff582f4918] 谢谢! :) |
LoveFreedom 回复于:2003-11-27 09:54:22 |
利用ramdisk技术实现 你写启动脚本的时候在/etc/rc.d/rc.local里面添加(假如你压缩的系统叫 sys.tar.gz ,放在/home/下) mke2fs /dev/ram0 mount /dev/ram0 /mnt/ramdisk0 cd /mnt/ramdisk0 dd if=/hom/sys.tar.gz bs=1k |gzip -d | cpio -idv chroot /mnt/ramdisk0/sys/ |
ljsheng 回复于:2003-11-27 11:45:26 |
如果在rc.local中作的话,那rc.sysinit怎么办呢?因为文件系统是只读加载的,所以在rc.sysinit的过程中就会失败的。那就只能在initrd.img中的linuxrc中做了,是吗? |
gentoo 回复于:2003-11-27 13:35:04 |
不用加载CF卡上的FS,把你做的文件装载在内存中(RAM0)。 我的做法是:1。先准备好你的系统,KERNEL。 2。做一个内存文件,大小自定(dd if=/dev/zero of=./ramfs bs=15M conut=1) 3.mke2fs -m 0 ./ramfs 4.挂载:mount -o loop ./ramfs /mnt/tmp 5.把你的文件系统都拷过去/mnt/tmp 6.umount /mnt/tmp 7.gzip -9 ./ramfs 这样会得到一个镜象文件。用他来做initrd就可以。 注意你的系统/etc/fstab 中/目录mount 在ram0上。 |
grub007 回复于:2003-11-27 15:09:24 |
和一张光盘上的linux系统类似,你用isolinux来引导就可以了! |
grub007 回复于:2003-11-27 15:17:48 |
关于isolinux的引导过程,你可以看看isolinux的网站,很容易的,很多只读系统都是放在ram中运行的。 |
ljsheng 回复于:2003-11-27 16:40:15 |
OK!谢谢各位大虾,小弟搞定了,呵呵!!! |
LoveFreedom 回复于:2003-12-01 17:17:49 |
ljsheng ,可以讲一下你是怎么实现的吗?谢谢 |