Time Machine
Time Machine で使う事のできる NAS は Apple の Time Capsule だけだと思ってたが、Mac にマウントさえ出来ればどんなデバイスでも Time Machine のディスクとして使える事をこの site で知った。
その通り出来た。(Mac 側で) 実際に必要だったコマンドは以下。すでに Time Machine に使う disk が Mac にマウントされてる状態で始める。この例では /Volumes/nas/TCippei813。Linux 上の ext3 volume を netatalk/afp で共有してる。(最初は samba でやってたけど、頻繁にエラーで止まったてた。afpに替えてから全く問題無し)
$ ifconfig en0 | grep ether ether 00:1e:c2:ff:ff:ff $ hdiutil create -size 100g \ -fs 'Case-sensitive Journaled HFS+' \ -imagekey sparse \ -band-size=262144 \ -type SPARSEBUNDLE \ -nospotlight \ -volname "Backup of ippei813" \ ippei813_001ec2ffffff.sparsebundle $ rsync -avE /Users/username/ippei813_001ec2ffffff.sparsebundle \ /Volumes/nas/TCippei813/. $ rm -rf ippei813_001ec2ffffff.sparsebundle/ $ defaults write com.apple.systempreferences TMShowUnsupportedNetworkVolumes 1
Update : 2014/11/24 for MacOS X Yosemite
上記のhdiutilのoptionを変更。以前のやつでは毎月1回fsckで修復不可能な問題が発見されて、new backupを作るように言われる。参考までに、以下のが以前使ってたoption。sparsebundleのfile nameにはもうMac addressつけなくても良いかも。最初のbackupで自動的にMac address無しのfile nameに変更されるので。
$ hdiutil create \ -size 100g \ -fs HFS+J \ -volname "Backup of ippei813" \ ippei813_001ec2ffffff.sparsebundle
hdiutil の create で指定してる容量はバックアップ容量の限度を指定してるだけで、この容量のfileがいきなり出来る訳ではない。出来た sparsebundle はディレクトリと小さいファイルがそれぞれいくつかあるだけ。
この後、Time Machine の設定の画面からこの NAS が選べるようになったんだが、バックアップが始まると以下のエラーで止まってしまった。
/var/log/syslog ippei813 com.apple.KernelEventAgent[34]: KernelEventAgent: sysctl_queryfs: No such file or directory
ググると、Time Machine の設定で disk を選択した後、実際にバックアップが始まるまでの120秒の間にマウントされてるバックアップ先をアンマウントすると解決するとあった。しかし、それやっても同じエラー。。。
しばらく悩んだ後、解決法見つけた。初め、ippei813_001ec2ffffff.sparsebundle は NAS 上の path で <….>/NAS/ippei813/ という directory の下に置いてあり、TCippei813 として export してたのは NAS/。これがいけなかった。export したディレクトリの直下に sparsebundle が無いと Time Machine は設定のとき認識しても、実際のバックアップで見つけられない。解決策としては sparsebundle を NAS/ 直下に移動するか、sparsebundle の NAS 内の位置はそのままで ippei813/ を export するかどっちでも。今回は ippei813/ を TCippei813 として新たに export して解決した。
version: Mac OS X 10.5.6