MacOS X で NFSサーバーを構築する
MacOS Leopard (10.5.8) | Debian (kernel 2.6.18) | NFS |
1.MacOS X で NFS サーバー
MacOS X は、デスクトップ向けの MacOS X の他、サーバー向けに MacOS X Server がリリースされています。 NFS サーバーと聞くと MacOS X Server の機能かと思ってしまいますが、 MacOS X でも標準で NFSサーバー を構築することができます。 NFSサーバー を構築することで、 Mac のあるディレクトリを UNIX や Linux 等 NFS をサポートする機器から共有して使用することができるので、 Mac mini などで手軽にネットワークハードディスクを始めたり、今使っている Mac をそのまま共有ディスクに使うということもできます。
2.NFSサーバー の設定方法/起動方法
2−1.概要
NFSサーバー を起動するためには、コマンドラインで NFSサーバー の設定を作成する必要があります。
今回は『/Volumes/Data/Share ディレクトリを IPアドレス が 192.168.1.10 のコンピューターに公開し、 NFS 上へのファイルアクセスは ユーザーID が 500/グループ ID が 501 のユーザーが操作したのと同等に扱う』という前提で考えてみました。
この場合、設定は次の通りとなります。MacOS X の NFS 設定方法は FreeBSD という UNIX の NFS 設定方法と同じです。 Linux とはだいぶ違っているので注意しましょう。
/Volumes/Data/Share -mapall=500:501 192.168.1.10
ここで登場するユーザーIDですが、Mac を使っている方はあまりなじみがないかと思います。ターミナルで dscl . -list /Users uid | grep (調べたいユーザー名) と入力すれば確認できます。グループIDも同様に dscl . -list /Groups gid | grep (調べたいグループ名) で確認できます。
どの様な設定で NFSサーバー を起動するかが決まれば、あとはこの設定を記述したテキストファイルを /etc/exports というファイル名で保存してやるだけで自動的に NFSサーバー(nfsd) が開始されます。
2−2.設定コマンド
/etc/exports ファイルが存在していないなら、echo コマンドで設定できます。
$ su -
Password:
# echo "/Volumes/Data/Share -mapall=500:501 192.168.1.10" > /etc/exports
この時点で自動的に NFSサーバー である nfsd が起動しています。
2−3.NFSD 起動確認
nfsd が起動しているかは ps コマンドを使って確認できます。
$ ps aux | grep nfs
root 1570 0.0 0.0 80652 764 ?? Ss 2:22PM 0:00.01 /sbin/nfsd
また、実際にディレクトリがNFSで共有できているかは showmount コマンドに e オプションをつけて確認できます。もし設定したディレクトリが表示されなかったら設定に誤りがなかったか確認してみましょう。
$ showmount -e
Exports list on localhost:
/Volumes/Data/Share Everyone
以上で NFSサーバー の設定は完了となります。ただし、MacOS X 10.5 Leopard から NFS の設定方法が変わったという話しも聞きますので、MacOS X のバージョンによってはこの方法ではうまくいかないかもしれません。
3.NFSサーバー設定(/etc/exports)を変更する場合
/etc/exports を変更し、その内容を nfsd に反映させたい場合、次のコマンドを入力します。
# nfsd update
また、/etc/exports の変更内容が正しいかを予め確認しておきたい場合は次のコマンドで確認可能です。※出力は Linux の NFS 設定で書いてしまったためアドレスエラーが発生してしまった時の内容です。
$ nfsd -F /etc/exports checkexports
Inet_addr failed for 192.168.1.10(rw,all_squash,anonuid=500,anongid=501)
exports:1: couldn't get address for host: 192.168.1.10(rw,all_squash,anonuid=500,anongid=501)
exports:1: no valid hosts found for export
$