2011/08/16

TimeMachine が作成したバックアップファイルの中身を操作する


Timemachine はMacOS X へ標準装備されているバックアップ用アプリケーションです。
前回バックアップ取得時からの変更差分を自動でバックアップしてくれる便利なアプリケーションで、特別な操作を行うこと無くバックアップを積み重ねることが出来ます。

ネットワーク越しに接続されたディスクへTimeMachineがバックアップを行う場合、通常はsparsebundle形式が利用されます。sparsebundleなので、moutさえしてしまえば、通常のファイルシステム同様、中身を参照することが可能です。

しかし、誤って操作してしまうことを防ぐためなのでしょうか、例えroot権限でアクセスしても、ファイルの削除などはできません。この実現にはACLとMAC、2種類の制限方法を利用しています。

MacOS X上でACLを変更する為にはfsaclctlコマンドを利用しますが、残念ながらこのコマンドはSnow LeopardやLionへは付属してきません。幸いLeopardに同梱している版が利用できるようですので、それを利用することにします。

Leopardのインストールディスクからfsaclctlを取り出す方法は、Porkrind Dot Org Missivesさんの「How to get fsaclctl off your Leopard install DVD」へ詳しくまとめられています。

取り出したfsaclctlを利用して、無事にACLを除去することが出来ました。

但し、ACLを外した状態でも、相変わらずバックアップ領域内のファイル消去などはOperation not permittedエラーとなり、受け付けられません。

daily memorandum 3.0.0さんの「Time Machine ボリュームを直接操作する(2)」によれば、

どうやら Backups.backupdb という名前を見て、その下に制限をかけてるらしいということがわかりました。

とのことで、特定ディレクトリ名称に対するMACが施されているようです。このディレクトリ名を一時的に変更することで、ファイルの消去などを行うことが出来るようになりました。

なお、TimeMachineは原則差分バックアップを行っているため、途中のアーカイブを不用意に削除したりすると、バックアップ全てが破壊される可能性があります。操作する場合には十分な注意が必要です。

Porkrind Dot Org Missivesさん、daily memorandum 3.0.0さんへ感謝致します。

0 件のコメント:

コメントを投稿