Montar arquivo zip como um sistema de arquivos somente leitura

24

Estou procurando uma maneira de montar um arquivo ZIP como um sistema de arquivos, para que eu possa acessar de maneira transparente os arquivos dentro do arquivo. Eu só preciso de acesso de leitura - o ZIP não será modificado. O consumo de RAM é importante, pois é para um sistema incorporado (com recursos limitados). Quais são as opções disponíveis?

Grodriguez
fonte
Você já tentou a mount -o loopopção?
Sree
Sim, a questão é qual sistema de arquivos usar.
Grodriguez
Se você estiver procurando por um sistema de arquivos compactado somente leitura, considere o uso de squashfs.
WGH
Não estou procurando "um sistema de arquivos somente leitura compactado" de maneira genérica. Estou procurando especificamente uma maneira de montar um arquivo zip como um sistema de arquivos somente leitura.
Grodriguez 02/03
Veja SU: 367540 para uma pergunta semelhante no WinNT.
N611x007

Respostas:

26

fuse-zip é uma opção e afirma ser mais rápido que a concorrência.

# fuse-zip -r archivetest.zip /mnt

archivemount é outro:

# archivemount -o readonly archivetest.zip  /mnt

Ambos provavelmente precisarão abrir todo o arquivo, portanto não serão particularmente rápidos. Você já pensou em extrair o ZIP para um HDD ou pen drive USB e simplesmente montar esse somente leitura?

garethTheRed
fonte
1
A velocidade não é um problema, mas o consumo de RAM é. USB ou HDD não é uma alternativa. Este é um sistema incorporado sem portas HDD ou USB.
Grodriguez
Suponho que a conclusão é que você precisará testá-lo em sua situação específica e ver qual, se houver, é o melhor para o uso da memória. Eu teria pensado que depende do tamanho do seu arquivo e também quantos arquivos estão dentro desse arquivo. Se você tiver controle de como o arquivo ZIP é criado, considere um formato diferente, como uma imagem de disco bruto que pode ser montada em loop - que pode economizar RAM.
fácil fazer o download
Sim, vou ter que testar. Mas antes disso, eu queria saber se os outros tinham alguma experiência que pudessem compartilhar :) (BTW, eu não tenho controle sobre o arquivo ZIP).
Grodriguez
2
@Grodriguez Com um arquivo interno de 1 GB +, fuse-zipo uso de memória de 1 GB +. Para o mesmo, archivemounto uso de mem ainda era baixo.
N611x007
7

Você pode usar o fuse-zip para montar o zip como somente leitura.

1 - Instale o fusível zip no seu sistema.

UBUNTU

sudo apt-get install fuse-zip

CENTOS / REDHAT / FEDORA

yum install fuse-zip

2 - Execute o comando abaixo para montar o zip como somente leitura.

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

3 - Use o comando abaixo para desmontar o diretório

fusermount -u /path/to/mount/directory
Vaibhav Panmand
fonte
Obrigado. Existe alguma informação disponível sobre o consumo de memória? O que funciona bem na área de trabalho pode não funcionar tão bem em ambientes com recursos limitados.
Grodriguez
Não há menções ao consumo de memória lá.
Grodriguez
O código do Google foi fechado, o link acima foi movido para bitbucket.org/agalanin/fuse-zip/wiki/PerformancePage
silpol