squashfs文件系統


一、Squashfs文件系統簡介

 squashfs是以linux 內核源碼補丁的形式發布,附帶mksquashfs工具,用於創建squash文件系統。squashfs可以將整個文件系統或者某個單一的目錄壓縮在一起, 存放在某個設備, 某個分區或者普通的文件中. 如果你將其壓縮到一個設備中, 那么你可以將其直接mount起來使用; 而如果它僅僅是個文件,你可以將其當為一個loopback 設備使用. squashfs文件系統的設計令人欣喜.  For archiving purposes, 它可以讓你更加靈活的使用, 而且它比.tar.gz文檔有更快的響應速度。

 

  以下是squash文件系統的特點:
· 數據(data),節點(inode)和目錄(directories)都被壓縮。

· 保存了全部的32位UID/GIDS和文件的創建時間. (注: cramfs是8位,沒有創建時間)。

· 支持多達4G的文件系統. (cramfs是16M)。

· 節點和目錄都是高度壓縮, 而且都是存儲在字節邊界(packed on byte boundaries); 所有壓縮的節點長度平均在8個字節左右.(具體的長度根據文件的類型是不同的. 比如, 普通文件,目錄,符號鏈接,塊設備和字符設備的節點的大小就不一樣)。

· squashfs可以允許塊大小(block size)達32Kb(1.x)和64kb(2.x), 這樣可以達到比4K塊大小更大的壓縮率。

·  squashfs 2引進了碎片塊(fragment blocks)的概念: 一種將許多比塊size 小的文件存儲在一個塊中, 以達到更大的壓縮率。

· 重復的文件會被檢測並刪除掉。

· 同時支持big和little endian架構. SQ可以將文件系統MOUNT到不同的字節順序(byte-order)的機器上面。

 

 編譯使用SQ的基本步驟:
  1.重新打包和編譯Linux內核, 使之支持SQ.
  2.編譯mksquashfs工具.
  3.使用mksquashf創建壓縮文件系統.
  4.試用: mount suqash文件系統到一個臨時目錄.
  5.如果需要的話,更改/etc/fstab 或者起始腳本, 以使linux操作系統自動加載新的 squashfs 文件系統.

 

 squashfs是一個只讀壓縮文件系統,對嵌入式來說,可以減少成本,在使用nand flash作為存儲設備的開發板來說,要使用squashfs首先內核當中要有對squashfs的支持,同時還要有對mtd字符設備和塊設備的支持。

一般可以用於制作Android的ROM分區;

二、構建squash文件系統

 https://www.ibm.com/developerworks/cn/linux/1306_qinzl_squashfs/


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM