mirror of
https://github.com/torarnv/sparsebundlefs.git
synced 2026-03-03 18:28:07 +01:00
79 lines
3.1 KiB
Markdown
79 lines
3.1 KiB
Markdown
sparsebundlefs
|
|
================
|
|
|
|
FUSE filesystem for reading Mac OS sparse-bundle disk images.
|
|
|
|
Mac OS X v10.5 (Leopard) introduced the concept of sparse-bundle disk images, where the data is
|
|
stored as a collection of small, fixed-size *band*-files instead of as a single monolithic file. This
|
|
allows for more efficient backups of the disk image, as only the changed bands need to be
|
|
stored.
|
|
|
|
One common source of sparse-bundles is Mac OS' backup utility, *Time Machine*, which stores
|
|
the backup data within a sparse-bundle image on the chosen backup volume.
|
|
|
|
This software package implements a FUSE virtual filesystem for read-only access to the sparse-bundle, as if it was a single monolithic image.
|
|
|
|
Installation
|
|
------------
|
|
|
|
Clone the project from GitHub:
|
|
|
|
git clone git://github.com/torarnv/sparsebundlefs.git
|
|
|
|
Or download the latest tar-ball:
|
|
|
|
curl -L https://github.com/torarnv/sparsebundlefs/tarball/master | tar xvz
|
|
|
|
Install dependencies:
|
|
|
|
- [OSXFUSE][osxfuse] on *Mac OS X*
|
|
- `apt get install libfuse-dev libfuse2 fuse-utils` on Debian-based *GNU/Linux* distros
|
|
- Or install the latest FUSE manually from [source][fuse]
|
|
|
|
Compile:
|
|
|
|
make
|
|
|
|
**Note:** If your FUSE installation is in a non-default location you may have to
|
|
export `PKG_CONFIG_PATH` before compiling.
|
|
|
|
Usage
|
|
-----
|
|
|
|
To mount a `.sparsebundle` disk image, execute the following command:
|
|
|
|
sparsebundlefs [-o options] sparsebundle mountpoint
|
|
|
|
For example:
|
|
|
|
sparsebundlefs ~/MyDiskImage.sparsebundle /tmp/my-disk-image
|
|
|
|
This will give you a directory at the mount point with a single `sparsebundle.dmg` file.
|
|
|
|
You may then proceed to mount the `.dmg` file using regular means, *eg.*:
|
|
|
|
mount -o loop -t hfsplus /tmp/my-disk-image/sparsebundle.dmg /mnt/my-disk
|
|
|
|
This will give you read-only access to the content of the sparse-bundle disk image.
|
|
|
|
### Reading Time Machine backups
|
|
|
|
Time Machine builds on a feature of the HFS+ filesystem called *directory hard-links*. This allows multiple snapshots of the backup set to reference the same data, without having to maintain hard-links for every file in the backup set.
|
|
|
|
Unfortunately this feature is not yet part of `mount.hfsplus`, so when navigating the mounted Time Machine image these directory hard-links will show up as empty files instead of directories. The real data still lives inside a directory named `.HFS+ Private Directory Data\r` at the root of the volume, but making the connection from a a zero-sized file to its corresponding directory inside the secret data location is a bit cumbersome.
|
|
|
|
Luckily there's another FUSE filesystem available, [tmfs][tmfs], which will allow you to re-mount an existing HFS+ volume and then navigate it as if the directory hard-links were regular directories. The syntax is similar to sparsebundlefs:
|
|
|
|
tmfs /mnt/tm-hfs-image /mnt/tm-root
|
|
|
|
License
|
|
-------
|
|
|
|
This software is licensed under the [BSD two-clause "simplified" license][bsd].
|
|
|
|
|
|
|
|
[osxfuse]: http://osxfuse.github.com/ "Fuse for OSX"
|
|
[fuse]: http://fuse.sourceforge.net/ "FUSE"
|
|
[bsd]: http://opensource.org/licenses/BSD-2-Clause "BSD two-clause license"
|
|
[tmfs]: https://github.com/abique/tmfs "Time Machine File System" |