当我在.img上执行file命令时,它将返回以下内容:
$ file file.img
file.img: data
当我尝试在其上使用安装架时,得到以下信息:
$ sudo mount file.img test/
mount: you must specify the filesystem type
当我尝试告诉使用“ -t自动”,我得到相同的输出:
$ sudo mount -t auto file.img test
mount: you must specify the filesystem type
$ xxd -a N150R-V1.0.0.5_1.0.1.img | head
0000000: 6465 7669 6365 3a4e 3135 3052 0a76 6572 device:N150R.ver
0000010: 7369 6f6e 3a56 312e 302e 302e 355f 312e sion:V1.0.0.5_1.
0000020: 302e 310a 7265 6769 6f6e 3a0a 0000 0000 0.1.region:.....
0000030: 0000 0000 0000 0000 0000 0000 0000 0000 ................
*
0000070: 0000 0000 0000 0000 0000 0000 0000 1232 ...............2
0000080: 3036 3132 d9cf 3fc1 5297 2c87 0033 eed0 0612..?.R.,..3..
0000090: 9f05 0000 9f05 0000 9b63 9e62 0505 0700 .........c.b....
00000a0: 4e31 3530 522d 5631 2e30 2e30 2e35 5f31 N150R-V1.0.0.5_1
00000b0: 2e30 2e31 0000 0000 0000 0000 0000 0000 .0.1............
binwalk提供以下信息:
$ binwalk N150R-V1.0.0.5_1.0.1.img
DECIMAL HEXADECIMAL DESCRIPTION
--------------------------------------------------------------------------------
192 0xC0 Squashfs filesystem, big endian, version 3.0, size: 3403472 bytes, 1024 inodes, blocksize: 65536 bytes, created: 2013-11-28 11:44:07
fdisk(在OS X上)返回:
$ fdisk N150R-V1.0.0.5_1.0.1.img
Disk: N150R-V1.0.0.5_1.0.1.img geometry: 26/4/63 [6656 sectors]
Signature: 0x95EB
Starting Ending
#: id cyl hd sec - cyl hd sec [ start - size]
------------------------------------------------------------------------
1: 02 648 41 48 - 107 220 28 [ 275573942 - 2530152094] XENIX /
2: C9 165 158 8 - 311 15 40 [1825336399 - 3160300718] <Unknown ID>
3: 12 606 153 51 - 988 164 42 [3547124620 - 4171149652] Compaq Diag.
4: BD 479 182 60 - 173 155 40 [2642289636 - 1573814809] <Unknown ID>
可以我得到一些有关如何从img中提取文件的指导?我可以访问OS X和Ubuntu。
链接到固件
编辑1:
sasquatch的结果:
$ sasquatch N150R-V1.0.0.5_1.0.1.img
SquashFS version [24373.11825] / inode count [1312449891] suggests a SquashFS image of a different endianess
Non-standard SquashFS Magic: devi
Reading a different endian SQUASHFS filesystem on N150R-V1.0.0.5_1.0.1.img
Filesystem on N150R-V1.0.0.5_1.0.1.img is (13663:12590), which is a later filesystem version than I support!
#1 楼
SquashFS映像是具有LZMA压缩的3.0版; LZMA压缩直到4.0版才正式添加到SquashFS中,因此标准的SquashFS工具将无法识别它。但是,sasquatch提取它对我来说还不错。实际上,如果您安装了sasquatch,则使用
-e
选项运行binwalk时,最新版本的binwalk将使用它自动提取文件系统。UPDATE:
您需要给
sasquatch
SquashFS映像,而不是原始固件映像。首先,使用dd
解压缩它,然后对解压缩的文件运行sasquash
:$ dd if=N150R-V1.0.0.5_1.0.1.img bs=192 skip=1 of=fs.squashfs
$ sasquatch fs.squashfs
最新版本的
binwalk
使用-e
选项自动为您完成此操作:$ binwalk -e N150R-V1.0.0.5_1.0.1.img
您也可以强制旧版本的
binwalk
也使用sasquatch
:$ binwalk --dd='squashfs:squashfs:sasquatch %e' N150R-V1.0.0.5_1.0.1.img
#2 楼
如果您不想安装其他工具,则如果您剥去标题(binwalk谈到的前192个字节),它可能会安装:dd if=file.img of=file.squashfs bs=192 skip=1
sudo mount file.squashfs test/
编辑:
由于路由器似乎有一个大端Mips处理器,所以安装对我也不起作用。但是以下内容适用于Ubuntu 14.04:
apt-get install liblzo2-dev
git clone https://github.com/devttyS0/sasquatch
make
sasquatch /path/to/file.squashfs
(显然,您还需要安装
git
,make
,gcc
。liblzo2-dev
是我之前未安装的唯一依赖项。我不得不使用上面显示的与dd
一起准备的文件,而不是原始的.img)。如果无法正常工作,请使用以下提取的文件:
https://mega.co.nz/#!xFoQkZRB!lcdUdDVGKsgEeu8Q5HnL3BSBXJKCHe0jZkGwOyTSxlQ
评论
这对我不起作用。不过谢谢你
– RNikoopour
2014年11月28日在22:41
即使映像的字节序很小,但不幸的是由于非标准压缩,它仍可能无法挂载。不幸的是,嵌入式SquashFS映像往往是PITA。
–devttys0
2014年11月29日23:31
评论
我已经用sasquatch的输出更新了主要帖子。这没用= /
– RNikoopour
2014年11月28日在22:44
您需要提供sasquatch SquashFS映像,而不是原始固件映像。我已经详细更新了上面的答案。
–devttys0
2014年11月29日23:29
非常感谢。非常感谢您的帮助!您能解释一下dd命令如何提取文件图像吗?
– RNikoopour
2014年11月30日在18:44
上面的dd命令只是将数据从输入文件('if = N150R-V1.0.0.5_1.0.1.img')复制到您选择的某些输出文件('of = fs.squashfs')。根据binwalk的说法,您想开始从偏移量192(这是squashfs映像的起始位置)开始复制字节。因此,只需将复制块大小设置为192字节('bs = 192'),并告诉dd跳过第一个块,即跳过前192个字节('skip = 1')。
–devttys0
2014年11月30日19:43
这种解释是完美的。非常感谢你的帮助!
– RNikoopour
2014年11月30日19:58