我必须更新squashfs图像文件中的一些文件。我在Linux中找到了一个工具,但在Windows中没有。
有人能帮忙吗?
7-Zip能够打开squashfs图像并提取它们的文件。我在Windows 10上的7-Zip版本15.14[64位]上测试了这一点,并使用了一个使用xz压缩的squashfs图像。
7-Zip在创建存档时似乎不会在存档格式中列出squashfs,因此如果您想生成带有修改文件的squashfs图像,则需要查找其他位置。维基百科上的squashfs页面表明,mksquashfs和unsquashfs已被移植到某些版本的Windows(其中还提到了7-Zip)。
André的回答建议将Cygwin作为从squashfs-tools
编译和运行命令的一种方式。Linux的Windows子系统提供了另一种运行mksquashfs
和unsquashfs
的方式。在我的Windows 10系统中,Ubuntu 14.04.4
通过WSL运行,下面的命令安装了squashfs-tools
,之后mksquashfs
和unsquashfs
可用。
sudo apt install squashfs-tools
对于使用squashfs-tools
(Cygwin或WSL)的任何一种方法,7-Zip都不必用于更新squashfs图像中的文件。
unsquashfs.exe
)和"压缩"(mksquashfs.exe
)。
- 如果你没有赛格文
- 安装以下Cygwin软件包:
- 如果您运行的是32位:
gcc-core
cygwin64-gcc-core
- 如果您正在运行64位:
gcc-core
cygwin32-gcc-core
xz
liblzma5
(不确定是否需要)liblzma-devel
- 如果您运行的是32位:
- 获取最新的squashfs源
- 取消注释
squashfs-tools/Makefile
中的以下行:XZ_SUPPORT = 1
LZMA_XZ_SUPPORT = 1
- 在Cygwin控制台中,转到
squashfs-tools
目录并使用以下代码进行编译:
复制粘贴此
make EXTRA_CFLAGS="-Dlinux -DFNM_EXTMATCH='(1<<5)' -D'sigtimedwait(a,b,c)=sigwaitinfo(a,b)'"
- 使用完好的旧
make install
安装
现在您在Cygwin命令行中有了squashfs工具,就像在Linux中一样。如上所述,工具是unsquashfs.exe
和mksquashfs.exe
。
此答案的来源和学分:http://domoticx.com/bestandssysteem-squashfs-tools-software/(荷兰语,我使用谷歌翻译)