Montando imagens JFFS2

Partições em JFFS2 são encontradas em um vasto número de sistemas embarcados. Esse post mostra como montar uma imagem JFFS2 na própria RAM. Muito útil para analisar seu conteúdo de firmwares.

O sistema de arquivos JFFS2 não permite que seja montado um através de um loop device, portanto para solucionar esse problema vamos emular um dispostivo MTD na memória RAM. O módulo que faz isso é o mtdram. Fiz o teste em um Fedora e lá todos os módulos já estavam disponíveis, assim dê um modprobe em algum dos módulos descritos logo abaixo e veja se seu sistema possui. Caso seja necessário compilar o kernel, é preciso ativar no .config as opções:

CONFIG_MTD=m
CONFIG_MTD_BLOCK=m
CONFIG_MTD_MTDRAM=m

Vamos ao que interessa:

modprobe mtd
modprobe mtdblock
modprobe mtdram total_size=10240 erase_size=128
dd if=imagem.jffs2 of=/dev/mtdblock0
mount -t jffs2 /dev/mtdblock0 /diretório-qualquer

O prático dessa história é que podemos definir o tamanho total do dispositivo MTD bem como o tamanho do erease block. Também há como deixar pré-definido no kernel esses tamanhos.

Obs. Não esqueça de habilitar o suporte ao jffs2 para fazer os testes🙂

Update: Se houver a necessidade de converter uma imagem no formato big endian para little endian (principalmente para montar em máquinas x86) utilize o comando jffs2dump.

jffs2dump -b big_endian.img -e new_little_endian.img

2 Respostas

  1. Oi

    O JFFS tem dependência de byte order, isto é, numa plataforma x86 (little endian) ou num ARM (muitos big endian), o conteúdo acaba sendo diferente. Eu lembro de ter tido problemas ao tentar montar um JFFS big endian numa plataforma little endian. Por acaso sabem se isto pode acontecer ainda ?

    Marcelo

  2. Bem colocado. Todos os meus testes foram em imagens little endian: x86 e SH.
    Fazendo um teste rápido, criando uma imagem JFFS2 big endian constatei o problema. Vou procurar alguma resolução. Embora fique a solução que você já sugeriu, de montá-la na ATNGW100🙂

Deixe uma resposta

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s

%d blogueiros gostam disto: