pnafs
PNA-FS
Portable-Network-Archive Filesystem
PNA-FS is a virtual filesystem that allows users to mount their PNA file and interact with it as a regular disk partition.
Requirements
PNA-FS requires the stable branch of the Rust programming language, which can be installed following the instructions on rustup.rs. If you already have Rust installed, make sure that it is updated to the latest version (≥1.76):
$ rustup update stable
MacOS
On MacOS, PNA-FS requires macfuse and pkg-config:
$ brew install pkg-config; brew install --cask macfuse
Ubuntu
On Ubuntu, PNA-FS requires libfuse-dev and pkg-config:
sudo apt-get install -y libfuse-dev pkg-config
SUSE
sudo zypper install -y fuse-devel fuse rust pkgconf-pkg-config
Other linux distros
Make sure you have pkg-config
and the fuse
library installed. These are usually found in the package repositories of major distributions.
FreeBSD
Rust can be installed via the lang/rust
port. You will need to install sysutils/fusefs-libs
for the cairo install
command to succeed.
Installation
After all requirements are met, PNA-FS can be installed using cargo
:
$ cargo install --git https://github.com/Portable-Network-Archive/fs.git
This will generate the pnafs
binary in $HOME/.cargo/bin
. Make sure that this directory is in your PATH
variable: export PATH=$PATH:$HOME/.cargo/bin
Usage
Mount archive:
$ pnafs mount archive.pna /mnt/pnafs/
Troubleshooting
Could not mount to $mountpoint
: Operation not permitted (os error 1)
This error occurs when user_allow_other
is not set in /etc/fuse.conf
or the file has improper permissions. Fix by running (as root):
# echo 'user_allow_other' >> /etc/fuse.conf # chmod 644 /etc/fuse.conf # sudo chown root:root /etc/fuse.conf