ablog

不器用で落着きのない技術者のメモ

Cygwin NFS Server on Windows XP

検証のため、Windows XPNFS サーバとして使いたくて、Windows Services for UNIX でもインストールしようかと思っていたところ、Cygwin でさくっとできました。

まず、CygwinNFS の設定を行う。

$ nfs-server-config
Do you want to continue? (yes/no) yes
Do you want to run nfsd under a separate user account? (yes/no) no
$ vi /etc/hosts.allow 
portmap: ALL
mountd: ALL
$ mkdir /exports
$ vi /etc/exports
/exports                (rw,no_root_squash)
$ cygrunsrv -S portmap
$ cygrunsrv -S nfsd
$ cygrunsrv -S mountd
$ cygrunsrv -Q portmap
Service             : portmap
Display name        : Cygwin portmap
Description         : Cygwin RPC Port Mapping service
Current State       : Running
Controls Accepted   : Stop
Command             : /usr/sbin/portmap -F
$ cygrunsrv -Q mountd
Service             : mountd
Display name        : Cygwin mountd
Description         : Cygwin NFS Mount service
Current State       : Running
Controls Accepted   : Stop
Command             : /usr/sbin/rpc.mountd -F
$ cygrunsrv -Q nfsd
Service             : nfsd
Display name        : Cygwin nfsd
Description         : Cygwin Network File System (NFS) service
Current State       : Running
Controls Accepted   : Stop
Command             : /usr/sbin/rpc.nfsd -F -u 1007

設定完了。
VMware上の Llinux (OEL5.5) からマウントする。

# mkdir /mnt/nfs
# mount -t nfs 192.168.18.1:/exports /mnt/nfs

ファイルを作ってみる。

# cd /mnt/nfs
# touch a

Windows(Cygwin)側で確認してみると、

$ ls /exports
a

ファイルができている。これはお手軽ですね。

参考


追記(2010/12/26):

  • サービスを停止するコマンド。
bash-3.2$ cygrunsrv -E mountd
bash-3.2$ cygrunsrv -E nfsd
bash-3.2$ cygrunsrv -E portmap
  • サービスを削除するコマンド。
bash-3.2$ cygrunsrv -R portmap
bash-3.2$ cygrunsrv -R nfsd
bash-3.2$ cygrunsrv -R mountd
  • サービス削除後に状態を確認するとこんな具合です。
bash-3.2$ cygrunsrv -Q portmap
cygrunsrv: Error querying a service: OpenService:  Win32 error 1060:
指定されたサービスはインストールされたサービスとして存在しません。

bash-3.2$ cygrunsrv -R mountd
cygrunsrv: Error removing a service: OpenService:  Win32 error 1060:
指定されたサービスはインストールされたサービスとして存在しません。

bash-3.2$ cygrunsrv -Q nfsd
cygrunsrv: Error querying a service: OpenService:  Win32 error 1060:
指定されたサービスはインストールされたサービスとして存在しません。