今回はNASを上手く利用するために、Macの基本機能であるautomountの仕組みについて書いてみたいと思います。
Qnap(NAS)の領域を使用することを考えた場合、Macbookはノートパソコンなのでいつでもオンラインであるかは不明です。ちょっと外で利用して、帰宅して使いたいという時にも使えるようにしてあるのがベストです。よくサイトで見る情報だと、「ログイン時の実行」の中の処理で共有ドライブを利用できるようにしているものもありますが automount の機能を使ったほうがスムースではないかと思います。
MacOSXのautomountも一般的なLinuxなどのautomountと同様の機能を備えているので細かくはネットでググってみると同じような感じで色々出てくると思います。最終的には、ちょっとうまく行かない部分もあり強引に解決してしまっています。ですが一応ウマくは動いているので設定を載せておきます。
automountを使用するためには幾つかの設定ファイルを用意する必要があります。 /etc/以下に auto_master , autofs.conf などがあります。また今回の設定を個別に定義するためにあ auto_afp というファイルを新たに用意しました。
やりたいことは、Qnap(Nas)上の共有ドライブを、ホームディレクトリ以下に自動的にマウントさせます。
autofs.confはautomountの設定を担っていますが今回は特に変更をしていません。
atuo_masterにはauto_afpを参照す設定を記載します。
#
# Automounter master map
#
+auto_master # Use directory service
/net -hosts -nobrowse,hidefromfinder,nosuid
/home auto_home -nobrowse,hidefromfinder
/Network/Servers -fstab
/- -static
/- auto_afp -nosuid,nobrowse
最後の行に auto_afp という設定を参照する、その時には -nosuid , nobrowseというオプションでマウントを行うということを記載します。例えば -fstab とあれば個々の部分は fstab の設定を見るという感じです。
auto_afp
/Users/name/Share -fstype=afp ://name:[email protected]/Share
このように記載します。色々マニュアルを見ると /User/name/Shareを先に特定のユーザで作成しておくとそのユーザとして自動的にmountされるという記載も見ましたがそれは上手く動きませんでした。 rootユーザが先にmountしてしまった場合一般ユーザでは見れない権限になってしまうという問題があります。この問題が解消されている、、はずでしたが結局わかりませんでした。
補足ですがauto_afpを作成せずにfstabに記載することもできます、その際は
192.168.1.100:/Share /Users/name/Share url automounted,url==cifs://name:[email protected]/Share 0 0
このように記述します。
ここで再起動すると私のmacbookの場合にはrootで自動的にマウントされてしまいます。この場合でも5分経つとTimeoutでアンマウントされますが(autofs.confの設定)使いづらいです。
先に書いたように本来は権限をもつユーザでマウントしてくれるのが良いですが難しいので起動時にスクリプトでアンマウントするようにしてしまいます。
Macの場合、自動起動をするためには /Library/StartupItemsという場所に設定を置くことになります、内容としてはinit.dなどの感じです。
name@hostname:/Library/StartupItems$ du -a
8 ./AutoFs/AutoFs
8 ./AutoFs/StartupParameters.plist
16 ./AutoFs
フィアルとしてはこのようなものを用意します。名前はなんでもいいですがディレクトリ名とスクリプト名は揃えるルールです。
AutoFs
[ccn_bash]
#!/bin/sh
. /etc/rc.common
# Refarence
# http://qiita.com/items/5ef36bd62b88c9e8197e
#
LOG=/tmp/000.data
StartService () {
sleep 30
date >> $LOG
umount /Users/name/Share >> $LOG 2>&1
if $? -eq 0 ; then
echo “umount success .. ” >> $LOG
else
echo “umount failed .. ” >> $LOG
fi
su – name -c “ls /Users/name/Share” >> $LOG 2>&1
}
StopService () {
umount /Users/name/Share
}
RestartService () {
StopService
StartService
}
RunService “$1”
[/ccn]
簡単に書いています。とりあえずumountして、普段使うnameユーザでマウントしなおしています。sleepをしているのはそのまま実行するとまだディスクにアクセスなどができないでエラーになるためです。
StartupParameters.plist
[ccn_xml]
Description
AutoFs
OrderPreference
Late
Provides
AutoFs
[/ccn]
こちらは定形のフォーマットです。このように記載します。
上記の設定がうまくできて入れば再起動後にnameユーザでマウントされています。またネットワークが切断などをされていても再度使う際に自動的にマウントして利用することができるので便利です。」
上記のように、左側のペインにドライブをドロップしておくとアクセスしやすくて便利です。