将zip文件挂载为只读文件系统


24

我正在寻找一种将ZIP归档文件挂载为文件系统的方法,以便可以透明地访问归档文件中的文件。我只需要读取访问权限-ZIP不会被修改。RAM消耗很重要,因为这是针对(资源受限的)嵌入式系统的。有哪些可用选项?


您尝试过mount -o loop选项吗?
2014年

是的,问题是要使用哪个文件系统。
Grodriguez 2014年

如果您正在寻找压缩的只读文件系统,请考虑使用squashfs。
WGH 2015年

我不是在以通用方式寻找“压缩的只读文件系统”。我专门在寻找一种将zip文件挂载为只读文件系统的方法。
Grodriguez

有关WinNT上的类似问题,请参见SU:367540
n611x007

Answers:


26

fuse-zip 是一种选择,声称比竞争对手更快。

# fuse-zip -r archivetest.zip /mnt

archivemount 是另一个:

# archivemount -o readonly archivetest.zip  /mnt

两者都可能需要打开整个存档,因此不会特别快。您是否考虑过事先将ZIP提取到HDD或USB记忆棒并仅以只读方式安装该ZIP?


1
速度不是问题,但RAM消耗是问题。USB或HDD不能替代。这是没有HDD或USB端口的嵌入式系统。
Grodriguez 2014年

我想最重要的是,您需要在特定情况下对其进行测试,并查看哪一种(如果有的话)最适合内存使用。我以为这取决于档案的大小以及该档案中有多少文件。如果您可以控制ZIP文件的创建方式,则可以考虑使用其他格式,例如可以循环挂载的原始磁盘映像-这样可以节省RAM。
garethTheRed 2014年

是的,我必须进行测试。但是在此之前,我想知道其他人是否可以分享他们的经验:)(顺便说一句,我无法控制ZIP文件)。
Grodriguez 2014年

2
@Grodriguez具有1GB +的内部文件,其fuse-zip内存使用量为1GB +。同样,archivemount的内存使用率仍然很低。
n611x007'9

7

您可以使用fuse-zip将zip安装为只读。

1-在系统上安装保险丝拉链。

乌本图

sudo apt-get install fuse-zip

CENTOS / REDHAT / FEDORA

yum install fuse-zip

2-运行以下命令以将zip挂载为只读。

fuse-zip -o ro /path/abcd.zip /path/to/mount/directory

3-使用以下命令卸载目录

fusermount -u /path/to/mount/directory

谢谢。是否有任何有关内存消耗的信息?在资源受限的环境中,对台式机有效的方法可能无法很好地工作。
Grodriguez 2014年


那里没有提及内存消耗。
Grodriguez 2014年

Google代码已关闭,上方链接已移至bitbucket.org/agalanin/fuse-zip/wiki/PerformancePage
silpol
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.