romfs, cramfs和ramdisk
From:http://blog.csdn.net/at91rm9200/article/details/550074
文章來源 (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上搜搜
總結
以上是生活随笔為你收集整理的romfs, cramfs和ramdisk的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 计算机网络共享自动关,如果单击“打印”后
- 下一篇: 走进javascript——不起眼的基础