なぜ APPIMAGE を SQUASHFS に変換するのですか?
AppImage packs its whole AppDir as a compressed .squashfs image appended to a small launcher binary. Extracting that image lets you inspect, mount or repackage the app's files directly instead of running the sealed bundle.
APPIMAGE から SQUASHFS への変換方法
AppImage --appimage-extract
Run ./App.AppImage --appimage-extract to unpack the embedded SquashFS into a squashfs-root/ directory of plain files.
--appimage-offset + unsquashfs
Get the byte offset with ./App.AppImage --appimage-offset, then run unsquashfs -o <offset> App.AppImage to extract the raw SquashFS filesystem.
dd + unsquashfs (carve the image)
Use the offset with dd if=App.AppImage of=app.squashfs bs=1 skip=<offset> to save the standalone .squashfs file, then read it with unsquashfs.
これらの形式について
.appimage ファイルは、自己完結型の Linux アプリケーションです。プログラムとそのライブラリを1つの実行ファイルにまとめ、起動時に自身をマウントすることで、インストールやルート権限なしで実行できます。開くには、ダウンロード後に chmod +x App.appimage で実行権限を付与するか(またはファイルマネージャーで «プログラムとして実行を許可»…
.APPIMAGE の詳細を開く →.SQUASHFS ファイルは、data ファイルである squashfs-tools disk image に関連付けられています。
.SQUASHFS の詳細を開く →品質と注意点
- これは Type 2 の AppImage(ELF + SquashFS)で動作します。古い Type 1 の AppImage は代わりに ISO 9660 イメージを使用しており、別のツールが必要です。
--appimage-extractは単一の.squashfsファイルではなく、ファイル群を出力します。生のイメージが特に必要な場合は、ddや unsquashfs でオフセットを使用してください。- 展開しても内容は正確に保持されるため、品質が失われることはありませんが、展開されたツリーはそれ自体では実行可能な AppImage ではなくなります。
よくある質問
AppImage を展開するには root 権限が必要ですか?
--appimage-extract と unsquashfs は、FUSE や root 権限なしで一般ユーザーとして実行できます。SquashFS がどこから始まるかを確認するにはどうすればよいですか?
--appimage-offset を付けて実行すると、埋め込まれたファイルシステムのバイトオフセットが表示されます。展開する代わりにイメージをマウントできますか?
mount -o loop,offset=<offset> App.AppImage /mnt)。unsquashfs が不明なファイルシステムを報告した場合はどうすればよいですか?
--appimage-extract または ISO ツールを使用して展開してください。