Skip to content
Apple's Time Machine fuse read only file system
C++
Latest commit a5e201f Jun 30, 2013 @abique Merge pull request #13 from rocallahan/master
Add support for readlink and make getattr use lstat, so symbolic links are reflected correctly
Failed to load latest commit information.
src Add support for readlink and make getattr use lstat, so symbolic link… Jun 30, 2013
AUTHORS
CMakeLists.txt
ChangeLog Update ChangeLog Mar 12, 2013
LICENSE change license from LGPLv3 to MIT Mar 21, 2012
README.markdown

README.markdown

TMFS

__/\\\\\\\\\\\\\\\___/\\\\____________/\\\\___/\\\\\\\\\\\\\\\______/\\\\\\\\\\\___
 _\///////\\\/////___\/\\\\\\________/\\\\\\__\/\\\///////////_____/\\\/////////\\\_
  _______\/\\\________\/\\\//\\\____/\\\//\\\__\/\\\_______________\//\\\______\///__
   _______\/\\\________\/\\\\///\\\/\\\/_\/\\\__\/\\\\\\\\\\\________\////\\\_________
    _______\/\\\________\/\\\__\///\\\/___\/\\\__\/\\\///////____________\////\\\______
     _______\/\\\________\/\\\____\///_____\/\\\__\/\\\______________________\////\\\___
      _______\/\\\________\/\\\_____________\/\\\__\/\\\_______________/\\\______\//\\\__
       _______\/\\\________\/\\\_____________\/\\\__\/\\\______________\///\\\\\\\\\\\/___
        _______\///_________\///______________\///___\///_________________\///////////_____

Time Machine File System is a read-only virtual filesystem which helps you to read your Apple's time machine backup.

This filesystem does not targets performances, it has been written for a friend who has lost his macbook and wants to recover its data on Linux.

It's actually not perfect, feel free to report bugs or suggestions at [https://github.com/abique/tmfs/issues][https://github.com/abique/tmfs/issues].

Enjoy!

How to use it?

First you have to mount your HFS partition, by doing something like:

mount /dev/sdXX /mnt/hfs-root

Then as root run:

tmfs /mnt/hfs-root /mnt/tm-root -ouid=$(id -u),gid=$(id -g),allow_other

Then as a normal user, go to the directory /mnt/tm-root/ and enjoy your data! :-)

Dependancies

  • c++
  • cmake >= 2.8
  • boost >= 1.42.0 (earlier versions may also work, but are untested)
  • fuse

How to build and install it?

Manually, run these commands:

mkdir build
cd build
cmake -DCMAKE_INSTALL_PREFIX=/usr/local ..
make
DESTDIR=install-test make install

Then if the installation looks ok to you in install-test/ do make install as root with sudo make install.

Internals

Time Machine structure:

Snapshot root: ${hfs_root}/Backups.backupdb/${comp_name}/${date}/${disk_name}/

Hardlink count equals to dir_id: ${hfs_root}/Backups.backupdb/${comp_name}/${date}/${disk_name}/.../Folder

Real folder with data: ${hfs_root}/.HFS+ Private Directory Data/dir_${dir_id}/

Our representation:

/${comp_name}/${date}/${disk_name}/${Real root}

Something went wrong with that request. Please try again.