Mac OS X Lion 対応 Time Machine サーバー構築

Mac OS X Snow Leopard (10.6) まではNFS経由でリモート Time Machine を行っていたが、Mac OS X Lion (10.7) では「バックアップを完了できませんでした。ネットワーク・バックアップ・ディスクは、必要なAFP機能に対応していません。」というエラーで実行できなくなってしまった。そこで、AFP経由でリモート Time Machine を行うように変更した。

HAT blog: netatalk 近状 によると、AFPはAFPでも、Lionからは AFP 3.3 がどうやら必須になってしまったようなので、3.3に対応した Netatalk 2.2.0 でAFPサーバーをまずは構築する。方法は 複眼中心: Scientific Linux 5.6 に Netatalk 2.2.0 をインストール を参考にしてほしい。

AFPサーバーが問題なく動いたら、Time Machine で使用するパーティションを作成する。Advanced Format Technology (AFT) を使用している場合は 複眼中心: Advanced Format Technology を使用したHDDをLinuxで正しくパーティション を参考にしてほしい。

作成したパーティションをフォーマットする。また、fsckが自動で実行されないようにし、予約ファイルシステム・ブロックを2%に変更した。

[root@charlie ~]# mkfs.ext3 /dev/sdd2
mke2fs 1.39 (29-May-2006)
Filesystem label=
OS type: Linux
......
This filesystem will be automatically checked every 22 mounts or
180 days, whichever comes first.  Use tune2fs -c or -i to override.
[root@charlie ~]# tune2fs -c 0 -i 0 -m 2 /dev/sdd2
tune2fs 1.39 (29-May-2006)
Setting maximal mount count to -1
Setting interval between checks to 0 seconds
Setting reserved blocks percentage to 2% (4884755 blocks)

マウント先を作成する。

[root@charlie ~]# mkdir /var/tm
[root@charlie ~]# chmod 000 /var/tm

OS起動時にマウントするように/etc/fstabに設定を加える。user_xattrをつけると拡張属性 (EA) がext3のEAとして保存される。設定を変更したらマウントしよう。

[root@charlie ~]# echo "/dev/sdd2 /var/tm ext3 defaults,user_xattr 0 2" >> /etc/fstab
[root@charlie ~]# mount /var/tm

Time Machine を使用するMacが2台あるので、それぞれのディレクトリを作成し、それぞれのユーザーに所有者を変更する。

[root@charlie ~]# mkdir /var/tm/evian
[root@charlie ~]# mkdir /var/tm/akibk
[root@charlie ~]# chown -R tats:tats /var/tm/evian
[root@charlie ~]# chown -R akiko:akiko /var/tm/akibk

2つのディレクトリを Time Machine ディスクして共有する。allow:で読み書きできるユーザーを指定する。また、最近のNetatalkはoptions:tmと書くだけで Time Machine ディスクになるのでお手軽だ。さらに、volsizelimitを設定することでディスクの上限まで使わずに、その値以下でやりくりするようになるので、ボクは約700GBに設定した。

[root@charlie ~]# echo '/var/tm/evian "TMevian" allow:tats options:tm volsizelimit:700000' >> /usr/local/etc/netatalk/AppleVolumes.system
[root@charlie ~]# echo '/var/tm/akibk "TMakibk" allow:akiko options:tm volsizelimit:300000' >> /usr/local/etc/netatalk/AppleVolumes.system

これでLinux側の設定は終わり。Netatalk 2.2 からは Time Machine ディスクをマウントしないでも、システム環境設定「Time Machine」の「ディスクを選択...」にディスクがリストされるので、今回作成したネットワーク・ボリュームを選択する。しばらくすると「Time Machine バックアップ」というディスクがマウントされ、バックアップが始まる。

……のだが、リストアのために「Time Machine に入る」を選択しても何もおこらない。Linux側の/var/log/messagesにも、Mac側のコンソールにも何も問題は起きてない。この問題は Bayashi's blog: 『Mac関連』Mac OS X Lionにしたら、samba上のDISKイメージにTime Machineのバックアップを作成できなくなった でも報告されているが、ボクの環境ではEAが有効な状態で何度再バックアップしても直らない。

