如何挂载这个 .img 文件并浏览其内容?

如何挂载这个 .img 文件并浏览其内容?

我对安装固件映像并浏览其内容感兴趣。我尝试使用该mount命令执行此操作,但收到一些错误(“您必须指定文件系统类型”)。但我认为这里可能还存在其他问题。我相信以下信息应该是我完成此任务所需的全部信息,我只是不确定如何处理这些信息。

如何挂载这个 .img 文件并浏览其内容?

跑步file

/root/Downloads/FW_WRT1900AC_1.1.8.164461_prod.img: u-boot legacy uImage, Linux-3.2.40, Linux/ARM, OS Kernel Image (Not compressed), 3856080 bytes, Thu Nov 20 13:45:36 2014, Load Address: 0x00008000, Entry Point: 0x00008000, Header CRC: 0x5CAE7F84, Data CRC: 0xFCF78543

跑步fdisk -l

Disk /root/Downloads/FW_WRT1900AC_1.1.8.164461_prod.img: 26 MB, 26345472 bytes
255 heads, 63 sectors/track, 3 cylinders, total 51456 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x80811005

Disk /root/Downloads/FW_WRT1900AC_1.1.8.164461_prod.img doesn't contain a valid partition table

答案1

该文件的前 3856080 字节是内核映像。之后,就有一个文件系统映像。文件系统位于偏移量 3932160(3856080 四舍五入到下一个 128kB 的倍数);我通过检查发现了它,我不知道信息存储在图像中的位置(可能与预期设备上的擦除大小有关)。文件系统是JFFS2,这在此类设备上很常见。

JFFS2 文件系统不能直接安装在 Linux 上,因为文件系统驱动程序要求文件系统位于MTD设备。你可以在 RAM 中使用伪造的 MTD 设备解决这个限制。您需要从启动映像中提取JFFS2映像;它必须是整数个擦除块。简而言之:

modprobe mtdram total_size=32768 erase_size=128
modprobe mtdblock
<FW_WRT1900AC_1.1.8.164461_prod.img tail -c +3932161 | head -c 22413312 >/dev/mtdblock0
mount -t jffs2 /dev/mtdblock0 /mnt

或者,您可以使用这些程序jffs2dumpjffs2readerMTD实用程序

<FW_WRT1900AC_1.1.8.164461_prod.img tail -c +3932161 | head -c 22413312 >|FW_WRT1900AC_1.1.8.164461_prod.jffs2
jffs2reader FW_WRT1900AC_1.1.8.164461_prod.jffs2 >FW_WRT1900AC_1.1.8.164461_prod.contents
jffs2reader FW_WRT1900AC_1.1.8.164461_prod.jffs2 -d /
jffs2reader FW_WRT1900AC_1.1.8.164461_prod.jffs2 -f /etc/version

相关内容