SQUASHFS 3 vs 4

5

Estou tentando modificar um arquivo de firmware, soltando-o, editando meus arquivos e os comprimindo novamente. Mas eu tenho problemas com o dispositivo que não aceita o arquivo por causa de diferentes tipos de squashfs (como eu suponho). Aqui está a saída na minha caixa dev:

arquivo original:

user@ubuntuVM:~$ unsquashfs -s main-fs.5_0 
Reading a different endian SQUASHFS filesystem on main-fs.5_0
Found a valid big endian SQUASHFS 3:0 superblock on main-fs.5_0.
Creation or last append time Thu Aug 21 20:56:15 2008
Filesystem size 9653.75 Kbytes (9.43 Mbytes)
Block size 65536
Filesystem is not exportable via NFS
Inodes are compressed
Data is compressed
Fragments are compressed
Always_use_fragments option is not specified
Check data is not present in the filesystem
Duplicates are removed
Number of fragments 105
Number of inodes 1667
Number of uids 2
Number of gids 1

arquivo modificado: (usou mksquashfs squashfs-root main-fs.test -b 64K -no-exports -no-xattrs -no-sparse -force-gid 0 -force-uid 0 como root)

user@ubuntuVM:~$ unsquashfs -s main-fs.mod
Found a valid SQUASHFS 4:0 superblock on main-fs.mod.
Creation or last append time Mon Dec  3 14:46:07 2012
Filesystem size 9654.48 Kbytes (9.43 Mbytes)
Compression gzip
Block size 65536
Filesystem is not exportable via NFS
Inodes are compressed
Data is compressed
Fragments are compressed
Always_use_fragments option is not specified
Xattrs are not stored
Duplicates are removed
Number of fragments 105
Number of inodes 1667
Number of ids 1

Eu acho que o problema é o superbloco e / ou a versão SQUASHFS. Eu achei que era possível para nós mksquashfs -2.0 por algum tempo, mas esse argumento foi removido e não seria tão útil porque eu preciso da versão 3.

Então, minha pergunta é exatamente: Como posso conseguir reempacotar meus arquivos modificados exatamente como eram antes? Além disso, meu arquivo modificado declara compression: gzip , mas o original não informa nada sobre sua compactação. Talvez aqui também esteja um problema, mas não sei como obter mais informações do que as citadas acima. : - (

    
por Mose 03.12.2012 / 15:08

1 resposta

3

Os kernels Linux anteriores a 2.6.29 não aceitam sistemas de arquivos SquashFS versão 4 ( leia aqui ). Esta provavelmente será a causa do seu dispositivo não inicializar com ele.

Para criar uma imagem do SquashFS v3, você precisará de uma versão mais antiga do pacote squashfs-tools . A última versão suportada do Ubuntu, incluindo esta, é a antiga versão Hardy 8.04 com o pacote disponível aqui . Eu acho que é possível apenas instalar este pacote em uma versão mais recente do Ubuntu. Tente isso antes de instalar o antigo lançamento do Hardy.

Estou bastante surpreso ao ver que o Ubuntu acabou de atualizar in-loco com esta atualização não compatível e não compatível com versões anteriores. Eu esperava ver os pacotes das versões 3 e 4 nos repositórios.

    
por 03.12.2012 / 20:31

Tags