romfs, cramfs和ramdisk

文章来源 (http://publishblog.blogchina.com/blog/tb.b?diaryID=3226065

cramfs和romfs只是一个文件系统类型,ramdisk相当于一块硬盘空间,可以理解为在内存中虚拟出一块硬盘来,所以它上面就可以有你 linux支持的各种文件系统什么的。所以你问的,它和romfs和cramfs确实不是一个层次的概念。 ^-^恭喜你,你答对了,加10分
cramfs是只读压缩的文件系统,文件系统类型可以是ext2,ext3,什么的,
制作方法: 假如你的根文件系统的目录是 rootfs (你将来要用到的所有的文件就在这里)
like this : mkcramfs rootfs rootfs.cramfs 就搞定了。如名字所言,它是只读压缩,所以比较省空间,如果你的flash比较小,就用这个吧! 系统启动后,kernel把他load到内存中,解压,所以比较占内存。看你的需要了。

而ramdisk呢?这个用的比较多,ramdisk相当于一块硬盘空间,可以理解为在内存中虚拟出一块硬盘来,所以它上面就可以有你linux支持的各种文件系统什么的。所以你问的,它和romfs和cramfs确实不是一个层次的概念。 关键是以后,在ramdisk里面可以写,这是一个和cramfs重要的区别了。
具体制作方法:
dd if=/dev/zero of=rootfs.img bs=1M count=一个整数(看你的实际的需要的空间了,一般也就10M)
把它格式化为你需要的文件系统,比如 ext2 ,ext3 ,reiserfs 什么的,
比如ext3 : mkfs.ext3 root.img
然后把它mount到某个目录,比如tmp 吧:
mount -t ext3 /tmp/

然后,你的文件系统所在的目录的所有文件copy到tmp目录下: 比如你的文件系统目录在/root/rootfs-test :
cp -av /root/rootfs-test/* /tmp/ (这里注意一个细节:copy的时候,用参数a表示copy全部,v表示只copy链接本身,不copy它指向的内容,这点很关键哦!) ,另外,有的人常用:cp -pdR 这个你也可以试试,意思就是原来什么样,copy过去就什么样。

然后卸载/tmp/ 目录就好了。
umount /tmp

一般的情况下,ramdisk是要压缩的,对于上面的生成好的img, rootfs.img ,你可以这样压缩:
gzip -v9 rootfs.img 会自动生成rootfs.img.gz ,一般压缩率,30%吧!

romfs 
uCLinux系统采用ROMFS文件系统,这种文件系统相对于一般的ext2文件系统要求更少的空间。空间的节约来自于两个方面:首先内核支持ROMFS文件系统比支持ext2文件系统需要更少的代码;其次ROMFS文件系统相对简单,在建立文件系统超级块(superblock)需要更少的存储空间。ROMFS文件系统不支持动态擦写保存,对于系统需要动态保存的数据采用虚拟RAM盘的方法进行处理(RAM盘将采用ext2文件系统).
可以从http://romfs.sourceforge.net/下载生成romfs的工具genromfs

个人经验: 你自己要创建文件系统,一般是先建一个目录在里面建一些常用的目录,比如bin ,sbin ,root ,etc lib 什么的,正如楼上所言,lib比较烦,需要考虑你要用的程序需要的动态链接库,
建议你先搞一个别人的,拿过来,参考,自己去改,一开始,自己去作肯定要疯的。

你可以到网上搜搜的。 有个网站,http://user-mode-linux.sourceforge.net/  这个里面提供了一些简单的文件系统,你可以拿过来,自己改改。 这是个比较快的方法,其实,里面要改基本是:
/etc/rc.d/** 下面的启动脚本。
lib/下的一些动态链接库。
shell busybox知道吗? 利用这个,可以省很多空间, 到google上搜搜

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值