sshfs монтирует удалённую папку, gocryptfs — зашифрованный контейнер, mergerfs — несколько дисков разом. archivemount монтирует сам файл архива: .tar.gz, .zip, .cpio, ISO9660-образ — и внутри точки монтирования это обычное дерево каталогов, без распаковки на диск и без tar xf во временную папку.
Запуск максимально простой — архив и точка монтирования, остальное — стандартные опции FUSE:
mkdir mnt
archivemount project-backup.tar.gz mnt
ls mnt
# файлы из архива видны как обычные
umount mnt
Главная особенность — что происходит при записи. libarchive, на котором построен archivemount, не умеет править архив на месте, поэтому по умолчанию (без -o readonly) точка монтирования открыта на запись, но реальная пересборка архива происходит целиком только в момент umount — со старым файлом, переименованным в .orig. Это значит: пока точка смонтирована, изменения живут только в памяти/временных файлах, а если между правкой и umount сервер перезагрузится или процесс убьют — изменения потеряны, а сам проект в README прямо предупреждает, что гарантий сохранности данных нет. Для чего-то важнее черновика стоит смонтировать с -o readonly и просто читать.
Ещё один нюанс: libarchive умеет читать форматов заметно больше, чем умеет писать обратно — например, Zip читается нормально, а вот обратно при пересборке archivemount может сконвертировать архив в ustar или pax-interchange, то есть на выходе после правки через mnt это уже не тот Zip, что был на входе. Если формат архива на выходе принципиален — опция -o nobackup уберёт .orig-копию, но сам факт конвертации формата она не отменяет.
Если из архива нужен не целиком, а один каталог — -o subtree=<regex> монтирует только подходящую часть дерева, обрезая остальной путь:
archivemount -o subtree='^logs/' project-backup.tar.gz mnt
#linux #fuse #archivemount
