問題タブ [squashfs]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
squashfs - SquashFSアーカイブを読む
(SquashFSは圧縮ファイルシステムです-http ://en.wikipedia.org/wiki/SquashFS)
プログラムからSquashFSファイルシステムを読み取る方法を探しています。これまで、カーネル内のドライバーについては知っていましたが、そのユーザースペースライブラリはどこかに存在する必要があると確信しています。どの言語でも構いませんが、Cが推奨されます。
ファイルシステムをマウントしてそのように使用することは技術的には可能ですが、私が見ているアプリケーションは常に少なくとも数十のアーカイブを処理する必要があるため、そのルートは避けたいと思います。
extract - ファームウェアイメージを押しつぶしたりマウントしたりする方法は?
ルーターのファームウェアを抽出して変更したい。だから私はbitsumのファームウェアmodキットを使用しました。エラーはないようです。image_partsディレクトリを取得できます。rootfs.img(squashfs image)ファイルもあります。しかし、問題は私がそれをマウントすることもunsquashfsすることもできないということです。
これは抽出出力です:
マウント試行出力:
unsquashfsは出力を試みます:
「エラーコード-3」を検索しました。これはZ_DATA_ERRORです(データが破損しているか不完全です)。今、私は何をすべきですか?
ありがとう
compression - スカッシュの圧縮率の調査
既存のsquashfsイメージを調べて、ファイルごとの圧縮率を見つけるためのツールはありますか?
巨大な実行可能ファイルで静的にリンクされたシンボルのフラッシュ使用量を見積もることができる場合のボーナスポイント。
filesystems - squashfs ファイルシステム インデックスからディスク ブロックへのマッピング
squashfs がディスク ブロック番号をファイル システム ブロックにマップする方法を誰か教えてください。基本的に私は squashfs の read_blocklist() について言っています。
ありがとう、カピル
squashfs - 既存の squashfs ファイルシステムに書き込み/変更を行うにはどうすればよいですか?
既存の squashfs ファイルシステムに書き込み/変更を行うにはどうすればよいですか? aufs/unionfs を使用してみましたが、コンパイルが非常に難しいカーネル モジュールが必要です。
android - /system/bin/sh: ./mksquashfs: not executable: magic 7F45 というエラーが表示されるのはなぜですか?
Android用のmksquashfsツールを入手できなかったため。クロス コンパイルを使用してアーム用にコンパイルし、ビルドしました。ツールチェーンはカーネルと mksquashfs で同じです。
mksquashfs を にプッシュしました/data/ partition of target
。
エラーメッセージは次のとおりです。
クロス コンパイル ツールチェーンなどが不足している場合は、Android 用の mksquashfs を取得する方法を教えてください。
linux - RFS の squashfs の選択
当社の製品には、iMx6 プロセッサ、2GB eMMC、512 MB RAM、2 つのイーサネット ポート、および USART ポートの構成があります。これは、24 時間 365 日稼働するデバイスになります。
最小限の Linux イメージ (カーネル + RFS) を約 7 ~ 10 MB で構築し、メイン アプリケーションとカスタム カーネル ドライバーをサイズ 2 MB の個別の squashfs パーティションに保持することを計画しています (これは、このパーティションを別々に小さく保ちたいフィールド)。
永続データを格納するための別の ext4 読み取り/書き込みデータ パーティション。データ パーティションを除いて、他のすべてを読み取り専用パーティションにする必要があります。
私のクエリは
Linux OS イメージ (カーネル + RFS) が小さいため、RFS 全体を initramfs として使用できますか?
initramfs として RFS を使用することには何らかの意味がありますか? (RAM はもっと消費されます。私たちが持っている RAM の量を考えると、最大で約 20 から 30 MB だと思いますが、これは問題ではないと思います)
別の解決策は、RFS を squashfs として使用することです。これにより、スペースが節約されます。上記にはinitramfsよりも他の利点がありますか?
squashfs がある場合は、読み取り専用アプリケーション パーティションと読み取り/書き込みデータ パーティションの両方を一緒にマウントするために、ユニオン マウントも必要です。
initramfs を使用する場合、ユニオン マウントを実装する必要はないと思います。この理解は正しいでしょうか?
これは Linux での最初のプロジェクトなので、そのような RFS を使用した経験のある人からフィードバックを得たいと思います。