壁球 3 对 4

Mos*_*ose 6 squashfs

我试图通过解压缩、编辑我的文件并再次压缩来修改固件文件。但是由于不同的 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
Run Code Online (Sandbox Code Playgroud)

修改后的文件:( 用作mksquashfs squashfs-root main-fs.test -b 64K -no-exports -no-xattrs -no-sparse -force-gid 0 -force-uid 0root)

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
Run Code Online (Sandbox Code Playgroud)

我认为问题在于超级块和/或 SQUASHFS 版本。我发现这对我们mksquashfs -2.0来说有一段时间是可能的,但是这个论点被删除了并且不会那么有用,因为我需要版本 3。

所以我的问题是:我怎样才能完全按照以前的方式重新打包我修改过的文件?此外,我修改后的文件状态compression: gzip但原始状态没有任何关于它的压缩。也许这里也有问题,但我不知道如何获得比上述更多的信息。:-(

ger*_*ijk 3

2.6.29 之前的 Linux 内核不接受 SquashFS 版本 4 文件系统(请阅读此处)。这可能是您的设备无法启动的原因。

为了构建 SquashFS v3 映像,您需要旧版本的软件包squashfs-tools。Ubuntu 的最新受支持版本(包括此版本)是旧的 Hardy 8.04 版本,其软件包可在此处获取。我认为可以在更新版本的 Ubuntu 上安装这个软件包。在安装古老的 Hardy 版本之前尝试一下。

我非常惊讶地发现 Ubuntu 刚刚通过这种非向前和非向后兼容的升级进行了就地升级。我希望在存储库中看到版本 3 和版本 4 的包。