パステルコーダー

フロントエンドエンジニア ゆきしば の日常

Mac mini に CentOS を入れて Time Capsule をつくることができたので、余ってる人には良いかもしれない。

経緯

数年間に不要品のMac mini(Core2Duo)を譲り受けて、
HDDを1TBに換装してCentOS6を入れてしばらく使ったあと放置状態。
容量が勿体ないので、MBP用のTimeMachine(バックアップ用NAS)を作る事にしました。
f:id:pastelcoder:20170507004538j:plain

Netatalk をいれるだけ。

ここからは、以下の記事を参考にしています。 jimaoka.hatenablog.jp qiita.com

Time Machine にするには、AFPサーバーを入れる必要があると。
色々見て、Netatalk3.xを入れるのが一般的のよう。

現行バージョンは、参考記事からちょっと新しくなって、3.1.11
http://netatalk.sourceforge.net/wiki/index.php/Netatalk_3.1.11_SRPM_for_Fedora_and_CentOS
古いrpmは既に削除されていましたが、wikiから最新版をたどることができました。

ただ、なにもかんがえずにいじりまくった環境なので、
まず外にping飛ばない名前解決もできないというあたりを1日かかって直した後、
ようやく動いたyumで依存パッケージをインストール

# yum install rpm-build gcc make db4-devel openssl-devel libgcrypt-devel avahi-devel avahi-dnsconfd openslp-server openslp-devel libacl-devel openldap openldap-devel bison cracklib-devel dbus-devel dbus-glib-devel docbook-style-xsl flex libdb-devel libevent-devel libxslt mysql-devel pam-devel quota-devel systemtap-sdt-devel tcp_wrappers-devel libtdb-devel tracker-devel enablerepo=epel

NetatalkSRPMをダウンロード、ビルド、インストール。

# wget http://www003.upp.so-net.ne.jp/hat/files/netatalk-3.1.11-0.1.1.fc27.src.rpm
# rpmbuild --rebuild netatalk-3.1.11-0.1.1.fc27.src.rpm
# yum install ~/rpmbuild/RPMS/x86_64/netatalk-3.1.11-0.1.1.el6.x86_64.rpm

ポートの設定

/etc/sysconfig/iptablesに以下を追加。

-A INPUT -m state --state NEW -m tcp -p tcp --dport 548 -j ACCEPT
-A INPUT -m state --state NEW -m udp -p udp --dport 548 -j ACCEPT
-A INPUT -m state --state NEW -m udp -p udp --dport 5353 -j ACCEPT

Netatalkの設定(afp.conf)

各記事に加えて、ドキュメントを参照。
http://netatalk.sourceforge.net/3.1/htmldocs/afp.conf.5.html

/etc/netatalk/afp.confを変更。

[Global]
log level = defalut:warn
log file = /var/log/netatalk.log
uam list = uams_dhx2.so

[Time Machine]
path = /media/timemachine
time machine = yes
vol size limit = 300000

vol size limit の単位はMiB(220)。
設定値を300000MiBとしたら、Macの設定画面で正しく315GBと認識されました。
MBPのストレージが256GB。
だいたい1.2倍あれば良いという話をみたので、だいたいこのあたりです。

保存先になるpathは、 Macからログインするユーザーの権限で、Time Machine用のディレクトリを作っておきます。
外付けのディスクをマウントしたり、パーティションを触ったり等は今回していません。

そのほか、Time Machine 以外の用途は想定していないので、
[Global]と、Time Machine の個別設定以外は書く必要はないみたい。

起動と自動起動

# service iptables restart
# service avahi-daemon start
# service avahi-dnsconfd start
# service netatalk start
# chkconfig netatalk on
# chkconfig avahi-daemon on
# chkconfig avahi-dnsconfd on

うごいたー!

f:id:pastelcoder:20170507004543p:plain


訂正 2017/05/11

uam list = uams_clrtxt.so uams_dhx.so uams_dhx2.so uams_guesi.so

afp.confを以下に変更しました。macOS Sierra以降でしか使わないので認証方式を限定。

uam list = uams_dhx2.so