Commands‎ > ‎

Mount

Mounts a backup directory as a read-only filesystem so that ordinary Unix commands can be used to access your backup files.  With the mount feature, you are never locked in to the HashBackup storage format: all of your historical backup data is accessible to any Unix command.  Your backup data can be directly accessed to meet legal and electronic discovery requirements.

  $ hb mount [-c backupdir] <mountpoint> [-f] [-a]

The mount command runs until the filesystem is unmounted with the fusermount -u <mountpoint> (Linux) or umount <mountpoint> (Mac/BSD) command.  When the cache-size-limit keyword is left at the default of -1, new backups can be taken while the backup directory is mounted and will show up in the mounted filesystem.  If
cache-size-limit keyword is >= 0, mount has to lock the backup directory because backup data may need to be downloaded from remote destinations.

The -a option gives all users access to the mounted backup filesystem.  Without this option, only the user mounting the backup directory has access to it; even root won't have access unless it did the mount.  Either way, standard Unix permissions are always checked on the mounted backup filesystem, keeping backup data secure.

Each backup version appears as a timestamped subdirectory of the mountpoint, YYYY-MM-DD-HHMM-r#, for example:

$ ls mnt
2013-03-28-1219-r0    2013-03-28-1219-r1    2013-03-28-1220-r2    2013-03-28-1220-r3    2013-03-28-1221-r4    latest

The directory latest includes all current files from every version.  Without -f, only the files that were actually backed up in each version will appear
within the timestamped subdirectories to make it easier to find and compare changes between versions.

The -f option makes each version appear to be a complete point in time backup.  With -f, there may be files
in the r2 subdirectory that were actually backed up in versions 0 or 1.  This can be useful to archive or export specific backup versions using other tools such as tar, cpio, rsync, etc.

All system commands should work normally within the mounted filesystem, and all of the original file attributes such as modification time, access time, extended attributes, and permissions, are preserved: you can use the Unix find command to look for files that have a certain age, use grep to search through files by keyword, use your favorite diff command to compare two versions of a file, or use the tar command to create a backup of the latest directory, exporting a complete copy of your most recent backup.

NOTES
  • ACLs will not be visible in the mounted backup filesystem on Mac & BSD systems because FUSE does not support ACLs
  • ACLs will be visible in the mounted backup filesystem on Linux systems because they are stored as extended attributes
  • The ctrl c interrupt key usually doesn't work; use ctrl \ instead, but you must still unmount the filesystem after mount quits
  • to run in the background with no output, use: $ hb mount -c backupdir mnt >/dev/null 2>&1 &
  • to run in the background with all output to mount.out, use: $ hb mount -c backupdir mnt >mount.out 2>&1 &
  • add user_allow_other to /etc/fuse.conf to use the -a option, allowing anyone to access the mount (Linux)
  • add the userid running hb mount to the fuse group to give access to the fusermount command (Linux)
  • or, chmod o+rx /bin/fusermount to enable anyone to access the fusermount command

DEPENDENCIES

  • the mount command requires that the FUSE kernel module and shared library are installed on your system
  • the FUSE library is GPL licensed, so cannot be included in the HB binary
  • on Linux and BSD, FUSE can be installed with your package manager
  • on Linux, the FUSE kernel module is usually already installed
  • the main FUSE repository is: https://github.com/libfuse/libfuse
  • for OSX, see: https://osxfuse.github.io
  • the older version of FUSE for OSX is called MacFUSE
Comments