UNIXのファイル共有システム、NFSv4をインストールする
- 2020.06.02
- Linux Ubuntu 20.04
- nfs
Windowsのファイル共有はsambaですが、LinuxにはNFSというファイル共有システムがあります。
sambaは共有設定などが非常に面倒なことと、WindowsからNFSを利用することもできるようなので、今回はUbuntu20.04にNFSをセットアップしてみましょう。
NFSサーバのインストール
まずはNFSサーバをインストールします。
sudo apt install nfs-kernel.server
共有の設定
続いて、共有設定である /etc/exports を開きます。
sudo nano /etc/exports
最初の段階ではコメントしか記載されていません。
# /etc/exports: the access control list for filesystems which may be exported
# to NFS clients. See exports(5).
#
# Example for NFSv2 and NFSv3:
# /srv/homes hostname1(rw,sync,no_subtree_check) hostname2(ro,sync,no_subtree_check)
#
# Example for NFSv4:
# /srv/nfs4 gss/krb5i(rw,sync,fsid=0,crossmnt,no_subtree_check)
# /srv/nfs4/homes gss/krb5i(rw,sync,no_subtree_check)
#
パーミッションは、ファイルシステムのものがそのまま使われる。smbより楽である。
共有フォルダごとに1行、次のように記載する。
/exthdd/nfs/git 192.168.10.0/24(rw,crossmnt,fsid=0,no_subtree_check) /exthdd/nfs/free 192.168.10.0/24(rw,crossmnt,fsid=0,no_subtree_check)
[共有したいフォルダ] [接続許可IP/サブネットマスク](オプション)
となっている。
指定できるオプションは次の通り。
rw | 書き込み可 |
ro | 読み込み専用 |
sync | 同期書き込み:ストレージに保存されるまで次の動作に移らない。ストレージの書き込み速度に依存する。 |
async | 非同期書き込み:メモリにキャッシュしてから書き込む。ストレージが遅い場合などに高速で書き込むが、クラッシュしたり停電すると、データが失われる危険性が高くなる。 |
root_squash | root権限でのアクセスを許さない。rootでアクセスした場合、nobodyユーザーとして扱われる。指定しなくてもデフォルトで有効。 |
subtree-check | アクセス権を厳密に確認する。セキュリティ性は高まるが、遅くなるのでファイルが多い場合は使わないほうが良いとされているらしい。 |
no-subtree-check | アクセス権を厳密に確認しない。 |
crossmnt fsid=0 | エクスポートする親ディレクトリに指定するおまじない的なもの。 |
hide / nohide | あとで |
共有を開始する
exportsを設定し終えたら、次のコマンドを実行する。
sudo exportfs -ra
共有の確認
共有されているフォルダを確認する。
sudo exportfs -v
/exthdd/nfs/git
192.168.10.0/255.255.255.0(rw,wdelay,crossmnt,root_squash,no_subtree_check,fsid=0,sec=sys,rw,secure,root_squash,no_all_squash)
/exthdd/nfs/free
gss/krb5i(rw,wdelay,crossmnt,root_squash,no_subtree_check,fsid=0,sec=sys,rw,secure,root_squash,no_all_squash)
sudo showmount -e
Export list for macmini:
/exthdd/nfs/free gss/krb5i
/exthdd/nfs/git 192.168.10.0/255.255.255.0
クライアントのインストール
クライアントは次のようにインストールする。
sudo apt install nfs-common
NFSフォルダのマウント
マウントするには次のようにする。
sudo mount [ホスト名]:[共有フォルダ名] [マウントポイント]
mkdir ~/nfs
具体例
sudo mount macmini.local:/exthdd/nfs/git/ ~/nfs/
ポイントは、共有フォルダ名はホストPCのフォルダをフルパスで記載すること。Windowsの共有のつもりで末端の共有フォルダ名を指定する感覚でやると、マウントできない。
sudo mount macmini.local:/git/ ~/nfs/
ダメな例(フルパスで指定していない)
アンマウント
マウントを解除するには次のようにする
sudo umount [マウントポイント]
-
前の記事
外付けHDDのマウント、次回起動時もマウントするように設定する方法 2020.06.01
-
次の記事
ubuntu20.04でgitサーバーを立てる 2020.06.02