ページ更新: 2004-02-19 (木) (4960日前)

(2003-12-07 新規作成)

nfs-serverパッケージが用意されたので、試してみた。

まだLinuxからのmountが成功していない‥‥というかさほど追求してない。

NFSサーバやNISならService for UNIX (SFU) のほうがいいかも。とか思ったりもするし。

目次

[編集]

nfs-serverパッケージのファイル一覧 #

nfs-serverパッケージのファイル一覧を見てみる。

$ cygcheck -l nfs-server
/usr/bin/nfs-server-config  (たぶんこれが初期設定用スクリプト)
/usr/man/man5/exports.5
/usr/man/man8/mountd.8
/usr/man/man8/nfsd.8
/usr/man/man8/rpc.mountd.8
/usr/man/man8/rpc.nfsd.8
/usr/man/man8/showmount.8
/usr/sbin/rpc.mountd.exe
/usr/sbin/rpc.nfsd.exe
/usr/sbin/showmount.exe
/usr/share/doc/Cygwin/nfs-server-2.2.47-2.README
/usr/share/doc/nfs-server-2.2.47/BUGS
/usr/share/doc/nfs-server-2.2.47/ChangeLog
/usr/share/doc/nfs-server-2.2.47/COPYING
/usr/share/doc/nfs-server-2.2.47/NEWS
/usr/share/doc/nfs-server-2.2.47/README
[編集]

/usr/share/doc/Cygwin/nfs-server-2.2.47-2.README #

/usr/share/doc/Cygwin/nfs-server-2.2.47-2.README を読む。

[編集]

初期設定 #

初期設定してみる。

$ /usr/bin/nfs-server-config
Installing portmap as 'Cygwin portmap'
Installing mountd as 'Cygwin mountd'
Installing nfsd as 'Cygwin nfsd'
Creating sample /etc/exports file...

mount(1) command did not return SYSTEM mount(s).

It looks like you have installed Cygwin for a single user.
Cygwin mount points will not be available to programs installed
as Windows services. This will keep portmap, mountd, and nfsd
from running as Windows services.

In order for portmap, mountd and nfsd to function properly,
you should establish global mount points using the /bin/mount
utility. You can change user-specific Cygwin mount points to
global mount points using the following command:

    eval mount -f -s -b "C:/cygwin/usr/X11R6/lib/X11/fonts" "/usr/X11R6/lib/X11/fonts";
mount -f -s -b "C:/cygwin/bin" "/usr/bin";
mount -f -s -b "C:/cygwin/lib" "/usr/lib";
mount -f -s -b "C:/cygwin" "/";
mount -f -s -b "c:" "/c";
mount -f -s -b "d:" "/d";
mount -f -s -b "e:" "/e";
mount -s -b --change-cygdrive-prefix "/cygdrive";

You current mount -m  listing is:

mount -f -s -b "C:/cygwin/usr/X11R6/lib/X11/fonts" "/usr/X11R6/lib/X11/fonts"
mount -f -s -b "C:/cygwin/bin" "/usr/bin"
mount -f -s -b "C:/cygwin/lib" "/usr/lib"
mount -f -s -b "C:/cygwin" "/"
mount -f -s -b "c:" "/c"
mount -f -s -b "d:" "/d"
mount -f -s -b "e:" "/e"
mount -s -b --change-cygdrive-prefix "/cygdrive"
[編集]

サービスへの登録の確認 #

サービスに登録されているかどうか調べてみる。

$ cygrunsrv -Q portmap
Service portmap exists
Type                : Own Process
Current State       : Stopped
Controls Accepted   :

$ cygrunsrv -Q mountd
Service mountd exists
Type                : Own Process
Current State       : Stopped
Controls Accepted   :

$ cygrunsrv -Q nfsd
Service nfsd exists
Type                : Own Process
Current State       : Stopped
Controls Accepted   :
[編集]

inetd の設定 #

/etc/hosts.allow に portmap, mountd のエントリを用意して、/etc/hosts.deny も確認してから、

[編集]

試す #

showmountしてみる。(サービスを起動していないので失敗するのはわかっている)

$ /usr/sbin/showmount
mount clntudp_create: RPC: Port mapper failure - RPC: Unable to receive
[編集]

サービスを起動 #

サービスを起動する。

$ grep rpc /etc/services
sunrpc            111/tcp    rpcbind portmap        #SUN Remote Procedure Call
sunrpc            111/udp    rpcbind portmap        #SUN Remote Procedure Call
courier           530/tcp    rpc

$ netstat -a -n | grep :111

$ cygrunsrv -S portmap

$ netstat -a -n | grep :111
 TCP    0.0.0.0:111            0.0.0.0:0              LISTENING
 UDP    0.0.0.0:111            *:*

$ cygrunsrv -S nfsd

$ cygrunsrv -S mountd

再度、showmountしてみる。

$ /usr/sbin/showmount
Hosts on example: