TimeMachineのバックアップをLinuxから見る方法

sparsebundlefs を使ってがんばります。

mountしたりするのでrootでの作業です。

とりあえず作業用ディレクトリへ行って、使うツールの下準備

$ git clone https://github.com/torarnv/sparsebundlefs.git
$ cd sparsebundlefs
$ make

timemachineのsparsebundleをマウントしてdmgを見れるようにする。

$ mkdir dmg
$ ./sparsebundlefs /YOUR_PATH_TO_SPARSEBUNDLE ./dmg

dmgをマウントする。うまくいかない時は、parted使ってoffsetとか確認してloopインターフェス作ってマウントする。

$ mkdir tm
$ mount -o loop -t hfsplus ./dmg/sparsebundle.dmg ./tm
# うまくいかない時
$ parted ./dmg/sparsebundle.dmg unit B print
番号  開始        終了           サイズ         ファイルシステム  名前                  フラグ
 1    20480B      209735679B     209715200B     fat32             EFI System Partition  boot
 2    209735680B  274743668735B  274533933056B  hfsx              disk image
# offset と sizelimit をそれぞれpartedの結果に合わせる
$ losetup -f ./dmg/sparsebundle.dmg --offset 209735680 --sizelimit 274533933056 --show
/dev/loop0
$ mount -t hfsplus /dev/loop0 ./tm

救い出したいファイルを探す。

$ cd ./tm/Backups.backupdb/YOUR_MACHINE_NAME/DATE_OF_BACKUP/OSX/Users/USER_NAME/
$ ls RESQUE_DIR
-r--r--r-- 30590485 30610467 root 0 10月 19 02:19 RESQUE_DIR
# 左側がハードリンクのIDになっているので実体のあるディレクトリへ移動
# ./tm/.HFS+\ Private\ Directory\ Data$'\r'/dir_HARDLINK_ID に実体のディレクトリがある
$ cd ../../../../../../.HFS+\ Private\ Directory\ Data$'\r'/dir_30590485
$ ls RESQUE_FILE
RESQUE_FILE
# 複数階層ある場合には、上記の作業を繰り返して実体のある所までいく
$ cp RESQUE_FILE /tmp/

あと片付け

$ cd WORKING_DIR/sparsebundlefs
$ umount ./tm
$ losetup -d /dev/loop0
$ umount ./dmg

こんな感じで、救出。OSXがあれば、普通にGUIからできるけど、Linuxでやろうとすると激しくしんどい。

コメントする

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください