嵌入式Linux系統中使用cramfs文件系統

嵌入式Linux系統中使用cramfs文件系統

   在做嵌入式Linux開發的時候,由於存儲空間的限制,我們常常會有一些文件系統需要壓縮存儲,
比如說,可以將操作系統的/usr,/dev, /bin,/sbin 等等不需要經常修改的目錄壓縮存儲在一個壓縮
文件中,在系統引導的時候再將壓縮文件解開。這種情況下,cramfs是一個 不錯的選擇。下面我將詳
細闡述如何使用cramfs來壓縮根文件系統下的部分目錄。
     cramfs是一個只讀文件系統,壓縮比一般可以達到1:2
    本人的工作環境:CPU GX300,(與Intel X86系列兼容),RAM 64M,2 IDE口,DOM 16M,
操作系統 Redhat 7.2發行版,Linux Kernel 2.4.7。
    第一步:準備根文件系統
       創建工作目錄: mkdir /cram
                      mkdir /cram/bin
                      mkdir /cram/sbin
                      mkdir /cram/usr
                    
       將目標系統所需要的 /usr  /bin ,/sbin 和其他不需要經常修改文件的目錄
      目錄下的文件分別拷貝到/cram下的對應目錄中去。
    第二步:生成cram 文件
       cd /
       mkcramfs /cram cram.img
       這個過程時間較長.
       壓縮完成後,你可以測試一下你的cram.img文件
       mount -o loop -t cramfs /cram.img /mnt  將cram.img 文件系統加載到/mnt
       cd /mnt
       ls
       查看是否有 bin,sbin,usr等等目錄。
    第三步:在目標系統上使用cram.img文件
     
       生成initrd文件,(關於initrd文件請參考相關文章)
       在目標系統上安裝好lilo, /boot  /dev等目錄
             
       在initrd中的linuxrc文件結尾加上以下腳本。
       mkdir /cram
       mount -o loop -t cramfs /cram.img /cram
       rm -Rf /bin /sbin /usr
       mkdir /bin /sbin /usr /proc
       ln -s /cram/bin /bin
       ln -s /cram/sbin /sbin
       ln -s /cram/usr /usr
       等等。
    另外,你的etc目錄, /dev還是照常放在你的根文件系統上

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章