「NFS」の版間の差分

提供: ArchWiki
ナビゲーションに移動 検索に移動
2行目: 2行目:
 
[[Category:ネットワーク]]
 
[[Category:ネットワーク]]
 
[[ar:NFS]]
 
[[ar:NFS]]
  +
[[cs:NFS]]
 
[[de:Network File System]]
 
[[de:Network File System]]
 
[[en:NFS]]
 
[[en:NFS]]
 
[[es:NFS]]
 
[[es:NFS]]
 
[[fr:NFS]]
 
[[fr:NFS]]
[[it:NFSv4]]
+
[[it:NFS]]
  +
[[ru:NFS]]
 
[[zh-CN:NFS]]
 
[[zh-CN:NFS]]
 
{{Related articles start}}
 
{{Related articles start}}
{{Related3|NFS Troubleshooting|NFS トラブルシューティング}}
+
{{Related|NFS/トラブルシューティング}}
  +
{{Related|Avahi}}
  +
{{Related|ディスクレスシステム}}
 
{{Related articles end}}
 
{{Related articles end}}
 
[[Wikipedia:ja:Network File System|Wikipedia]] より:
 
[[Wikipedia:ja:Network File System|Wikipedia]] より:
24行目: 28行目:
 
===サーバー===
 
===サーバー===
   
  +
NFS は共有のリスト (以下 "exports" と呼称します) を確認する必要があります。exports は {{ic|/etc/exports}} に定義します。ファイルシステムのどのディレクトリでもかまいません。セキュリティ上、ユーザーのアクセスが限られる NFS export root を使うことが推奨されます。以下ではこの考えを例証しています。
==== ID マッピング ====
 
   
  +
{{ic|/etc/exports}} に NFS ルートの相対パスで NFS 共有を定義します。ここでは、NFS ルートは {{ic|/srv/nfs4}} とし、{{ic|/mnt/music}} を共有させます。
{{ic|/etc/idmapd.conf}} を編集して {{ic|Domain}} を設定してください。
 
 
{{hc|/etc/idmapd.conf|<nowiki>
 
[General]
 
 
Verbosity = 1
 
Pipefs-Directory = /var/lib/nfs/rpc_pipefs
 
Domain = atomic
 
 
[Mapping]
 
 
Nobody-User = nobody
 
Nobody-Group = nobody
 
</nowiki>}}
 
 
==== 固定ポート ====
 
デフォルトでは、NFSv3 による {{ic|rpc.statd}} や {{ic|lockd}} の制御にはランダムな一時的なポートが使われます。ファイアウォールを通して NFSv3 の制御ができるようにするには固定ポートを定義する必要があります。{{ic|/etc/conf.d/nfs-common.conf}} を編集して STATD_OPTS を設定してください:
 
 
{{hc|/etc/conf.d/nfs-common.conf|2=
 
STATD_OPTS="-p 32765 -o 32766 -T 32803"
 
}}
 
 
{{ic|rpc.mountd}} は {{ic|/etc/services}} を読み込んで通常の状態では同じ固定ポート 2048 に bind されます。しかしながら、明示的に定義する必要があるときは {{ic|/etc/conf.d/nfs-server.conf}} を編集して MOUNTD_OPTS を設定してください:
 
 
{{hc|/etc/conf.d/nfs-server.conf|2=
 
MOUNTD_OPTS="-p 20048"
 
}}
 
 
これらの変更を加えたら、複数のサービスを再起動してください。最初に設定オプションを {{ic|/run/sysconfig/nfs-utils}} (参照: {{ic|/usr/lib/systemd/scripts/nfs-utils_env.sh}}) に書き出して、二番目に新しいポートで {{ic|rpc.statd}} を再起動し、最後に新しいポートで lockd (カーネルモジュール) をリロードします。
 
 
# systemctl restart nfs-config
 
# systemctl restart rpc-statd
 
# systemctl restart nfs-server
 
 
再起動後、サーバーで {{ic|rpcinfo -p}} を使って固定ポートが思い通りにいってるか確認してください。クライアントから {{ic|rpcinfo -p <server IP>}} を使えば本当に同じ固定ポートを使っているか明らかになります。
 
 
==== 任意のサーバー設定 ====
 
{{ic|/etc/conf.d/nfs-server.conf}} には rpc.nfsd, rpc.mountd, rpc.svcgssd のオプションを任意で記述します。シンプルな設定をする場合はこのファイルを編集する必要はありません。
 
 
==== ファイルシステム ====
 
 
{{Note|For security reasons, it is recommended to use an NFS export root which will keep users limited to that mount point only. The following example illustrates this concept.}}
 
 
{{ic|/etc/exports}} に NFS ルートの相対パスで NFS 共有を定義します。この例では、NFS ルートは {{ic|/srv/nfs4}} とし、{{ic|/mnt/music}} を共有させます。
 
   
 
# mkdir -p /srv/nfs4/music
 
# mkdir -p /srv/nfs4/music
83行目: 44行目:
 
/mnt/music /srv/nfs4/music none bind 0 0
 
/mnt/music /srv/nfs4/music none bind 0 0
 
}}
 
}}
 
==== エクスポート ====
 
   
 
共有するディレクトリと、マウントを許可するクライアントマシンの ip アドレスまたはホスト名を {{ic|exports}} に追加します:
 
共有するディレクトリと、マウントを許可するクライアントマシンの ip アドレスまたはホスト名を {{ic|exports}} に追加します:
96行目: 55行目:
 
利用可能なオプションについての詳細は {{ic|man 5 exports}} を見て下さい。
 
利用可能なオプションについての詳細は {{ic|man 5 exports}} を見て下さい。
   
