(Squashfs的是一個壓縮文件系統 - http://en.wikipedia.org/wiki/SquashFS)讀一Squashfs的歸檔
我正在尋找一種方法來讀取一個程序的squashfs文件系統。到目前爲止,我已經知道它的內核驅動程序,但是我確定它的用戶空間庫必須存在。任何語言都可以,但C是首選。
只要安裝文件系統並以這種方式使用它在技術上是可行的,但我寧願避免這種路由,因爲我所看到的應用程序在任何時候都會涉及至少幾十個檔案。
(Squashfs的是一個壓縮文件系統 - http://en.wikipedia.org/wiki/SquashFS)讀一Squashfs的歸檔
我正在尋找一種方法來讀取一個程序的squashfs文件系統。到目前爲止,我已經知道它的內核驅動程序,但是我確定它的用戶空間庫必須存在。任何語言都可以,但C是首選。
只要安裝文件系統並以這種方式使用它在技術上是可行的,但我寧願避免這種路由,因爲我所看到的應用程序在任何時候都會涉及至少幾十個檔案。
我剛剛從squashfs.sourceforce.net下載了代碼tarball,並且在那裏沒有內核代碼。 C中只有用戶區代碼mksquashfs
和unsquashfs
。
你也許可以從unsquashfs中提取代碼。
有一個叫做unsquashfs
的工具,它提取類似於tar
的squashfs圖像。它應與mksquashfs
mksquashfs
和unsquashfs
打包爲我的Red Hat系統「的squashfs工具」捆綁:
Name : squashfs-tools Group : System Environment/Base Size : 160923 URL : http://squashfs.sf.net Summary : squashfs utilities Description :Squashfs的是Linux高度壓縮的只讀文件系統。此包 包含用於操作squashfs文件系統的實用程序。
/sbin/mksquashfs /usr/sbin/unsquashfs /usr/share/doc/squashfs-tools-3.0 /usr/share/doc/squashfs-tools-3.0/ACKNOWLEDGEMENTS /usr/share/doc/squashfs-tools-3.0/CHANGES /usr/share/doc/squashfs-tools-3.0/COPYING /usr/share/doc/squashfs-tools-3.0/PERFORMANCE.README /usr/share/doc/squashfs-tools-3.0/README
被警告,擠壓和unsquashing是痛苦的緩慢。我寫的腳本需要幾分鐘的時間才能解密,修改和重新壓縮一個87M的stage2.img
文件。
我有一些Ruby代碼即會做到這一點:https://github.com/vasi/squash.rb
這是相當粗糙,但它工作正常。也許我有一天會把它變成一個設計得更好的C庫。
SquasFS驅動程序已經成爲很快被2.6.34 – 2010-05-10 21:09:55