NFS設定 · 2 min read · Dec 26, 2025

Debian LennyでのNFSサーバーとクライアントの設定

Debian LennyでのNFSサーバーとクライアントの設定

Version 1.0
Author: Falko Timme

このガイドでは、Debian LennyでNFSサーバーとNFSクライアントを設定する方法を説明します。NFSはNetwork File Systemの略で、NFSを通じてクライアントはNFSサーバー上のリモート共有にアクセス(読み取り、書き込み)でき、まるでローカルハードディスク上にあるかのように扱えます。

私はこれがあなたにとって機能するという保証はしません!

1 予備ノート

ここでは2つのDebianシステムを使用しています:

  • NFSサーバー: server.example.com, IPアドレス: 192.168.0.100
  • NFSクライアント: client.example.com, IPアドレス: 192.168.0.101

2 NFSのインストール

サーバー:

NFSサーバーで次のコマンドを実行します:

apt-get install nfs-kernel-server nfs-common portmap

クライアント:

クライアントでは、次のようにNFSをインストールできます:

apt-get install nfs-common portmap

3 サーバー上のディレクトリのエクスポート

サーバー:

クライアントに/homeと/var/nfsディレクトリをアクセス可能にしたいので、これらをサーバーで「エクスポート」する必要があります。

クライアントがNFS共有にアクセスするとき、通常はユーザーnobodyとして行われます。通常、/homeディレクトリはnobodyによって所有されていません(その所有権をnobodyに変更することはお勧めしません!)、そして私たちは/homeで読み取りと書き込みを行いたいので、NFSにアクセスをrootとして行うように指示します(もし私たちの/home共有が読み取り専用であった場合、これは必要ありません)。/var/nfsディレクトリは存在しないので、これを作成し、その所有権をnobodyとnogroupに変更できます:

mkdir /var/nfs  
chown nobody:nogroup /var/nfs

次に、/etc/exportsを修正して、NFS共有を「エクスポート」します。/homeと/var/nfsをNFS共有として指定し、NFSに/homeへのアクセスをrootとして行うように指示します(/etc/exportsについての詳細、フォーマット、利用可能なオプションについては、次を参照してください:

man 5 exports

)

vi /etc/exports

| # /etc/exports: エクスポート可能なファイルシステムのアクセス制御リスト # NFSクライアントにエクスポートされる可能性があります。exports(5)を参照してください。 # # NFSv2およびNFSv3の例: # /srv/homes hostname1(rw,sync,no_subtree_check) hostname2(ro,sync,no_subtree_check) # # NFSv4の例: # /srv/nfs4 gss/krb5i(rw,sync,fsid=0,crossmnt,no_subtree_check) # /srv/nfs4/homes gss/krb5i(rw,sync,no_subtree_check) # /home 192.168.0.101(rw,sync,no_root_squash,no_subtree_check) /var/nfs 192.168.0.101(rw,sync,no_subtree_check) |

(no_root_squashオプションにより、/homeはrootとしてアクセスされます。)

/etc/exportsを修正するたびに、次を実行して変更を有効にする必要があります:

exportfs -a

4 クライアントでのNFS共有のマウント

クライアント:

まず、NFS共有をマウントするディレクトリを作成します。例えば:

mkdir -p /mnt/nfs/home  
mkdir -p /mnt/nfs/var/nfs

その後、次のようにマウントできます:

mount 192.168.0.100:/home /mnt/nfs/home  
mount 192.168.0.100:/var/nfs /mnt/nfs/var/nfs

これで、次のコマンドの出力に2つのNFS共有が表示されるはずです:

df -h
client:~# df -h  
Filesystem            Size  Used Avail Use% Mounted on  
/dev/mapper/vg0-root   19G  676M   17G   4% /  
tmpfs                 253M     0  253M   0% /lib/init/rw  
udev                   10M   80K   10M   1% /dev  
tmpfs                 253M     0  253M   0% /dev/shm  
/dev/sda1             471M   20M  427M   5% /boot  
192.168.0.100:/home    29G  684M   27G   3% /mnt/nfs/home  
192.168.0.100:/var/nfs  
                   29G  684M   27G   3% /mnt/nfs/var/nfs  
client:~#

