如何在 Ubuntu 上挂载 squashfs(嵌入式 Linux)?

kol*_*lar 5 linux squashfs

我曾尝试从固件(嵌入式 linux)挂载文件系统,但在我的 Ubuntu 12.04 机器上失败了。你能告诉我如何挂载那个文件系统吗?(或失败的可能原因)。详情如下。

细节

Step1) 使用binwalk 分析固件显示squashfs 文件系统的起始地址。因此,我使用“dd”linux 实用程序生成了 squashfs 文件系统。

Step2) 使用“binwalk ./fs.img”命令分析生成的文件系统显示:

Squashfs filesystem, big endian, lzma signatrue, version 3.0, size: XXXXXXX bytes, XXX inodes, blocksize: XXXXX bytes, created: xxxx
Run Code Online (Sandbox Code Playgroud)

Step3) “mount -o loop ./fs.img ./fs”失败。“dmesg | tail”显示:

SQUASHFS error: Can't find a SQUASHFS superblock on loop1
Run Code Online (Sandbox Code Playgroud)

如何挂载该文件系统?仅供参考,我从“sourceforge.net/procjects/squashfs”安装了最新的带有 lzma 支持的 squashfs 工具。

小智 3

我遇到了同样的问题。由于我的配置不支持zlib,因此我使用了xz压缩,因为我的配置支持它。以下工作有效:

mksquashfs source source.sqfs -comp xz
mount source.sqfs destination
Run Code Online (Sandbox Code Playgroud)