Смонтировать zip-файл как файловую систему только для чтения

24

Я ищу способ смонтировать ZIP-архив как файловую систему, чтобы иметь прозрачный доступ к файлам в архиве. Мне нужен только доступ для чтения - ZIP не будет изменен. Потребление ОЗУ важно, так как это для встроенной системы (с ограниченными ресурсами). Какие есть варианты?

Grodriguez
источник
Вы пробовали mount -o loopвариант?
Сри
Да, вопрос в том, какую файловую систему использовать.
Гродригес
Если вы ищете сжатую файловую систему только для чтения, подумайте об использовании squashfs.
WGH
Я не ищу "сжатую файловую систему только для чтения" в общем виде. Я специально ищу способ смонтировать zip-файл в виде файловой системы только для чтения.
Гродригес
См. SU: 367540 для аналогичного вопроса о WinNT.
n611x007

Ответы:

26

fuse-zip это вариант и утверждает, что быстрее, чем у конкурентов.

# fuse-zip -r archivetest.zip /mnt

archivemount Другой:

# archivemount -o readonly archivetest.zip  /mnt

Оба, вероятно, должны будут открыть весь архив, поэтому не будут особенно быстрыми. Рассматривали ли вы заранее распаковку ZIP на HDD или USB-флешку и просто монтирование только для чтения?

garethTheRed
источник
1
Скорость не проблема, но потребление оперативной памяти есть. USB или HDD не является альтернативой. Это встроенная система без жесткого диска или портов USB.
Гродригес
Я предполагаю, что суть в том, что вам нужно протестировать его в вашей конкретной ситуации и посмотреть, какой из них, если таковой имеется, лучше всего подходит для использования памяти. Я бы подумал, что это зависит от размера вашего архива, а также от количества файлов в этом архиве. Если у вас есть контроль над тем, как создается ZIP-файл, вы можете рассмотреть другой формат, такой как необработанный образ диска, который можно смонтировать в цикле - это может сэкономить оперативную память.
garethTheRed
Да, мне придется проверить. Но до этого я хотел знать, есть ли у других опыт, которым они могут поделиться :) (Кстати, я не могу контролировать ZIP-файл).
Гродригес
2
@Grodriguez С внутренним файлом fuse-zipобъемом 1 ГБ + использование памяти составило 1 ГБ +. Для того же самого, archivemountиспользование мема было все еще низким.
n611x007
7

Вы можете использовать fuse-zip для монтирования zip только для чтения.

1 - Установите fuse-zip в вашей системе.

UBUNTU

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
Вайбхав Панманд
источник
Спасибо. Есть ли какая-либо информация о потреблении памяти? То, что хорошо работает для настольных компьютеров, может не работать так хорошо в условиях ограниченных ресурсов.
Гродригес
1
code.google.com/p/fuse-zip/wiki/PerformancePage
Вайбхав Панманд
Никаких упоминаний о потреблении памяти нет.
Гродригес
Код Google закрыт, ссылка выше перемещена на bitbucket.org/agalanin/fuse-zip/wiki/PerformancePage
silpol