我正在尝试通过取消压缩、编辑文件并再次压缩来修改固件文件。但是由于不同的 squashfs 类型(正如我所想的),我的设备出现了问题,该设备不接受该文件。这是我的开发盒上的输出:
原始文件:
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
修改后的文件:
(mksquashfs squashfs-root main-fs.test -b 64K -no-exports -no-xattrs -no-sparse -force-gid 0 -force-uid 0
作为根使用)
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
我认为问题出在超级块和/或 SQUASHFS 版本上。我发现这对我们来说是可能的mksquashfs -2.0
,但这个论点被删除了,并且不会那么有帮助,因为我需要版本 3。
所以我的问题是:如何才能将修改后的文件完全按照以前的样子重新打包?另外,我修改后的文件状态compression: gzip
但原始文件没有说明它的压缩。也许这也是一个问题,但我不知道如何获取比上面更多的信息。 :-(