{{tag>gentoo macos}} # gentoo 上の samba サーバーに TimeMachine Backup を作る 昨年末に購入した MacBookAir 2018 なんですが、homebrew やら docker やらを突っ込んで開発環境的な使い方をしている関係上、壊れやすい気がする(というか、1回壊した)んですよね。なので TimeMachine Backup ぐらいは取っておこうと USB HDD 1個買って繋ぎっぱなしにしていたんですが……邪魔なんですよねw せっかくのラップトップなのに、USB ハブと 2.5" USB HDD が場所を取るし、ちょっとケーブル引っこ抜いて場所を移動……なんてことをするのにいちいち USB HDD をアンマウントするって一手間がものすごくメンドくさかったり。 なので、wifi 経由で自宅 samba サーバーに TimeMachine Backup を作ってみました。 ## 環境 - linux-4.19.27-gentoo-r1 - samba-4.8.6-r2 - avahi-0.7-r1 samba-4.8.5 は vfs_fruit にバグがあるみたいなので注意した方が良さそうです。 2019/04/23 時点で gentoo の stable は 4.8.6 になっているので、あんまし気にする必要はないかもしれませんが。 https://bugzilla.samba.org/show_bug.cgi?id=13441 avahi は試行錯誤の中で入れてみただけなので、もしかしたら不要なのかもしれません。samba と avahi の USE フラグは以下のとおりで、たぶんデフォルトのままです。 ``` # emerge -pv samba avahi These are the packages that would be merged, in order: Calculating dependencies... done! [ebuild R ] net-fs/samba-4.8.6-r2::gentoo USE="acl pam syslog system-mitkrb5 -addc -addns -ads -ceph -client -cluster -cups -debug (-dmapi) -fam -gnutls -gpg -iprint -ldap -python -quota (-selinux) (-system-heimdal) -systemd -test -winbind -zeroconf" PYTHON_TARGETS="python2_7" 0 KiB [ebuild R ] net-dns/avahi-0.7-r1::gentoo USE="gdbm introspection ipv6 nls -autoipd -bookmarks -dbus -doc -gtk -gtk3 -howl-compat -mdnsresponder-compat -mono -python -qt5 (-selinux) -test" PYTHON_TARGETS="python2_7" 0 KiB Total: 2 packages (2 reinstalls), Size of downloads: 0 KiB ``` ## 手順 やったことの記録です。合っているかどうかはわかりませんが、とりあえずこれで動いてます。 ### ボリューム作成 普通に lv 作って ext4 でフォーマットしてマウントします。マウントポイントは好きにして良いし、別に lv 切らないならそれもアリだと思います。 ``` # lvcreate -L128g -n lv005 vg001 # mkfs.ext4 -Ltimemachine /dev/vg001/lv005 # mount /dev/vg001/lv005 /mnt/primary/timemachine ``` ボリュームを作る場合は `/etc/fstab` の設定も忘れずに。 ### ユーザー作成 TimeMachine Backup 専用の linux アカウントを作成して、さらに `smbpasswd` で samba 経由でアクセスする smbuser に紐付けます。 ``` # useradd --no-create-home --user-group --shell /sbin/nologin --comment 'macbook' mac # smbpasswd -a mac New SMB password: Retype new SMB password: Added user mac. ``` ### パーミッションの設定 TimeMachine Backup 先のディレクトリに書き込みできるように設定します。 ``` # chown mac:mac /mnt/primary/timemachine # chmod 700 /mnt/primary/timemachine ``` ### smb.conf の設定 必要な部分だけ抜粋。 #### /etc/samba/smb.conf ``` [global] fruit:aapl = yes fruit:model = MacSamba [timemachine] comment = Time Machine path = /mnt/primary/timemachine browseable = yes writable = yes create mask = 0600 directory mask = 0700 spotlight = yes vfs object = catia fruit streams_xattr fruit:aapl = yes fruit:time machine = yes ``` `fruit:aapl` は global option なのでたぶん `[global]` にだけあれば大丈夫です…… [samba-man](https://www.samba.org/samba/docs/current/man-html/vfs_fruit.8.html) ちょっと試行錯誤の中で両方に書いてしまったので、うちの環境ではそのまま残しちゃいましたが。 設定を書き換えたら、samba を再起動します。 ``` # /etc/init.d/samba restart ``` ### smb.service の設定 avahi の設定です。不要かもしれないのですが、今回やったことなので一応書いておきます。ちなみにこのファイルは新規に作成します。 #### /etc/avahi/services/smb.service ``` %h _smb._tcp 445 _device-info._tcp 0 model=RackMac ``` 作成したら反映させます。 ``` # /etc/init.d/avahi-daemon restart ``` ### MacBook 側の設定 ここまでで、たぶん Mac 側からもこのボリュームが見えるはず。Finder で [Command]+[K] して `smb:///timemachine` とか入力すれば入れると思います。同時に「TimeMachine 環境設定」の「ディスクを選択…」にも現れるんじゃないかと…… うちでやった時は samba サーバー側で `/mnt/primary/timemachine` のパーミッションの設定をミスっていたからなのか「ディスクを選択…」に現れませんでした……色々とあーでもないこーでもないを繰り返して、結局 Mac 側でこんなコマンドを打って認識させました。 ``` $ sudo tmutil setdestination 'smb://:@mac/timemachine' ``` {{:wiki:linux:timemachine.png?400|}} ちなみにディスクのアイコン……というか見た目は smb.conf の `fruit:model` で変えられるみたいです。 ## まとめと逃げ とりあえずうちの環境ではこれで TimeMachine Backup が__取得できている__ように見えますが、リストアしたことがないので__ちゃんと取得できている__かどうかは不明です……もともと MacBook にはデータを置かない運用をしているからこそチャレンジできる遊びだと思ってください。