{{Note|Modifying {{ic|/etc/exports}} while the server is running will require a re-export for changes to take effect.}}
+
{{Note|Modifying {{ic|/etc/exports}} while the server is running will require a re-export for changes to take effect: {{ic|# exportfs -rav}}.}}
# exportfs -rav
 
   
==== NFSv2 との互換性 ====
+
==== サーバーを起動する ====
   
  +
{{ic|nfs-server.service}} を[[起動]]・[[有効化]]してください。昔の V2 や V3 のエクスポートを使うには {{ic|rpcbind.service}} も必要になります。V4 だけを使う場合は、V2 と V3 を明示的に無効化してください [https://bbs.archlinux.org/viewtopic.php?id=193629]: {{hc|/etc/conf.d/nfs-server.conf|2=
NFSv2 を使用するクライアント (例えば U-Boot) のサポートが必要な場合、{{ic|/etc/conf.d/nfs-server.conf}} に {{ic|1=NFSD_OPTS="-V 2"}} を設定してください。
 
  +
NFSD_OPTS="-N 2 -N 3"
  +
}}
  +
上記の設定をしない場合 {{ic|rpcbind.service}} が必要になります。
   
==== サーバーを起動する ====
+
==== その他 ====
   
  +
===== 任意のサーバー設定 =====
[[systemd#ユニットを使う|systemd]] を使って {{ic|nfs-server.service}} を起動して下さい。また、サービスを有効にして起動時に systemd がサーバーを起動すように設定することも推奨されています。このユニットは他のサービスも必要としますが、それらは [[systemd|systemd]] によって自動的に起動されます。
 
  +
{{ic|/etc/conf.d/nfs-server.conf}} には rpc.nfsd, rpc.mountd, rpc.svcgssd のオプションを任意で記述します。シンプルな設定をする場合はこのファイルを編集する必要はありません。
   
==== ファイアウォール設定 ====
+
===== ポート =====
  +
NFSv3 クライアントのサポートが必要な場合、固定ポートを使うのが良いでしょう。デフォルトでは、NFSv3 による {{ic|rpc.statd}} や {{ic|lockd}} の制御にはランダムな一時的なポートが使われます。ファイアウォールを通して NFSv3 の制御ができるようにするには固定ポートを定義する必要があります。{{ic|/etc/conf.d/nfs-common.conf}} を編集して {{ic|STATD_OPTS}} を設定してください:
  +
  +
{{hc|/etc/conf.d/nfs-common.conf|2=
  +
STATD_OPTS="-p 32765 -o 32766 -T 32803"
  +
}}
  +
  +
{{ic|rpc.mountd}} は {{ic|/etc/services}} を読み込んで通常の状態では同じ固定ポート 2048 に bind されます。しかしながら、明示的に定義する必要があるときは {{ic|/etc/conf.d/nfs-server.conf}} を編集して MOUNTD_OPTS を設定してください:
  +
  +
{{hc|/etc/conf.d/nfs-server.conf|2=
  +
MOUNTD_OPTS="-p 20048"
  +
}}
  +
  +
これらの変更を加えたら、複数のサービスを再起動してください。最初に設定オプションを {{ic|/run/sysconfig/nfs-utils}} (参照: {{ic|/usr/lib/systemd/scripts/nfs-utils_env.sh}}) に書き出して、二番目に新しいポートで {{ic|rpc.statd}} を再起動し、最後に新しいポートで lockd (カーネルモジュール) をリロードします。
  +
  +
# systemctl restart nfs-config
  +
# systemctl restart rpcbind
  +
# systemctl restart rpc-statd
  +
# systemctl restart nfs-server
  +
  +
再起動後、サーバーで {{ic|rpcinfo -p}} を使って固定ポートが思い通りにいってるか確認してください。クライアントから {{ic|rpcinfo -p <server IP>}} を使えば本当に同じ固定ポートを使っているか明らかになります。
  +
  +
===== NFSv2 との互換性 =====
  +
  +
NFSv2 を使用するクライアント (例えば U-Boot) のサポートが必要な場合、{{ic|/etc/conf.d/nfs-server.conf}} に {{ic|1=NFSD_OPTS="-V 2"}} を設定してください。
  +
  +
===== ファイアウォール設定 =====
   
 
ファイアウォールを通過してアクセスできるようにするには、デフォルト設定の場合 tcp と udp のポート 111, 2049, 20048 を開放する必要があります。{{ic|rpcinfo -p}} を使ってサーバーで使用しているポートを確認してください。この設定を [[iptables]] でするには、{{ic|/etc/iptables/iptables.rules}} を編集して以下の行を含めるようにしてください:
 
ファイアウォールを通過してアクセスできるようにするには、デフォルト設定の場合 tcp と udp のポート 111, 2049, 20048 を開放する必要があります。{{ic|rpcinfo -p}} を使ってサーバーで使用しているポートを確認してください。この設定を [[iptables]] でするには、{{ic|/etc/iptables/iptables.rules}} を編集して以下の行を含めるようにしてください:
133行目: 121行目:
 
=== クライアント ===
 
=== クライアント ===
   
[[systemd#ユニットを使う|systemd]] を使って {{ic|rpcbind.service}} と {{ic|nfs-client.target}} を起動して下さい。また、サービスを有効にして起動時に systemd がクライアントを起動するように設定することも推奨されています。このユニットは他のサービスも必要としますが、それらは [[systemd|systemd]] によって自動的に起動されます。
+
[[systemd#ユニットを使う|systemd]] を使って {{ic|rpcbind.service}} と {{ic|nfs-client.target}} を起動して下さい。また、サービスを有効にして起動時に systemd がクライアントを起動するように設定することも推奨されています。このユニットは他のサービスも必要としますが、それらは [[systemd]] によって自動的に起動されます。
   
 
3.12.7-2 以前のカーネルバージョン (例えば現在の {{pkg|linux-lts}}) のクライアントは {{ic|rpc-gssd.service}} を起動しなくてはなりません。そうしないとカーネルバグによって約15秒の遅延が発生して dmesg に "RPC: AUTH_GSS upcall timed out" というエラーが表示されます。
 
3.12.7-2 以前のカーネルバージョン (例えば現在の {{pkg|linux-lts}}) のクライアントは {{ic|rpc-gssd.service}} を起動しなくてはなりません。そうしないとカーネルバグによって約15秒の遅延が発生して dmesg に "RPC: AUTH_GSS upcall timed out" というエラーが表示されます。
150行目: 138行目:
 
# echo "blacklist rpcsec_gss_krb5" > /etc/modprobe.d/rpcsec_gss_krb5-blacklist.conf
 
# echo "blacklist rpcsec_gss_krb5" > /etc/modprobe.d/rpcsec_gss_krb5-blacklist.conf
 
# reboot
 
# reboot
  +
  +
==== systemd のエラー ====
  +
  +
起動時に "Dependency failed for pNFS block layout mapping daemon" という警告が表示されることがあります。親切な警告ですが起動するたびに systemd のメッセージが表示されてしまいます (基本的に NFS は問題なく動作します)。サービスが必要ない場合、systemd のサービスをマスクすることで無効にできます。
  +
  +
# systemctl mask nfs-blkmap.service
   
 
==== Linux からマウントする ====
 
==== Linux からマウントする ====
   
サーバーのエクスポートされたファイルシステムを表示:
+
NFSv3 の場合、次のコマンドを使ってサーバーのエクスポートされたファイルシステムを表示:
 
$ showmount -e servername
 
$ showmount -e servername
   
次にサーバーの NFS スポールーは省略してマウント:
+
NFSv4 場合、root NFS ディレクトリをマウントして利用できるマウントを確認:
  +
$ mount server:/ /mountpoint/on/client
  +
  +
そしてサーバーの NFS エクスポートルートは省略してマウント:
 
# mount -t nfs servername:/music /mountpoint/on/client
 
# mount -t nfs servername:/music /mountpoint/on/client
   
166行目: 163行目:
 
===== /etc/fstab を使う =====
 
===== /etc/fstab を使う =====
   
クライアントを立ち上げたときにいつでも NFS 共有が使えるように、常に稼働させているサーバーでは [[fstab|fstab]] を利用すると便利です。{{ic|/etc/fstab}} ファイルを編集して、設定に合わせて適切な行を追加してください。また、サーバーの NFS エクスポートルートは省略します。
+
クライアントを立ち上げたときにいつでも NFS 共有が使えるように、常に稼働させているサーバーでは [[fstab]] を利用すると便利です。{{ic|/etc/fstab}} ファイルを編集して、設定に合わせて適切な行を追加してください。また、サーバーの NFS エクスポートルートは省略します。
   
 
{{hc|/etc/fstab|<nowiki>
 
{{hc|/etc/fstab|<nowiki>
191行目: 188行目:
   
 
{{hc|1=/etc/fstab|2=
 
{{hc|1=/etc/fstab|2=
servername :/home /mountpoint/on/client nfs users,noauto,x-systemd.automount,x-systemd.device-timeout=10,timeo=14,soft,intr,noatime 0 0
+
servername:/home ''/mountpoint/on/client'' nfs noauto,x-systemd.automount,x-systemd.device-timeout=10,timeo=14 0 0
 
}}
 
}}
   
  +
systemd が fstab の変更に気づくようにクライアントを再起動する必要があります。もしくは、systemd を[[Systemd#ユニットを使う|リロード]]して {{ic|''mountpoint-on-client''.automount}} を再起動して {{ic|/etc/fstab}} の設定を再読み込みしてください。
{{Tip|上記の {{ic|noauto}} はアクセスされるまで NFS 共有をマウントしません: いますぐに利用できるようにしたいときは {{ic|auto}} を使って下さい。<br>ネットワークが立ち上がってなかったり利用できないことが理由でマウントが失敗する問題が発生するときは、{{ic|NetworkManager-wait-online.service}} を [[systemd#ユニットを使う|有効]]にします: このサービスは有効化される前に {{ic|network.target}} の全てのリンクが利用可能になることを保証します。}}
 
   
  +
{{Tip|
{{Note|If you try to automount a NFS-share via systemd which is mounted the same way on the server, the system and all applications who try to use the share may freeze when handling larger amounts of data.}}
 
  +
* 上記の {{ic|noauto}} はアクセスされるまで NFS 共有をマウントしません: いますぐに利用できるようにしたいときは {{ic|auto}} を使って下さい。<br>ネットワークが立ち上がってなかったり利用できないことが理由でマウントが失敗する問題が発生するときは、{{ic|NetworkManager-wait-online.service}} を [[systemd#ユニットを使う|有効]]にします: このサービスは有効化される前に {{ic|network.target}} の全てのリンクが利用可能になることを保証します。
  +
* {{ic|users}} マウントオプションはユーザーによるマウントを許可しますが、{{ic|noexec}} などのオプションも含まれているので注意してください。
  +
}}
  +
  +
{{Note|Users trying to automount a NFS-share via systemd which is mounted the same way on the server may experience a freeze when handling larger amounts of data.}}
   
 
===== autofs を使う =====
 
===== autofs を使う =====
   
複数のマシンを NFS で接続したい場合は [[autofs]] を使うのが便利です。サーバーだけでなくクライアントにもなることができます。他の簡単な方法よりもこの方法が推奨される理由は、サーバーの電源が落とされた時に、クライアントがNFS 共有を見つけられないことについてエラーを投げないからです。詳しくは [[autofs#NFS network mounts]] を見て下さい。
+
複数のマシンを NFS で接続したい場合は [[autofs]] を使うのが便利です。サーバーだけでなくクライアントにもなることができます。他の簡単な方法よりもこの方法が推奨される理由は、サーバーの電源が落とされた時に、クライアントがNFS 共有を見つけられないことについてエラーを投げないからです。詳しくは [[autofs#NFS ネットワークマウント]] を見て下さい。
   
 
==== Windows からマウントする ====
 
==== Windows からマウントする ====
233行目: 235行目:
   
 
NFS を使い倒すつもりならば、ネットワーク設定の要件を満たすように {{ic|rsize}} や {{ic|wsize}} マウントオプションを調整してするのが必須になります。
 
NFS を使い倒すつもりならば、ネットワーク設定の要件を満たすように {{ic|rsize}} や {{ic|wsize}} マウントオプションを調整してするのが必須になります。
  +
  +
=== systemd-networkd で共有を自動マウント ===
  +
  +
systemd-networkd を使っている場合、起動時に nfs がマウントされないことがあります。以下のようなエラーが表示されます:
  +
mount[311]: mount.nfs4: Network is unreachable
  +
  +
解決方法は簡単です。{{ic|systemd-networkd-wait-online.service}} を[[有効化]]して、ネットワークが完全に設定されるまで待機するように systemd を設定してください。サービスが平行して起動しなくなるので起動時間は多少長くなります。
   
 
=== 自動マウントの処理 ===
 
=== 自動マウントの処理 ===
241行目: 250行目:
   
 
{{hc|$ cat /etc/fstab|<nowiki>
 
{{hc|$ cat /etc/fstab|<nowiki>
lithium:/mnt/data /mnt/data nfs noauto,noatime,rsize=32768,wsize=32768,intr,soft 0 0
+
lithium:/mnt/data /mnt/data nfs noauto,noatime,rsize=32768,wsize=32768 0 0
lithium:/var/cache/pacman /var/cache/pacman nfs noauto,noatime,rsize=32768,wsize=32768,intr,soft 0 0</nowiki>
+
lithium:/var/cache/pacman /var/cache/pacman nfs noauto,noatime,rsize=32768,wsize=32768 0 0</nowiki>
 
}}
 
}}
   
251行目: 260行目:
 
''cron'' を使って NFS ホストが到達可能なチェックする {{ic|auto_share}} スクリプトを作成:
 
''cron'' を使って NFS ホストが到達可能なチェックする {{ic|auto_share}} スクリプトを作成:
   
{{hc|/root/bin/auto_share|<nowiki>
+
{{hc|/usr/local/bin/auto_share|<nowiki>
 
#!/bin/bash
 
#!/bin/bash
   
  +
function net_umount {
SERVER="YOUR_NFS_HOST"
 
  +
umount -l -f $1 &>/dev/null
  +
}
   
  +
function net_mount {
MOUNT_POINTS=$(sed -e '/^.*#/d' -e '/^.*:/!d' -e 's/\t/ /g' /etc/fstab | tr -s " " | cut -f2 -d" ")
 
  +
mountpoint -q $1 || mount $1
  +
}
   
  +
NET_MOUNTS=$(sed -e '/^.*#/d' -e '/^.*:/!d' -e 's/\t/ /g' /etc/fstab | tr -s " ")$'\n'b
ping -c 1 "${SERVER}" &>/dev/null
 
   
  +
printf %s "$NET_MOUNTS" | while IFS= read -r line
if [ $? -ne 0 ]; then
 
  +
do
# The server could not be reached, unmount the shares
 
  +
SERVER=$(echo $line | cut -f1 -d":")
for umntpnt in ${MOUNT_POINTS}; do
 
  +
MOUNT_POINT=$(echo $line | cut -f2 -d" ")
umount -l -f $umntpnt &>/dev/null
 
  +
done
 
  +
# Check if server already tested
else
 
  +
if [[ "${server_ok[@]}" =~ "${SERVER}" ]]; then
# The server is up, make sure the shares are mounted
 
  +
# The server is up, make sure the share are mounted
for mntpnt in ${MOUNT_POINTS}; do
 
  +
net_mount $MOUNT_POINT
mountpoint -q $mntpnt || mount $mntpnt
 
  +
elif [[ "${server_notok[@]}" =~ "${SERVER}" ]]; then
done
 
  +
# The server could not be reached, unmount the share
fi
 
  +
net_umount $MOUNT_POINT
  +
else
  +
# Check if the server is reachable
  +
ping -c 1 "${SERVER}" &>/dev/null
  +
  +
if [ $? -ne 0 ]; then
  +
server_notok[${#Unix[@]}]=$SERVER
  +
# The server could not be reached, unmount the share
  +
net_umount $MOUNT_POINT
  +
else
  +
server_ok[${#Unix[@]}]=$SERVER
  +
# The server is up, make sure the share are mounted
  +
net_mount $MOUNT_POINT
  +
fi
  +
fi
  +
done
 
</nowiki>}}
 
</nowiki>}}
   
# chmod +x /root/bin/auto_share
+
# chmod +x /usr/local/bin/auto_share
   
  +
cron エントリか systemd/タイマーを作成して、共有サーバーにアクセスできるか1分ごとに確認するようにしてください。
毎分 {{ic|auto_share}} を実行する root の cron エントリを作成:
 
  +
  +
==== Cron ====
   
 
{{hc|# crontab -e|<nowiki>
 
{{hc|# crontab -e|<nowiki>
* * * * * /root/bin/auto_share
+
* * * * * /usr/local/bin/auto_share
 
</nowiki>}}
 
</nowiki>}}
  +
  +
==== systemd/タイマー ====
  +
  +
{{hc|# /etc/systemd/system/auto_share.timer|<nowiki>
  +
[Unit]
  +
Description=Check the network mounts
  +
  +
[Timer]
  +
OnCalendar=*-*-* *:*:00
  +
  +
[Install]
  +
WantedBy=timer.target
  +
</nowiki>}}
  +
  +
{{hc|# /etc/systemd/system/auto_share.service|<nowiki>
  +
[Unit]
  +
Description=Check the network mounts
  +
  +
[Service]
  +
Type=simple
  +
ExecStart=/usr/local/bin/auto_share
  +
</nowiki>}}
  +
  +
# systemctl enable auto_share.timer
  +
  +
==== systemd で起動時にマウント ====
   
 
systemd のユニットファイルを使って起動時に NFS 共有をマウントすることも可能です。クライアントに NetworkManager がインストール・設定されている場合はユニットファイルは必要ありません。[[#NetworkManager dispatcher]] を見て下さい。
 
systemd のユニットファイルを使って起動時に NFS 共有をマウントすることも可能です。クライアントに NetworkManager がインストール・設定されている場合はユニットファイルは必要ありません。[[#NetworkManager dispatcher]] を見て下さい。
286行目: 343行目:
 
[Unit]
 
[Unit]
 
Description=NFS automount
 
Description=NFS automount
  +
After=syslog.target network.target
   
 
[Service]
 
[Service]
 
Type=oneshot
 
Type=oneshot
 
RemainAfterExit=yes
 
RemainAfterExit=yes
ExecStart=/root/bin/auto_share
+
ExecStart=/usr/local/bin/auto_share
   
 
[Install]
 
[Install]
296行目: 354行目:
 
</nowiki>}}
 
</nowiki>}}
   
Now enable {{ic|auto_share}}.
+
{{ic|auto_share.service}} を[[有効化]]してください。
   
 
==== NetworkManager dispatcher ====
 
==== NetworkManager dispatcher ====
306行目: 364行目:
 
ネットワーク状態の変化にあわせてネットワーク上の共有をマウントする一番簡単な方法は {{ic|auto_share}} スクリプトにシンボリックリンクを作成することです:
 
ネットワーク状態の変化にあわせてネットワーク上の共有をマウントする一番簡単な方法は {{ic|auto_share}} スクリプトにシンボリックリンクを作成することです:
   
# ln -s /root/bin/auto_share /etc/NetworkManager/dispatcher.d/30_nfs.sh
+
# ln -s /usr/local/bin/auto_share /etc/NetworkManager/dispatcher.d/30_nfs.sh
   
はネットワークが利用可能かチェックする以下のマウントスクリプトを使って下さい:
+
ただ、特定の場合でネットワーク接続無効になった後にアンマウントが実行され、KDE Plasma アレッがフリーズしたりすることがあります。
  +
  +
以下のスクリプトを使うことでネットワーク接続が切れる前に NFS 共有を安全にアンマウントすることができます:
   
 
{{hc|/etc/NetworkManager/dispatcher.d/30_nfs.sh|<nowiki>
 
{{hc|/etc/NetworkManager/dispatcher.d/30_nfs.sh|<nowiki>
 
#!/bin/bash
 
#!/bin/bash
   
  +
# Find the connection UUID with "nmcli con show" in terminal.
SSID="CHANGE_ME"
 
  +
# All NetworkManager connection types are supported: wireless, VPN, wired...
  +
WANTED_CON_UUID="CHANGE-ME-NOW-9c7eff15-010a-4b1c-a786-9b4efa218ba9"
   
  +
if [[ "$CONNECTION_UUID" == "$WANTED_CON_UUID" ]]; then
MOUNT_POINTS=$(sed -e '/^.*#/d' -e '/^.*:/!d' -e 's/\t/ /g' /etc/fstab | tr -s " " | cut -f2 -d" ")
 
  +
  +
# Determine all NFS mountpoints from /etc/fstab
  +
MOUNT_POINTS=$(sed -e '/^.*#/d' -e '/^.*:/!d' -e 's/\t/ /g' /etc/fstab | tr -s " " | cut -f2 -d" ")
  +
  +
# or manually list the space-separated mountpoints
  +
# MOUNT_POINTS="/mnt/nfs_share /mnt/other_nfs_storage"
   
  +
# Script parameter $1: NetworkManager connection name, not used
ISNETUP=$(nmcli dev wifi | \grep $SSID | tr -s ' ' | cut -f 10 -d ' ') 2>/dev/null
 
  +
# Script parameter $2: dispatched event
 
  +
# echo "$ISNETUP" >> /tmp/nm_dispatch_log
 
  +
case "$2" in
 
  +
"up")
if [[ "$ISNETUP" == "yes" ]]; then
 
for mntpnt in ${MOUNT_POINTS}; do
+
for mntpnt in ${MOUNT_POINTS}; do
mountpoint -q $mntpnt || mount $mntpnt
+
mountpoint -q $mntpnt || mount $mntpnt
done
+
done
  +
;;
else
 
  +
"pre-down");&
for srvexp in ${MOUNT_POINTS}; do
 
umount -l -f $srvexp &>/dev/null
+
"vpn-pre-down")
  +
for srvexp in ${MOUNT_POINTS}; do
done
 
  +
umount -l -f $srvexp >/dev/null
  +
done
  +
;;
  +
esac
 
fi
 
fi
 
</nowiki>}}
 
</nowiki>}}
  +
スクリプトに実行可能属性を付与:
  +
# chmod +x /etc/NetworkManager/dispatcher.d/30_nfs.sh
  +
{{ic|/etc/NetworkManager/dispatcher.d/pre-down}} にシンボリックリンクを作成して {{ic|pre-down}} イベントをキャッチ:
  +
# ln -s /etc/NetworkManager/dispatcher.d/30_nfs.sh /etc/NetworkManager/dispatcher.d/pre-down.d/30_nfs.sh
  +
  +
上記のスクリプトは別の接続で別の共有をマウントするように修正することができます。
   
  +
[[NetworkManager#dispatcher を使って CIFS 共有のマウントを処理]] を参照。
ワイヤレス SSID "CHANGE_ME" が立ち上がったり落ちたりする度に、{{ic|nfs.sh}} スクリプトが実行され素早く共有をマウント・アンマウントします。
 
   
 
== トラブルシューティング ==
 
== トラブルシューティング ==
   
[[NFS Troubleshooting]] を参照してください。
+
[[NFS/トラブルシューティング]] を参照してください。
   
 
== 参照 ==
 
== 参照 ==
   
* [[Avahi|Avahi]], NFS 共有の自動検出が出来る Zeroconf 実装
 
* HOWTO: [[Diskless network boot NFS root]]
 
 
* [http://publib.boulder.ibm.com/infocenter/pseries/v5r3/index.jsp?topic=/com.ibm.aix.prftungd/doc/prftungd/nfs_perf.htm NFS Performance Management]
 
* [http://publib.boulder.ibm.com/infocenter/pseries/v5r3/index.jsp?topic=/com.ibm.aix.prftungd/doc/prftungd/nfs_perf.htm NFS Performance Management]
 
* [http://blogs.msdn.com/sfu/archive/2008/04/14/all-well-almost-about-client-for-nfs-configuration-and-performance.aspx Microsoft Services for Unix NFS Client info]
 
* [http://blogs.msdn.com/sfu/archive/2008/04/14/all-well-almost-about-client-for-nfs-configuration-and-performance.aspx Microsoft Services for Unix NFS Client info]

2015年8月9日 (日) 01:47時点における版

関連記事

Wikipedia より:

Network File System (NFS) はローカルストレージにアクセスするのと同じようにネットワーク上のファイルにクライアントコンピュータでアクセスできるようにする分散ファイルシステムおよびそのプロトコルである。1984年に Sun Microsystems によって開発された。

インストール

クライアントとサーバーどちらでも必要なのは nfs-utils パッケージのインストールだけです。

ノート: クライアント・サーバーの時計を一致させるために全てのノードで時刻同期デーモンを使うことが強く推奨されます。全てのノードで時計が正確でないと、NFS は望ましくない遅延を生じさせる可能性があります。NTP システムを使ってサーバーとクライアントの両方をインターネット上の正確な NTP サーバーに同期させることが推奨されています。

設定

サーバー

NFS は共有のリスト (以下 "exports" と呼称します) を確認する必要があります。exports は /etc/exports に定義します。ファイルシステムのどのディレクトリでもかまいません。セキュリティ上、ユーザーのアクセスが限られる NFS export root を使うことが推奨されます。以下ではこの考えを例証しています。

/etc/exports に NFS ルートの相対パスで NFS 共有を定義します。ここでは、NFS ルートは /srv/nfs4 とし、/mnt/music を共有させます。

# mkdir -p /srv/nfs4/music

クライアントが書き込めるように music ディレクトリには読み書きの権限を設定しておきます。

そして実際の対象の共有である /mnt/music を NFS 共有に mount コマンドでマウントします:

# mount --bind /mnt/music /srv/nfs4/music

サーバーを再起動してもマウントされるように、bind マウントを fstab に追加:

/etc/fstab
/mnt/music /srv/nfs4/music  none   bind   0   0

共有するディレクトリと、マウントを許可するクライアントマシンの ip アドレスまたはホスト名を exports に追加します:

/etc/exports
/srv/nfs4/ 192.168.1.0/24(rw,fsid=root,no_subtree_check)
/srv/nfs4/music 192.168.1.0/24(rw,no_subtree_check,nohide) # note the nohide option which is applied to mounted directories on the file system.

共有をサブネット全体で開く必要はありません。単一の IP アドレスまたはホスト名だけを指定することも可能です。

利用可能なオプションについての詳細は man 5 exports を見て下さい。

ノート: Modifying /etc/exports while the server is running will require a re-export for changes to take effect: # exportfs -rav.

サーバーを起動する

nfs-server.service起動有効化してください。昔の V2 や V3 のエクスポートを使うには rpcbind.service も必要になります。V4 だけを使う場合は、V2 と V3 を明示的に無効化してください [1]:

/etc/conf.d/nfs-server.conf
NFSD_OPTS="-N 2 -N 3"

上記の設定をしない場合 rpcbind.service が必要になります。

その他

任意のサーバー設定

/etc/conf.d/nfs-server.conf には rpc.nfsd, rpc.mountd, rpc.svcgssd のオプションを任意で記述します。シンプルな設定をする場合はこのファイルを編集する必要はありません。

固定ポート

NFSv3 クライアントのサポートが必要な場合、固定ポートを使うのが良いでしょう。デフォルトでは、NFSv3 による rpc.statdlockd の制御にはランダムな一時的なポートが使われます。ファイアウォールを通して NFSv3 の制御ができるようにするには固定ポートを定義する必要があります。/etc/conf.d/nfs-common.conf を編集して STATD_OPTS を設定してください:

/etc/conf.d/nfs-common.conf
STATD_OPTS="-p 32765 -o 32766 -T 32803"

rpc.mountd/etc/services を読み込んで通常の状態では同じ固定ポート 2048 に bind されます。しかしながら、明示的に定義する必要があるときは /etc/conf.d/nfs-server.conf を編集して MOUNTD_OPTS を設定してください:

/etc/conf.d/nfs-server.conf
MOUNTD_OPTS="-p 20048"

これらの変更を加えたら、複数のサービスを再起動してください。最初に設定オプションを /run/sysconfig/nfs-utils (参照: /usr/lib/systemd/scripts/nfs-utils_env.sh) に書き出して、二番目に新しいポートで rpc.statd を再起動し、最後に新しいポートで lockd (カーネルモジュール) をリロードします。

# systemctl restart nfs-config
# systemctl restart rpcbind
# systemctl restart rpc-statd
# systemctl restart nfs-server

再起動後、サーバーで rpcinfo -p を使って固定ポートが思い通りにいってるか確認してください。クライアントから rpcinfo -p <server IP> を使えば本当に同じ固定ポートを使っているか明らかになります。

NFSv2 との互換性

NFSv2 を使用するクライアント (例えば U-Boot) のサポートが必要な場合、/etc/conf.d/nfs-server.confNFSD_OPTS="-V 2" を設定してください。

ファイアウォール設定

ファイアウォールを通過してアクセスできるようにするには、デフォルト設定の場合 tcp と udp のポート 111, 2049, 20048 を開放する必要があります。rpcinfo -p を使ってサーバーで使用しているポートを確認してください。この設定を iptables でするには、/etc/iptables/iptables.rules を編集して以下の行を含めるようにしてください:

/etc/iptables/iptables.rules
-A INPUT -p tcp -m tcp --dport 111 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 2049 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 20048 -j ACCEPT
-A INPUT -p udp -m udp --dport 111 -j ACCEPT
-A INPUT -p udp -m udp --dport 2049 -j ACCEPT
-A INPUT -p udp -m udp --dport 20048 -j ACCEPT

NFSv3 と、上記の rpc.statdlockd の固定ポートを使用している場合は、それらも設定に追加してください:

/etc/iptables/iptables.rules
-A INPUT -p tcp -m tcp --dport 32765 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 32803 -j ACCEPT
-A INPUT -p udp -m udp --dport 32765 -j ACCEPT
-A INPUT -p udp -m udp --dport 32803 -j ACCEPT

変更を適用するために、iptables サービスを再起動してください。

クライアント

systemd を使って rpcbind.servicenfs-client.target を起動して下さい。また、サービスを有効にして起動時に systemd がクライアントを起動するように設定することも推奨されています。このユニットは他のサービスも必要としますが、それらは systemd によって自動的に起動されます。

3.12.7-2 以前のカーネルバージョン (例えば現在の linux-lts) のクライアントは rpc-gssd.service を起動しなくてはなりません。そうしないとカーネルバグによって約15秒の遅延が発生して dmesg に "RPC: AUTH_GSS upcall timed out" というエラーが表示されます。

ノート: サーバーはこのサービスを実行することを必要としません。
警告: 正しく設定を行わずにこのサービスを実行すると以下のようなエラーメッセージが表示されます:
rpc.gssd[30473]: ERROR: Key table file '/etc/krb5.keytab' not found while beginning keytab scan for keytab 'FILE:/etc/krb5.keytab'
rpc.gssd[30473]: ERROR: gssd_refresh_krb5_machine_credential: no usable keytab entry found in keytab /etc/krb5.keytab for connection with host server.domain
rpc.gssd[30473]: ERROR: No credentials found for connection to server server.domain

and might lock up any NFS mount on the system when mounting and unmounting some mounts very often.

または Red Hat の Bugzilla に書かれているように rpcsec_gss_krb5 をブラックリストに入れます。

# echo "blacklist rpcsec_gss_krb5" > /etc/modprobe.d/rpcsec_gss_krb5-blacklist.conf
# reboot

systemd のエラー

起動時に "Dependency failed for pNFS block layout mapping daemon" という警告が表示されることがあります。親切な警告ですが起動するたびに systemd のメッセージが表示されてしまいます (基本的に NFS は問題なく動作します)。サービスが必要ない場合、systemd のサービスをマスクすることで無効にできます。

# systemctl mask nfs-blkmap.service

Linux からマウントする

NFSv3 の場合、次のコマンドを使ってサーバーのエクスポートされたファイルシステムを表示:

$ showmount -e servername

NFSv4 の場合、root NFS ディレクトリをマウントして利用できるマウントを確認:

$ mount server:/ /mountpoint/on/client

そしてサーバーの NFS エクスポートルートは省略してマウント:

# mount -t nfs servername:/music /mountpoint/on/client

マウントが失敗する場合はサーバーのエクスポートルートを含めて見て下さい (Debian/RHEL/SLES では必須、ディストリビューションによっては -t nfs ではなく -t nfs4):

# mount -t nfs servername:/full/path/to/music /mountpoint/on/client
ノート: Server name needs to be a valid hostname (not just IP address). Otherwise mounting of remote share will hang.
/etc/fstab を使う

クライアントを立ち上げたときにいつでも NFS 共有が使えるように、常に稼働させているサーバーでは fstab を利用すると便利です。/etc/fstab ファイルを編集して、設定に合わせて適切な行を追加してください。また、サーバーの NFS エクスポートルートは省略します。

/etc/fstab
servername:/music   /mountpoint/on/client   nfs4   rsize=8192,wsize=8192,timeo=14,_netdev	0 0
ノート: Consult the NFS and mount man pages for more mount options.

マウントオプションの説明は以下の通り:

rsize と wsize
rsize はサーバーから読み込むときに使用されるバイト数の値です。wsize はサーバーに書き込むときのバイト数の値です。どちらもデフォルトは 1024 ですが、8192 などと値を高く設定することでスループットを改善できます。この値は汎用ではありません。値を変更した後にテストを行うことを推奨します、#パフォーマンスチューニング を見て下さい。
timeo
timeo は RPC タイムアウトの後に再送信を行うまで待機する時間の値です (10分の1秒単位)。最初にタイムアウトした後、再試行する度にタイムアウトの値は2倍になっていき、最大60秒になるか正式なタイムアウトになります。遅いサーバーやトラフィックの多いネットワークに接続する場合、このタイムアウトの値を増やすことでパフォーマンスが改善されるかもしれません。
_netdev
_netdev オプションは共有をマウントする前にネットワークが立ち上がるまで待機するようシステムに通知するオプションです。systemd は NFS がこのオプションを使うことを想定していますが、どんな形式のネットワークファイルシステムであれ、このオプションを使うことはグッドプラクティスと言えます。
minorversion
NFS バージョン 4.1 の Windows Server 2012 (Essentials) の共有をマウントするときは minorversion=1 を使います。
ノート: Setting the sixth field (fs_passno) to a nonzero value may lead to unexpected behaviour, e.g. hangs when the systemd automount waits for a check which will never happen.
systemd で /etc/fstab を使う

systemd の automount サービスを使う方法もあります。接続が遮断されたり、復帰した時に素早くネットワークデバイスを再マウントするため、_netdev よりも好ましいと思われます。さらに、autofs の問題も解決します、下の例を見て下さい:

/etc/fstab
servername:/home  /mountpoint/on/client nfs  noauto,x-systemd.automount,x-systemd.device-timeout=10,timeo=14 0 0

systemd が fstab の変更に気づくようにクライアントを再起動する必要があります。もしくは、systemd をリロードして mountpoint-on-client.automount を再起動して /etc/fstab の設定を再読み込みしてください。

ヒント:
  • 上記の noauto はアクセスされるまで NFS 共有をマウントしません: いますぐに利用できるようにしたいときは auto を使って下さい。
    ネットワークが立ち上がってなかったり利用できないことが理由でマウントが失敗する問題が発生するときは、NetworkManager-wait-online.service有効にします: このサービスは有効化される前に network.target の全てのリンクが利用可能になることを保証します。
  • users マウントオプションはユーザーによるマウントを許可しますが、noexec などのオプションも含まれているので注意してください。
ノート: Users trying to automount a NFS-share via systemd which is mounted the same way on the server may experience a freeze when handling larger amounts of data.
autofs を使う

複数のマシンを NFS で接続したい場合は autofs を使うのが便利です。サーバーだけでなくクライアントにもなることができます。他の簡単な方法よりもこの方法が推奨される理由は、サーバーの電源が落とされた時に、クライアントがNFS 共有を見つけられないことについてエラーを投げないからです。詳しくは autofs#NFS ネットワークマウント を見て下さい。

Windows からマウントする

ノート: Only the Ultimate and Enterprise editions of Windows 7 and the Enterprise edition of Windows 8 include "Client for NFS".

"Client for NFS" サービスが有効になっていれば Windows から NFS 共有をマウントできます (デフォルトでは有効になっていません)。 サービスをインストールするにはコントロールパネルの "Programs and features" から "Turn Windows features on or off" をクリックしてください。"Services for NFS" と副サービス ("Administrative tools" と "Client for NFS") を両方有効にします。

"Services for Network File System" (検索ボックスで探して下さい) を開いて client > properties を右クリックすることでグローバルオプションを設定できます。

警告: Serious performance issues may occur (it randomly takes 30-60 seconds to display a folder, 2 MB/s file copy speed on gigabit LAN, ...) to which Microsoft does not have a solution yet.[2]

エクスプローラーを使って共有をマウントするには:

Computer > Map network drive > servername:/srv/nfs4/music

OS X からマウントする

ノート: OS X はデフォルトでセキュアでない (>1024) ポートを使って共有をマウントしません。

insecure フラグを使って共有をエクスポートし、Finder でマウントする:

Go > Connect to Server > nfs://servername/

またはターミナルでセキュアなポートを使って共有をマウント:

# mount -t nfs -o resvport,nolocks,locallocks servername:/srv/nfs4 /Volumes/servername

nolockslocallocks オプションを使う理由については https://blogs.oracle.com/jag/entry/nfs_on_snow_leopard を見て下さい。

Tips and tricks

パフォーマンスチューニング

NFS を使い倒すつもりならば、ネットワーク設定の要件を満たすように rsizewsize マウントオプションを調整してするのが必須になります。

systemd-networkd で共有を自動マウント

systemd-networkd を使っている場合、起動時に nfs がマウントされないことがあります。以下のようなエラーが表示されます:

mount[311]: mount.nfs4: Network is unreachable

解決方法は簡単です。systemd-networkd-wait-online.service有効化して、ネットワークが完全に設定されるまで待機するように systemd を設定してください。サービスが平行して起動しなくなるので起動時間は多少長くなります。

自動マウントの処理

ローカルのワイヤレスネットワークから nfs 共有を使う必要があるノートパソコンでこの設定は役に立ちます。nfs ホストが到達できない状態になったとき、nfs 共有はアンマウントされ、hard マウントオプションを使っている際にシステムフリーズが起こらなくなります。https://bbs.archlinux.org/viewtopic.php?pid=1260240#p1260240 を参照。

NFS のマウントポイントが /etc/fstab に正しく記述されていることを確認してください:

$ cat /etc/fstab
lithium:/mnt/data          /mnt/data         nfs noauto,noatime,rsize=32768,wsize=32768 0 0
lithium:/var/cache/pacman  /var/cache/pacman nfs noauto,noatime,rsize=32768,wsize=32768 0 0

noauto マウントオプションは起動時に自動的に共有をマウントしないように systemd に命じます。これを設定していないとネットワーク上に共有が存在するかどうかわからないのに systemd が共有をマウントしようとしてブート中にブランクスクリーンで止まってしまいます。

root 以外のユーザー user で NFS 共有をマウントするには fstab にエントリを追加する必要があります。

cron を使って NFS ホストが到達可能なチェックする auto_share スクリプトを作成:

/usr/local/bin/auto_share
#!/bin/bash

function net_umount {
  umount -l -f $1 &>/dev/null
}

function net_mount {
  mountpoint -q $1 || mount $1
}

NET_MOUNTS=$(sed -e '/^.*#/d' -e '/^.*:/!d' -e 's/\t/ /g' /etc/fstab | tr -s " ")$'\n'b

printf %s "$NET_MOUNTS" | while IFS= read -r line
do
  SERVER=$(echo $line | cut -f1 -d":")
  MOUNT_POINT=$(echo $line | cut -f2 -d" ")

  # Check if server already tested
  if [[ "${server_ok[@]}" =~ "${SERVER}" ]]; then
    # The server is up, make sure the share are mounted
    net_mount $MOUNT_POINT
  elif [[ "${server_notok[@]}" =~ "${SERVER}" ]]; then
    # The server could not be reached, unmount the share
    net_umount $MOUNT_POINT
  else
    # Check if the server is reachable
    ping -c 1 "${SERVER}" &>/dev/null

    if [ $? -ne 0 ]; then
      server_notok[${#Unix[@]}]=$SERVER
      # The server could not be reached, unmount the share
      net_umount $MOUNT_POINT
    else
      server_ok[${#Unix[@]}]=$SERVER
      # The server is up, make sure the share are mounted
      net_mount $MOUNT_POINT
    fi
  fi
done
# chmod +x /usr/local/bin/auto_share

cron エントリか systemd/タイマーを作成して、共有サーバーにアクセスできるか1分ごとに確認するようにしてください。

Cron

# crontab -e
* * * * * /usr/local/bin/auto_share

systemd/タイマー

# /etc/systemd/system/auto_share.timer
[Unit]
Description=Check the network mounts

[Timer]
OnCalendar=*-*-* *:*:00

[Install]
WantedBy=timer.target
# /etc/systemd/system/auto_share.service
[Unit]
Description=Check the network mounts

[Service]
Type=simple
ExecStart=/usr/local/bin/auto_share
# systemctl enable auto_share.timer

systemd で起動時にマウント

systemd のユニットファイルを使って起動時に NFS 共有をマウントすることも可能です。クライアントに NetworkManager がインストール・設定されている場合はユニットファイルは必要ありません。#NetworkManager dispatcher を見て下さい。

/etc/systemd/system/auto_share.service
[Unit]
Description=NFS automount
After=syslog.target network.target

[Service]
Type=oneshot
RemainAfterExit=yes
ExecStart=/usr/local/bin/auto_share

[Install]
WantedBy=multi-user.target

auto_share.service有効化してください。

NetworkManager dispatcher

上で説明している方法に加えて、ネットワークの状態が変わった時にスクリプトを実行するよう NetworkManager を設定することもできます。

NetworkManager-dispatcher サービスを有効化・起動してください。

ネットワーク状態の変化にあわせてネットワーク上の共有をマウントする一番簡単な方法は auto_share スクリプトにシンボリックリンクを作成することです:

# ln -s /usr/local/bin/auto_share /etc/NetworkManager/dispatcher.d/30_nfs.sh

ただし、特定の場合では、ネットワーク接続が無効になった後にアンマウントが実行され、KDE Plasma アプレットがフリーズしたりすることがあります。

以下のスクリプトを使うことでネットワーク接続が切れる前に NFS 共有を安全にアンマウントすることができます:

/etc/NetworkManager/dispatcher.d/30_nfs.sh
#!/bin/bash

# Find the connection UUID with "nmcli con show" in terminal.
# All NetworkManager connection types are supported: wireless, VPN, wired...
WANTED_CON_UUID="CHANGE-ME-NOW-9c7eff15-010a-4b1c-a786-9b4efa218ba9"

if [[ "$CONNECTION_UUID" == "$WANTED_CON_UUID" ]]; then
    
    # Determine all NFS mountpoints from /etc/fstab
    MOUNT_POINTS=$(sed -e '/^.*#/d' -e '/^.*:/!d' -e 's/\t/ /g' /etc/fstab | tr -s " " | cut -f2 -d" ")
    
    # or manually list the space-separated mountpoints
    # MOUNT_POINTS="/mnt/nfs_share /mnt/other_nfs_storage"

    # Script parameter $1: NetworkManager connection name, not used
    # Script parameter $2: dispatched event
    
    case "$2" in
        "up")
            for mntpnt in ${MOUNT_POINTS}; do
                mountpoint -q $mntpnt || mount $mntpnt
            done
            ;;
        "pre-down");&
        "vpn-pre-down")
            for srvexp in ${MOUNT_POINTS}; do
                umount -l -f $srvexp >/dev/null
            done
            ;;
    esac
fi

スクリプトに実行可能属性を付与:

 # chmod +x /etc/NetworkManager/dispatcher.d/30_nfs.sh

/etc/NetworkManager/dispatcher.d/pre-down にシンボリックリンクを作成して pre-down イベントをキャッチ:

 # ln -s /etc/NetworkManager/dispatcher.d/30_nfs.sh /etc/NetworkManager/dispatcher.d/pre-down.d/30_nfs.sh

上記のスクリプトは別の接続で別の共有をマウントするように修正することができます。

NetworkManager#dispatcher を使って CIFS 共有のマウントを処理 を参照。

トラブルシューティング

NFS/トラブルシューティング を参照してください。

参照