¿Cómo puedo montar este file .img y explorar su contenido?

Estoy interesado en montar una image de firmware y explorar sus contenidos. Intenté esto con el command mount pero recibí algunos errores ("debe especificar el tipo de sistema de files"). Sin embargo, creo que puede haber otros problemas aquí. Creo que la información a continuación debería ser todo lo que necesito para lograr esto, no estoy seguro de qué hacer con esta información.

¿Cómo puedo montar este file .img y explorar su contenido?

Ejecutando 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 

Ejecutando 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 

Los primeros 3856080 bytes de este file son una image del kernel. Después de eso, hay una image del sistema de files. El sistema de files está en el desplazamiento 3932160 (3856080 networkingondeado al siguiente múltiplo de 128kB); Lo encontré por inspección, no sé dónde está almacenada la información en la image (puede estar relacionada con el tamaño de borrado en el dispositivo previsto). El sistema de files es JFFS2 , que es común en tales dispositivos.

Los filesystems JFFS2 no se pueden montar directamente en Linux, porque el controller del sistema de files requiere que el sistema de files esté encima de un dispositivo MTD . Puede utilizar un dispositivo MTD falso en la RAM para evitar esta limitación. Necesita extraer la image JFFS2 de la image de arranque; tiene que ser un número integer de bloques de borrado. En una palabra:

 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 

Alternativamente, puede usar los progtwigs jffs2dump y jffs2reader de las utilidades de MTD .

 <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