如果使用RAMDISK方式來使用文件系統,那麼在系統運行之後,首先得把flash上的映像文件全部解壓到ram中,構造ramdisk環境,才可以運行程序,但有一個致命的弱點,在正常情下,同樣的代碼不僅在flash占用了空間,而且還在ram中占用極大的空間,這違背了嵌入式中節省資源的原則.
cramfs文件系統並不需要一次性地將文件系統中的所有內容解壓到ram中,而只是是系統需要訪問某個位置的數據時,馬上計算出該數據在cramfs中的位置,將其解壓到ram中,然後通過內存訪問來獲取數據,cramfs中的解壓縮之後的內存中的數據存放位置都是由cramfs文件系統本身來管理,用戶並不需要實現過程,因此增加了透明度,給開發人員節約了時間.
第一步 將FORLINX_6410_touch.cramfs 復制到 /home 目錄下
第二步 在/home目錄下新建一個目錄cramfs
第3步 將 FORLINX_6410_touch.cramfs 鏡像文件掛接到 cramfs目錄下,就類似windows 下使用虛擬光驅一樣
# mount FORLINX_6410_touch.cramfs cramfs -o loop
第4步 在/home 下,再見一個目錄cramfs_new
然後,將cramfs 裡的所有文件、文件夾全部復制到 cramfs_new下。
# cp cramfs -r cramfs_new
原因是 cramfs裡的文件、文件夾都是只讀的
第5步 現在你可以盡情的去修改 cramfs_new 裡面的文件了。
例如,我現在修改開發板默認的IP地址
按a鍵開始編輯
編輯完後按
:wq 存盤退出
第6步重新打包文件系統鏡像
#cd /home/cramfs_new
#mkcramfs cramfs 20120209.cramfs