mount
client:~# mount  
/dev/mapper/vg0-root on / type ext3 (rw,errors=remount-ro)  
tmpfs on /lib/init/rw type tmpfs (rw,nosuid,mode=0755)  
proc on /proc type proc (rw,noexec,nosuid,nodev)  
sysfs on /sys type sysfs (rw,noexec,nosuid,nodev)  
udev on /dev type tmpfs (rw,mode=0755)  
tmpfs on /dev/shm type tmpfs (rw,nosuid,nodev)  
devpts on /dev/pts type devpts (rw,noexec,nosuid,gid=5,mode=620)  
/dev/sda1 on /boot type ext3 (rw)  
192.168.0.100:/home on /mnt/nfs/home type nfs (rw,addr=192.168.0.100)  
192.168.0.100:/var/nfs on /mnt/nfs/var/nfs type nfs (rw,addr=192.168.0.100)  
client:~#

5 テスト

クライアントで、NFS共有にテストファイルを作成してみてください:

クライアント:

touch /mnt/nfs/home/test.txt  
touch /mnt/nfs/var/nfs/test.txt

次に、サーバーに行き、両方のテストファイルが見えるか確認します:

サーバー:

ls -l /home/
server:~# ls -l /home/  
total 4  
drwxr-xr-x 2 administrator administrator 4096 2009-02-16 13:18 administrator  
-rw-r--r-- 1 root          root              0 2009-03-12 17:08 test.txt  
server:~#
ls -l /var/nfs
server:~# ls -l /var/nfs  
total 0  
-rw-r--r-- 1 nobody nogroup 0 2009-03-12 17:08 test.txt  
server:~#

(テストファイルの所有権の違いに注意してください:/home NFS共有はrootとしてアクセスされるため、/home/test.txtはrootが所有しています;/var/nfs共有はnobodyとしてアクセスされるため、/var/nfs/test.txtはnobodyが所有しています。)

6 ブート時のNFS共有のマウント

クライアントでNFS共有を手動でマウントする代わりに、/etc/fstabを修正して、クライアントがブートするときにNFS共有が自動的にマウントされるようにすることができます。

クライアント:

/etc/fstabを開き、次の行を追加します:

vi /etc/fstab

| [...] 192.168.0.100:/home /mnt/nfs/home nfs rw,sync,hard,intr 0 0 192.168.0.100:/var/nfs /mnt/nfs/var/nfs nfs rw,sync,hard,intr 0 0 |

rw,sync,hard,intrの代わりに、異なるマウントオプションを使用できます。利用可能なオプションについては、次を参照してください:

man nfs

修正した/etc/fstabが機能するかテストするために、クライアントを再起動します:

reboot

再起動後、次のコマンドの出力に2つのNFS共有が表示されるはずです:

df -h
client:~# df -h  
Filesystem            Size  Used Avail Use% Mounted on  
/dev/mapper/vg0-root   19G  676M   17G   4% /  
tmpfs                 253M     0  253M   0% /lib/init/rw  
udev                   10M   80K   10M   1% /dev  
tmpfs                 253M     0  253M   0% /dev/shm  
/dev/sda1             471M   20M  427M   5% /boot  
192.168.0.100:/home    29G  684M   27G   3% /mnt/nfs/home  
192.168.0.100:/var/nfs  
                   29G  684M   27G   3% /mnt/nfs/var/nfs  
client:~#

mount
client:~# mount  
/dev/mapper/vg0-root on / type ext3 (rw,errors=remount-ro)  
tmpfs on /lib/init/rw type tmpfs (rw,nosuid,mode=0755)  
proc on /proc type proc (rw,noexec,nosuid,nodev)  
sysfs on /sys type sysfs (rw,noexec,nosuid,nodev)  
udev on /dev type tmpfs (rw,mode=0755)  
tmpfs on /dev/shm type tmpfs (rw,nosuid,nodev)  
devpts on /dev/pts type devpts (rw,noexec,nosuid,gid=5,mode=620)  
/dev/sda1 on /boot type ext3 (rw)  
192.168.0.100:/home on /mnt/nfs/home type nfs (rw,sync,hard,intr,addr=192.168.0.100)  
192.168.0.100:/var/nfs on /mnt/nfs/var/nfs type nfs (rw,sync,hard,intr,addr=192.168.0.100)  
client:~#

7 リンク

Share: X/Twitter LinkedIn

新しい投稿を受信箱で受け取る

スパムはありません。いつでも購読を解除できます。