ファームウェアイメージをクエーシュフ化したりマウントしたりする方法は?

StackOverflow https://stackoverflow.com/questions/7362148

質問

ルーターのファームウェアを抽出し、変更したいと思います。そこで、BitsumのファームウェアMODキットを使用しました。エラーはないようです。 image_partsディレクトリを取得できます。また、rootfs.img(squashfs image)ファイルがあります。しかし、問題は、私もそれをマウントしたり、クエシュフをマウントできないことです。

これは抽出出力です。

# ./extract-ng.sh AirTies_Air5021RU_FW_1.2.0.16_FullImage.bin
Firmware Mod Kit (extract-ng) 0.69 beta, (c)2011 Craig Heffner, Jeremy Collake
http://www.bitsum.com

Scanning firmware...

DECIMAL    HEX          DESCRIPTION
-------------------------------------------------------------------------------------------------------
65228      0xFECC       Squashfs filesystem, big endian, version 2.0, size: 1369418 bytes, 382 inodes, blocksize: 65536 bytes, created: Tue May  3 13:44:22 2011

Extracting 65228 bytes of  header image at offset 0
Extracting squashfs file system at offset 65228
Extracting 160 byte footer from offset 1972107
Extracting squashfs files...
Firmware extraction successful!
Firmware parts can be found in 'fmk/*'

マウント試行出力:

fmk# ls
image_parts  logs  rootfs
fmk# cd image_parts/
fmk/image_parts# ls
footer.img  header.img  rootfs.img
fmk/image_parts# file rootfs.img 
rootfs.img: Squashfs filesystem, big endian, version 2.0, 1369418 bytes, 382 inodes, blocksize: 65536 bytes, created: Tue May  3 13:44:22 2011
fmk/image_parts# mount rootfs.img /mnt/rootfs/ -o loop -t squashfs
mount: wrong fs type, bad option, bad superblock on /dev/loop0,
       missing codepage or helper program, or other error
       In some cases useful info is found in syslog - try
       dmesg | tail  or so
fmk/image_parts# dmesg | tail -n 1
[24799.284066] SQUASHFS error: Can't find a SQUASHFS superblock on loop0

unsquashfsは出力を試みます:

fmk/image_parts# unsquashfs rootfs.img 
Reading a different endian SQUASHFS filesystem on rootfs.img
Parallel unsquashfs: Using 1 processor
336 inodes (377 blocks) to write

[=============================|                                                                                  ]  99/377  26%
gzip uncompress failed with error code -3

Failed to write squashfs-root/lib/libqueue.so, skipping
[=============================|                                                                                  ] 100/377  26%
gzip uncompress failed with error code -3

gzip uncompress failed with error code -3

gzip uncompress failed with error code -3

...


Failed to write squashfs-root/lib/modules/2.6.8.1/extra/blaa_dd.ko, skipping
[====================================|                                                                           ] 123/377  32%
gzip uncompress failed with error code -3

gzip uncompress failed with error code -3

...

Failed to write squashfs-root/webs/management/ui_password.html, skipping
[========================================================|                                                       ] 191/377  50%
gzip uncompress failed with error code -3

Failed to write squashfs-root/webs/index.html, skipping
[========================================================|                                                       ] 192/377  50%
gzip uncompress failed with error code -3

...


Failed to write squashfs-root/usr/sbin/brctl, skipping
[===============================================================================================================|] 377/377 100%
created 188 files
created 46 directories
created 52 symlinks
created 95 devices
created 1 fifos

「エラーコード-3」を検索しました。それはZ_DATA_ERRORです(データは破損または不完全です)。さて、私は何をすべきですか?

ありがとう

役に立ちましたか?

解決

BCM63XXファームウェア画像には、Squashfs-LZMAのような特別な形式があります。 BCMツール(brfwmod.exe)という名前のファームウェア画像を抽出するためのツールをいくつか入手しました。 LZMA-Unsquashという名前のコマンドがあります。 Theese Toolsを使用してクエーシングに成功しました。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top