cramfs是只讀壓縮的文件系統(tǒng),文件系統(tǒng)類型可以是ext2,ext3,什么的,
制作方法: 假如你正如樓上所言《構(gòu)建嵌入式LINUX系統(tǒng)》這本書,還行,可以參考。
剛開始的時候,這個地方,我比較暈,其實,根本就沒有什么東西,只要你作過一遍,就理解了。最好請教一下跟前作過的人,有一個感觀的認識:
如二樓所言,cramfs和romfs只是一個文件系統(tǒng)類型,ramdisk相當于一塊硬盤空間,可以理解為在內(nèi)存中虛擬出一塊硬盤來,所以它上面就可以有你linux支持的各種文件系統(tǒng)什么的。所以你問的,它和romfs和cramfs確實不是一個層次的概念。 ^-^恭喜你,你答對了的根文件系統(tǒng)的目錄是 rootfs (你將來要用到的所有的文件就在這里)
like this : mkcramfs rootfs rootfs.cramfs 就搞定了。如名字所言,它是只讀壓縮,所以比較省空間,如果你的flash比較小,就用這個吧! 系統(tǒng)啟動后,kernel把他load到內(nèi)存中,解壓 ,所以比較占內(nèi)存??茨愕男枰?。
而ramdisk呢? 這個用的比較多,ramdisk相當于一塊硬盤空間,可以理解為在內(nèi)存中虛擬出一塊硬盤來,所以它上面就可以有你linux支持的各種文件系統(tǒng)什么的。所以你問的,它和romfs和cramfs確實不是一個層次的概念。 關(guān)鍵是以后,在ramdisk里面可以寫,這是一個和cramfs重要的區(qū)別了。
具體制作方法:
dd if=/dev/zero of=rootfs.img bs=1M count=一個整數(shù)(看你的實際的需要的空間了,一般也就10M)
把它格式化為你需要的文件系統(tǒng),比如 ext2 ,ext3 ,reiserfs 什么的,
比如ext3 : mkfs.ext3 root.img
然后把它mount到某個目錄,比如tmp 吧:
mount -t ext3 /tmp/
然后,你的文件系統(tǒng)所在的目錄的所有文件copy到tmp目錄下: 比如你的文件系統(tǒng)目錄在/root/rootfs-test :
cp -av /root/rootfs-test/* /tmp/ (這里注意一個細節(jié):copy的時候,用參數(shù)a表示copy全部,v表示只copy鏈接本身,不copy它指向的內(nèi)容,這點很關(guān)鍵哦!) ,另外,有的人常用:cp -pdR 這個你也可以試試,意思就是原來什么樣,copy過去就什么樣。
然后卸載/tmp/ 目錄就好了。
umount /tmp
一般的情況下,ramdisk是要壓縮的,對于上面的生成好的img, rootfs.img ,你可以這樣壓縮:
gzip -v9 rootfs.img 會自動生成rootfs.img.gz ,一般壓縮率,30%吧!
romfs ,我沒有用過,也不敢瞎說。
個人經(jīng)驗: 你自己要創(chuàng)建文件系統(tǒng),一般是先建一個目錄在里面建一些常用的目錄,比如bin ,sbin ,root ,etc lib 什么的,正如樓上所言,lib比較煩,需要考慮你要用的程序需要的動態(tài)鏈接庫,
建議你先搞一個別人的,拿過來,參考,自己去改,一開始,自己去作肯定要瘋的。
你可以到網(wǎng)上搜搜的。 有個網(wǎng)站,http://user-mode-linux.sourceforge.net/ 這個里面提供了一些簡單的文件系統(tǒng),你可以拿過來,自己改改。 這是個比較快的方法,其實,里面要改基本是:
/etc/rc.d/** 下面的啟動腳本。
lib/下的一些動態(tài)鏈接庫。
shell
busybox知道嗎? 利用這個,可以省很多空間, 到google上搜搜
現(xiàn)在你已經(jīng)知道了要搜索的關(guān)鍵字了吧? 以后就要靠自己了,沒有人能幫助你了。
恕我直言,三天未必能搞定,我最開始的時候,對于這方面什么也不知道,東看西看,也要一個禮拜才搞定。 一開始,先別著急作, 先把 概念搞清楚,流程搞清楚。這才是關(guān)鍵呢!
如果是老大催的緊,你就這么說就可以。
還有要注意的是: 這個帖子貼的地方不恰當,放在,嵌入式開發(fā)里面比較合適 。這里主要是大家研究kernel源代碼的地方。 回的人不會太多
只要給我一個支點,我就翹起地球
編輯者: bob2004 (05-04-03 15:38)
聯(lián)系客服