unsquashfs -s
tidak memiliki kemampuan menampilkan jenis kompresi yang digunakan hingga komit ini pada 07 Agustus 2009. Ini berarti jika Anda menjalankan squashfs-tools
4.0 atau lebih lama, Anda tidak akan dapat melihat metode kompresi yang digunakan.
Dari informasi ini, saya memperoleh cara membaca superblok SquashFS 4.0 untuk menentukan metode kompresi yang digunakan (di mana $SQUASHFS
adalah jalur ke file SquashFS Anda):
dd if=$SQUASHFS bs=1 count=2 skip=20 2>/dev/zero | od -An -tdI | xargs
Alternatifnya, inilah fungsi bagi mereka yang ingin mengetikkan nama file di akhir baris:
sqsh_comp_method(){ dd if="$1" bs=1 count=2 skip=20 2>/dev/zero|od -An -tdI | xargs;};sqsh_comp_method
Anda akan mendapatkan nomor (antara 1 dan 6 pada SquashFS 4.4). Anda dapat mencocokkan angka tersebut dengan tabel berikut untuk melihat metode kompresi yang digunakan:
╔═══╦════════════════════╦════════════════════╗
║ # ║ Compression Method ║ Compatible Version ║
╠═══╬════════════════════╬════════════════════╣
║ 1 ║ gzip ║ 1.0 and newer ║
║ 2 ║ lzma ║ 4.1 and newer ║
║ 3 ║ lzo ║ 4.1 and newer ║
║ 4 ║ xz ║ 4.2 and newer ║
║ 5 ║ lz4 ║ 4.3 and newer ║
║ 6 ║ zstd ║ 4.4 and newer ║
╚═══╩════════════════════╩════════════════════╝
Perhatikan bahwa dd
di atas perintah hanya akan memberikan keluaran yang andal jika file yang Anda tentukan memiliki superblok SquashFS 4.0. Perintah berikut akan menampilkan "Not SquashFS 4.0
" jika file $SQUASHFS
tidak memiliki nomor ajaib SquashFS 4.0:
if [[ "$(dd if="$SQUASHFS" bs=1 count=4 skip=28 2>/dev/zero | xxd -p)" != "04000000" ]] ; then echo -n "Not " ; fi ; echo "SquashFS 4.0"
Penjelasan
Dalam sistem file SquashFS 4.0, metode kompresi disimpan pada 21 dan 22 byte superblok sebagai tipe data short
. dd bs=1 count=2 skip=20
akan mengambil short
, od -An -tdI
akan mengubah short
menjadi angka yang dapat dibaca manusia, dan xargs
hanya untuk menyingkirkan spasi terdepan.
Sebelum SquashFS 4.0, hanya ada gzip metode.
Jawaban lama
unsquashfs
memiliki -s
bendera untuk menampilkan informasi sistem file SquashFS.
Contoh penggunaan:
[email protected] [/tmp]# unsquashfs -s template.squashfs
Found a valid SQUASHFS 4:0 superblock on template.squashfs.
Creation or last append time Thu Apr 30 23:07:23 2015
Filesystem size 47225242.44 Kbytes (46118.40 Mbytes)
Compression gzip
Block size 131072
Filesystem is exportable via NFS
Inodes are compressed
Data is compressed
Fragments are compressed
Always_use_fragments option is not specified
Xattrs are compressed
Duplicates are removed
Number of fragments 23629
Number of inodes 437076
Number of ids 1
Jika Anda hanya ingin jenis kompresi teridentifikasi, Anda dapat menyalurkan output melalui awk '/^Compression/{print $2}'
. Contoh:
[email protected] [/tmp]# unsquashfs -s template.squashfs | awk '/^Compression/{print $2}'
gzip