squashfs是眾多Live CD使用的檔案系統,Why?因為它那嚇死人的壓縮率,舉個例子,以筆者製做的root file system為例,壓縮過後的initial ram disk大小為1.3MB,但squashfs製做出來的file system image只有500多k,squashfs image居然只有compressed initial ram disk image一半的容量,這種節省儲存空間和記憶體空間的檔案系統,最適合在台灣用了,因為代工廠最需要的cost down,這種軟體技術做到了在小容量記憶體系統中放大檔案的可能性

可惜目前Linux-2.6.26還沒有支援squashfs,所以必需去patch kernel才能使用,首先至官方網站下載squashfs source and tool,目前最新的版本是3.4,解壓縮後,參照以下指令執行patch

%cd /usr/src/linux-2.6.26 
%patch -p1 < location-of-squashfs/kernel-patches/linux-2.6.26/squashfs3.4-patch

然後編譯製作squafs file system image的工具

%cd location-of-squashfs/squashfs3.4/squashfs-tools 
%make

會得到兩支執行檔mksquashfs和unsquashfs,mksquashfs是製做映像檔的工具,unsquashfs可解壓縮印像檔並查看內容,詳細的使用方法請參考squashfs-HOWTO

製做squashfs檔案系統的指令很簡單,用法大致如下

%mksquashfs [source] [dest] 
%mksquashfs ./fs squashfs.root

kernel command line請修改為” mem=64M console=ttySAC0 initrd=0x32000000,2000000 root=/dev/ram0 rootfstype=squashfs”,這裡的範例是根據QT2410設定的,假設我們把squashfs image下載到板子上的0x32000000且其大小為2MB,rootfstype為squashfs,kernel開機完會mount /dev/ram0的squasfs image,可參考如下圖片

最後修改日期: 3 6 月, 2022

作者

留言

撰寫回覆或留言

發佈留言必須填寫的電子郵件地址不會公開。