Skip to content

t-w/fuseadf

Repository files navigation

      _/_/                                                _/      _/_/   
   _/      _/    _/    _/_/_/    _/_/      _/_/_/    _/_/_/    _/        
_/_/_/_/  _/    _/  _/_/      _/_/_/_/  _/    _/  _/    _/  _/_/_/_/     
 _/      _/    _/      _/_/  _/        _/    _/  _/    _/    _/          
_/        _/_/_/  _/_/_/      _/_/_/    _/_/_/    _/_/_/    _/

fuseadf is a simple libfuse-based filesystem allowing to mount a volume of an ADF image (of an Amiga floppy or a hard disk) and to browse/read/write files and directories it contains.

Volumes (partitions) can be chosen with -p option (not needed for images with one volume only, ie. floppy disk images). By default, it mounts volumes in read-write mode, for read-only -o ro option must be used.

Usage

fuseadf [options] <image_adf> <mount point>

where options can be:

  • -p partition - partition/volume number (0-10), default: 0
  • -l logfile - enable logging and (optionally) specify logging file, default log file: fuseadf.log
  • -i - ignore checksum errors
  • -h - show help info
  • -V - show version

Additionally, some FUSE options can be used (for details see FUSE documentation):

  • -o mount_options - list of mount options (ie. ro for read-only mount), see: man fusermount
  • -f - run in foreground (do not daemonize)
  • -d - run in foreground with more verbose (debug) info
  • -s - single-threaded (enforced - no need to provide it)

More info

  • Building, testing and installation - see INSTALL.
  • Authors/contributions - see AUTHORS.
  • License - see COPYING.

Notes

  • It should be considered a (working) prototype, so please beware of, for instance, security implications, especially if you get the disk images from uncertain sources.

  • It relies on the ADFlib for accessing ADF disk images. In particular, for the supported filesystems, check information what is supported by the ADFlib. At the moment of writing, all classic AmigaDOS filesystems (all versions of OFS and FFS) are supported.

  • It might not allow to mount images with inconsistent state, in particular in read-write mode. In such case, try to mount it read-only (if you only need to read it) or repair the image, either on an Amiga emulator with native tools, or with some foreign ones (for instance - inconsistency in volume's block allocation bitmap can be rebuilt with adf_bitmap utility from the ADFlib).

  • It should be used only in FUSE's single-threaded mode(!). Running in multithreaded mode, with multiple processes accessing the filesystem in parallel, may result in corrupted data, so beware (esp. when writing data).

    (Since 0.3, the FUSE's single-threaded mode is enforced, adding -s is no longer needed).

Protection flags

Since version 0.6 FUSEADF supports mapping AmigaDOS to client (fusefs host OS) permissions. The implementation allows to manage the 3 permissions which are common with *nix systems: read, write and execute.

For now, the implementation is limited to setting these permissions for user/owner only (not touching "group" and "others" on ADF volume).

Note that adffs presents these permissions as those from user (just replicates for group and other, with an exception of "write" which is set only for the user).

Since, in practice, it was rather uncommon to use OFS/FFS disks in multiuser environment, this is sufficient. However, for completeness, full support for "group" and "other" permissions will be added.

The remaining permissions:

  • D (delete), A (archived), P (pure command), S (script), H (hold) probably won't be implemented (they are not present/available on clients, maily *nix-like).

The implementation allows to set/unset permissions eg. with chmod command with u+/- switch (eg. chmod u+rx myfile, chmod u-w myfile). Setting the remaining (g and o) has no effect.

Related websites and tools: