我在CF卡上作了一个Linux,正常启动是没问题的。但是因为CF不能多次写,所以想在init时将CF卡上的root文件系统只读加载。但是在rc.sysinit中修改后,系统的init过程就不能进行了。怎样才能完美的加载CF卡上的root文件系统,同时又能正常使用Linux?
零二年的夏天 回复于: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
引用:原帖由 "ljsheng"]其实以只读的方式加载root文件系统是可以的。但是系统初始化时很多程序要写文件系统,所以初始化会失败。我知道有一种方法可以:系统以ram设备启动,然后将CF卡上的文件拷入ram盘。但是这种方法太麻烦,有点小题大作..........
发表:
谢谢! :)
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!谢谢各位大虾,小弟搞定了,呵呵!!!
| 论坛热门帖子: | [lch203] 写得蛮好的linux学习笔记(10-21) [黑马制造] 学习java的30个目标(10-19) [笑傲股林] 做测试半年了,有点迷茫,应该再学些什么提高自己的测试水平和测试能力呢?(10-19) [udp8589] 大家用google的来吱一声? 用百度的~~也来报道下?(10-18) [沂偌掳兆] 本人总结的一些认为C++比较经典的书籍,希望对大家有用(10-18) |
| TAG标签: | 文件 系统 怎样 CF 回复 加载 可以 ljsheng 卡上 但是 |
注册
个人空间
