2005-03-22
_ NFSのマウントでエラー
サーバのデータをごっそりコピーするのに何かいい方法はないかなぁと考えていたところ,別マシンで実験中のubuntuのファイルシステムをNFSマウントしてコピーする事にしました.そんな面倒な作業でもないだろうとあまくみていたのですが,案外はまってしまった.NFSサーバ側の設定にちょっと癖がありました.もともとサーバ用途として利用するディストリビューションではないので,NFSサーバとしての設定は特殊なのかもしれません.ubuntuではNFSサーバとして実行するには,aptでnfs-kernel-server,portmapをインストールします.
$ sudo apt-get install nfs-kernel-server
インストールがすんだらサーバ側の設定はNFSマウントするディレクトリを定義します.設定はは/etc/exportsに記述します.
/home/hoge 192.168.1.10(rw)
クライアントにmountさせるディレクトリと,アクセスするクライアントのIPアドレス,あとは権限を設定します.そして,/etc/hosts.allowに以下のように追記します.
portmap: 192.168.1.10 lockd: 192.168.1.10 rquotad: 192.168.1.10 statd: 192.168.1.10 rpc.mountd: 192.168.1.10
設定がすんだらあとはサービスを起動してサーバ側の設定は終了です.別途iptablesの設定がある場合は,必要なポートを開放する必要がありますが.
NFSクライアント側からは,
$ sudo mount -t nfs 192.168.1.1:/home/hoge /mnt/hoge mount: RPC: Remote system error - Connection refused
サーバ側の設定が正しくできていればこれですんなりマウントできるはずなのですが,上記の通りエラーでマウントできません.クライアント側で何か設定が足りないのかと思ったのですが,ubuntuのFAQを確認したところ,他に修正するファイルがもう一つあったのです.FAQには,
Configuring NFS service
I am trying to set up an NFS server. I think I've done everything right, but it doesn't seem to work. I get an error "mount: RPC: Remote system error - Connection refused". What have I missed?
By default, the portmap daemon listens only on the loopback interface (localhost). You can change this by editing <tt>/etc/default/portmap</tt> and removing the "-i 127.0.0.1" option from the command line arguments. After making this change, run sudo /etc/init.d/portmap restart.
どうやらportmapデーモンがデフォルトではローカルからのアクセスしか受け付けていないみたいなのです.(かなり意訳. そんなわけでFAQに記載されているとおり/etc/default/portmapのARGSをコメントアウトして,portmapを再起動します.これでもう一度クライアントからマウントを試みます.
$ sudo mount -t nfs 192.168.1.1:/home/hoge /mnt/hoge
と,これで無事マウントできました.