質問
(のsquashfs圧縮ファイルシステムは、 - http://en.wikipedia.org/wiki/SquashFS>)
私はプログラムからのsquashfsファイルシステムを読み込むための方法を探しています。これまでのところ、私はそれのためのカーネル内のドライバについて知っているが、私は確かにそれのためのユーザ空間ライブラリがどこかに存在しなければならないということです。任意の言語は大丈夫だと思うが、Cが好ましいです。
だけでは、ファイルシステムをマウントし、それを使用して、その方法は、技術的には可能ですが、私が見ていたアプリケーションは、任意の時点で少なくとも数十のアーカイブで作業を伴うだろうので、私はむしろ、そのルートを避けるだろう。
解決
私はちょうどsquashfs.sourceforce.netからコードのtarballをダウンロードし、そこにはカーネルのコードはありません。 mksquashfs
とunsquashfs
ためのCにのみユーザーランドコード
あなたはおそらくunsquashfsからコードを抽出できます。
他のヒント
unsquashfs
に類似のsquashfs画像を抽出tar
というツールがあります。これはmksquashfs
に同梱されなければならない。
私はそれをやるいくつかのRubyのコードを持っています/squash.rbする
これはかなりラフだが、それはうまく動作します。たぶん私は良く設計されたCライブラリのいつかにそれを有効にします。
mksquashfs
とunsquashfs
は私のRed Hatシステムの "のsquashfs-toolsを" としてパッケージ化されます:
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は痛々しいほど遅いであることを注意してください。それは私がunsquashに書いたスクリプトの数分かかり、修正、および再スカッシュ87Mのstage2.img
ファイルます。