我尝试从固件(嵌入式 Linux)挂载文件系统,但在我的 Ubuntu 12.04 机器上失败了。你能告诉我如何挂载该文件系统吗? (或失败的可能原因)。详情如下。
细节
步骤1)使用binwalk分析固件显示squashfs文件系统的起始地址。因此,我使用“dd”linux实用程序生成了squashfs文件系统。
步骤2)使用“binwalk ./fs.img”命令对生成的文件系统进行分析显示:
Squashfs filesystem, big endian, lzma signatrue, version 3.0, size: XXXXXXX bytes, XXX inodes, blocksize: XXXXX bytes, created: xxxx
步骤3)“mount -o Loop ./fs.img ./fs”失败。 “dmesg | tail”显示:
SQUASHFS error: Can't find a SQUASHFS superblock on loop1
我怎样才能挂载该文件系统?仅供参考,我从“sourceforge.net/procjects/squashfs”安装了带有lzma 支持的最新squashfs-tools。
答案1
我遇到了同样的问题。由于我的配置不支持zlib
,因此我使用了xz
压缩,因为我的配置支持它。以下工作有效:
mksquashfs source source.sqfs -comp xz
mount source.sqfs destination