原因調査のためにTMevian内に作成されたevian.sparsebundleを手動でマウントしてみる。すると、/Volumes/Time Machine バックアップ/Backups.backupdb/evian フォルダの権限が711になっており、一般ユーザーが中身を見られないことに気づいた。問題なく動くUSBハードディスクに作った Time Machine ディスクでは、ここは755になっている。というわけで、このフォルダの権限を755に変更しようとするが、このフォルダはACLで制限されており、さらに chmod -N がなぜか効かず、ACLが消去できない。

[tats@evian ~]$ ls -le /Volumes/Time\ Machine\ バックアップ/Backups.backupdb
total 0
drwx--x--x@ 3 root  staff  136  7  1 18:13 evian/
 0: group:everyone deny add_file,delete,add_subdirectory,delete_child,writeattr,writeextattr,chown
[tats@evian ~]$ sudo chmod 755 /Volumes/Time\ Machine\ バックアップ/Backups.backupdb/evian
chmod: Unable to change file mode on /Volumes/Time Machine バックアップ/Backups.backupdb/evian: Operation not permitted
[tats@evian ~]$ sudo chmod -N /Volumes/Time\ Machine\ バックアップ/Backups.backupdb/evian
chmod: Failed to clear ACL on file /Volumes/Time Machine バックアップ/Backups.backupdb/evian: Operation not permitted

chmod -N が効かない問題については daily memorandum 3.0.0: Time Machine ボリュームを直接操作する(2) が参考になった。Backups.backupdb内のファイルは Mandatory Access Control によって制御されていることが原因のようなので、以下のようにして権限を変更した。

[tats@evian ~]$ sudo mv /Volumes/Time\ Machine\ バックアップ/Backups.backupdb{,~}
[tats@evian ~]$ cd /Volumes/Time\ Machine\ バックアップ/Backups.backupdb~
[tats@evian Backups.backupdb~]$ ls -le
total 0
drwx--x--x@ 3 root  staff  136  7  1 18:13 evian/
 0: group:everyone deny add_file,delete,add_subdirectory,delete_child,writeattr,writeextattr,chown
[tats@evian Backups.backupdb~]$ sudo chmod -N evian
[tats@evian Backups.backupdb~]$ ls -le
total 0
drwx--x--x@ 3 root  staff  136  7  1 18:13 evian/
[tats@evian Backups.backupdb~]$ sudo chmod 755 evian
[tats@evian Backups.backupdb~]$ ls -le
total 0
drwxr-xr-x@ 3 root  staff  136  7  1 18:13 evian/
[tats@evian Backups.backupdb~]$ sudo chmod +a "group:everyone deny add_file,delete,add_subdirectory,delete_child,writeattr,writeextattr,chown" evian
[tats@evian Backups.backupdb~]$ ls -le
total 0
drwxr-xr-x@ 3 root  staff  136  7  1 18:13 evian/
 0: group:everyone deny add_file,delete,add_subdirectory,delete_child,writeattr,writeextattr,chown
[tats@evian Backups.backupdb~]$ cd
[tats@evian ~]$ sudo mv /Volumes/Time\ Machine\ バックアップ/Backups.backupdb{~,}

これにより、問題なく「Time Machine に入る」も実行できるようになり、無事に Mac OS X Lion 対応リモート Time Machine サーバーが構築できた。

Mac OS X Lion 対応 Time Machine サーバー構築 への2件のコメント

  1. [...] TimeMachineがAFP3.3しかサポートしない。おかげでI-OデータのNASがバックアップ用に使えなくなりましたが、そもそもI-Oデータにはあんまり期待してなかったので別にいいです。 縦書き対応 [...]

  2. [...] で、対処法ですが、複眼中心 Mac OS X Lion 対応 Time Machine サーバー構築を参照に対応しました。パーミッションが711とな。それで、パーミッションを変更しようとしてもACLが働いているので・・・と言うことに。 [...]

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

次のHTML タグと属性が使えます: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

トラックバックをどうぞ

言及リンクがないと(あなたのページにこのページへのリンクがないと)トラックバックできません。