只讀文件系統

在有些項目中,咱們不但願系統的文件的被修改,如路由器的系統文件等等.咱們就須要使用只讀文件系統來保護咱們的系統文件不被修改.node

常見的只讀文件系統有:cramfs文件系統和squashfs文件系統(cramfs文件系統的繼任者)算法

 

1、cramfs文件系統: http://sourceforge.net/projects/cramfs/
1. compressed ROM filesystem
主要用於嵌入式Linux系統中,簡單與空間高效工具

2. 特性:
支持最大分區:272MB (256MB + 16MB)
支持最大文件:16MB
壓縮格式: Zlib,壓縮比通常能夠達到1:2,每頁單獨進行壓縮處理 ————> 支持隨機讀取
動態解壓:訪問數據時實時解壓訪問到的頁到內存,節省內存空間
使用透明:解壓縮以及解壓縮以後的內存中數據存放位置都是由cramfs文件系統自己進行維護,對外部使用透明ui

2、squashfs文件系統: cramfs的替代
1. http://www.squashfs.org
爲通用只讀文件系統等設計

2. 特性:
支持最大分區: 16EB
支持最大文件: 2TB
支持多種壓縮格式:GZIP LZMA/LZMA2(XZ) LZOspa

 

三,cramfs文件系統的製做.net

1,安裝製做工具設計

sudo apt-get install cramfsprogsip

安裝成功之後會有2個命令內存

mkcramfs:建立文件系統鏡像
cramfsck:對文件系統鏡像的一些操做路由

2,製做文件系統

mkcramfs 選項(能夠沒有) 目錄名 鏡像名稱

cramfsck 鏡像名 :驗證是否正確

cramfsck -x 鏡像名:解壓該鏡像

 

四,squashfs文件系統製做

1,製做工具的安裝

sudo apt-get install squashfs-tools

mksquashfs:製做鏡像
unsquashfs:對鏡像的一些操做

2,製做文件系統

mksquashfs source1 source2 ... dest [options] [-e list of exclude dirs/files]
主要選項:
-comp <comp> 指定壓縮算法:gzip (default)/lzo/xz
-b <block_size> 設置塊大小,單位 Bytes,默認 131072 bytes (1MB)
-no-exports 不支持NFS文件系統導出
-no-sparse 不檢測稀疏文件
-no-xattrs 不存儲擴展文件屬性(XATTR)
-xattrs 存儲擴展文件屬性(default)
-noI 不壓縮Inode節點表
-noD 不壓縮數據塊
-noF 不壓縮片斷塊
-noX 不壓縮擴展文件屬性
-no-fragments 不使用片斷管理
-always-use-fragments 對比塊大小大的文件也是用片斷塊
-no-duplicates 不對文件重複進行檢查
-all-root 修改全部的文件擁有者爲root
-force-uid uid 設置全部文件的uid爲指定的uid
-force-gid gid 設置全部文件的gid爲指定的gid
-nopad 不對文件系統進行4K字節對齊
-keep-as-directory 若是指定的源中有目錄,在文件系統中建立根目錄包含該目錄,而不是包含目錄內容


mksquashfs 目錄名 鏡像名 -no-exports -no-xattrs -all-root

內容提取:
unsquashfs [options] filesystem [directories or files to extract]
主要選項:
-d[est] <pathname> 解壓到指定目錄,默認爲"squashfs-root"
-n[o-progress] 不顯示進度條
-no[-xattrs] 不提取xattr屬性,默認提取
-l[s] 列出文件系統內容,不進行解壓縮提取

 

由於有些文件涉及到了管理員權限,因此建議使用管理員權限來製做和解壓文件系統鏡像以免一些權限錯誤.

相關文章
相關標籤/搜索