| .gitignore | ||
| _mount-impl.sh | ||
| LICENSE | ||
| README.md | ||
| setup-mount.sh | ||
fuse-archive-mounter
name is tentative. suggestions welcome
what?
wrapper around overlayfs, fuse-archive and fuse that mount archives, plus an overlayfs on top mounted somewhere else to be writable.
why?
i have over 80 GiB of games inside .*\.(zip|rar|7z|tar\..+) archives. i don't delete the archives (in case i fuck up anything,) unless i despise said game.
that means i basically have to spend 2x my disk space for a single game. with this, duplicate disk space usage is gone and my disk quota is happy.
where?
the scripts should work on most linux distros, though it will need some manual changes to work for most distros as well, details below.
i use nixos, so it has been imbued with nix specific things like nix-shell. for the few special snowflakes out there that also use nix, it's practically ready to go.
it's not going to work on macos or windows, because neither platform know what overlayfs is, one doesn't even know what fuse is.
at the bare minimum, you will need a system that: has a reasonably recent verison of bash, support for fuse and has the required dependencies installed.
dependencies
- fuse-archive
- fuse-overlayfs
- psmisc
arch linux
$ sudo pacman -Syu fuse-overlayfs psmisc
$ paru -Syu fuse-archive
# or you know, do a paru one-liner, it's all up to you.
how?
-
copy both sh files somewhere.
chmod +xif needed.you can edit the filenames however you like. just make sure to update existing
mount.shfiles (if any) andsetup-mount.shto point at the correct file. -
edit
setup-mount.sh:
- set
DEST_ARCHIVE_DIRto the place where you want your archive files to be moved to during setup. - set
IMPL_SCRIPT_LOCATIONto the full path of_mount-impl.sh. if you know what you're doing, do it your way.
-
(only for non-nix users) modify
_mount-impl.sh, replace the shebang with your regular bash, i.e.#!/usr/bin/bash -
profit. run
setup-mount.sh theArchiveNameWithAFuckedUpZipFilenameEncoding.zip.tar.gz.xz.7z.rar, and it'll do stuff. check the on-screen prompt
doesn't work?
there are a few things that fuse assumes or requires for things to work. here's a list of scenario(s) that i've discovered that doesn't work.
- preceding mounts are not mounts on concrete devices or doesn't support memcpy
- i am not actually sure if either are the case, but on nixos sometimes my
/becomes atmpfsfor whatever reason. that won't work and fuse will throw up. relog usually fixes this.
- i am not actually sure if either are the case, but on nixos sometimes my
if it says setup-mount.sh: command not found, i hope you remember where you put the scripts.
improvements?
many improvements can be made, but i cannot be arsed at the moment. things include:
- allow configuration of
fuse-{overlayfs,archive}since not everyone has 64G of ram or enough/tmpspace. - global configuration for things that need configuration
- allow layering more stuff like bepinex for more storage savings