この記事では、あるサーバAから、他のサーバBにNFSでマウントする方法を紹介する。
特に、fstabとexportsという設定ファイルを使用したマウント方法について紹介する。
マウントとは(IT)
ITにおけるマウントとは、
他のデバイス(サーバなど)を自身につなげて、操作できるようにすることを指す。
下記記事にて、ITにおけるマウントは詳しく説明しているので、ITにおけるマウントにおいて詳しく理解しておきたい人は参考にして欲しい(飛ばしOK)。本記事で取り扱うNFSというプロトコルについても紹介している。
NFSでマウントする例(fstabとexports使用
本記事ではNFSを用いてマウントする方法(fstabとexports)を紹介する。
その例として、サーバAの/var/www/dirAを、サーバBの/dirBにマウントするケースを例に詳細な方法を紹介していく。
マウントすると、サーバAからサーバBの/dirBの内容に対して、読み込んだり書き込んだり(※設定するオプションで異なってくる)ができるようになる

NFSを用いたマウントを実現するためには、下記の両設定ファイルを編集する必要がある
- マウントする側のサーバ → /etc/fstab
- マウントされる側のサーバ → /etc/exports
NFSでのサーバーマウント手順
では具体的にNFSを用いたサーバー同士のマウント手順を説明していく。
①始めに、nfsdが起動していることを確認
まずは両サーバーで、
nfsd(NFSデーモン)が起動していることを確認する。以下のコマンドを実行する。
#nfsdが起動していることを確認する
service nfs status
nfsdが起動していない場合は、以下のコマンドでnfsdを起動する。
# nfsdを起動する
service nfs on
②サーバA(マウントする側)の作業
/etc/fstab の編集
/etc/fstabは、マウントする側のサーバが、マウントするための情報を記載するファイル。
このファイルを編集することで、マウントの設定を変更することができる。

viエディタかなんかでfstabを編集する。
今回マウント先サーバBのIPアドレスが192.168.1.2なら、例えば下記のように記述をすることができる(/etc/fstabに追記していく。一行毎に一つのマウント設定)。
##サーバAの/etc/fstabに下記一行を追記
※
※ デフォルトの記述が数行
※
192.168.1.2:/dirB /var/www/dirA nfs rw,auto 0 0 #この行を追記
/etc/fstabにはデフォルトで数行記述がしてあるかもしれないが、デフォルトの行なので無視してOKだ。それより下の行に、「#この行を追記」と記載した行を追記すれば良い。
上記/etc/fstabの書式は下記、各項目はスペースで区切る。
① | ② | ③ | ④ | ⑤ | ⑥ |
192.168.1.2:/dirB | /var/www/dirA | nfs | rw,auto | 0 | 0 |
マウント先ポイント | マウント元ポイント | ファイルシステムの種類(nfs) | マウントオプション | dumpフラグ | ブート時にfsckがチェックする順序 |
見方として大事なのは①と②と③
- マウント先のポイント(ディレクトリ)を指定する。今回のように外部のサーバをマウントポイントにする場合は、「IPアドレス:」を先頭に付与する。マウント先が自身の場合はIPアドレスは省略する。
- マウント元となる自身のポイント(dirA)を指定する
- には今回nfsでマウントしたいので、nfsと指定する
④以降まで書くと、長いので書式は別にまとめた、参考に
③サーバB(マウントされる側)の作業
/etc/exports の編集
/etc/exportsは、マウントされる側のサーバが、マウントされるための情報を記載するファイル。ここに、マウントを許可するデバイスのIPなど、マウントされる側に必要な設定情報を書き込んでいく。

同じくviエディタかなんかで/etc/exportsを編集していく。
サーバAのIPアドレスが192.168.1.1の場合、例えば下記のように/etc/exportsに記述することができる(/etc/fstab同様、最後尾の一行として追記)。
##サーバBの/etc/exportsに下記一行を追記
/dirB 192.168.1.1(rw,no_root_ squash
)
上記/etc/exportsの書式は下記
① | ② | ③ |
/dirB | 192.168.1.1 | (rw,no_root_squash) |
マウント許可ポイント | マウントを許可するデバイス ※③との間をスペースで区切らない |
オプション ※②との間をスペースで区切らない |
見方として大事なのは①と②
- マウントを許可するディレクトリ(自身)を指定する
- ①に対しマウントしてくるサーバをIPなどで指定する
exportsときたら、「②からのマウントを①に許すよ」と覚えよう。
③のオプションは別記事でまとめるほどではないと思ったのでまとめないが、今回は、「マウントされて読み書きされてもok」なオプションが書いてある。
④マウントの設定を反映させる、mount -a
最後にサーバA(マウントする側)にて、下記コマンドを実行して、マウントする。
※④マウントオプションにautoを指定していること(mount -aの許可オプション)。
#サーバA(マウントする側)にて、実行。fstabの記述のマウント情報を全て反映させる。
mount -a
上記は、/etc/fstabに書いたマウント情報を全て反映するコマンドだ。
これで上記サーバBへのマウント情報の記述が反映される。
参考までに、mount -aでfstabを使用して一括でマウントするのではなく、fstabをせずに個別のマウントポイントのみマウントしたいよという場合は以下のmount -tが使用できる。
##個別のマウント(fstabを使用しなくても良い)
mount -t nfs [IPアドレス]:[マウント先のパス] [マウント元のパス]
⑤マウントできているか確認する
最後に、④の手順にて、マウントが正しく実行されたかを確認する。
現在のマウント状態は、下記のコマンドで確認できるので、実行する
#サーバA(マウントする側)にて、実行。マウント状態を確認する。
mount
以下は筆者のmacでmountコマンドを打った結果

一行一行「〇〇 on △△」と言う書式になっている。
これは、「〇〇(今回ならサーバB)のマウントポイントは、△△(今回ならサーバAのマウントポイント)からマウントしていますよ」ということを表している。
今回のように他のサーバにマウントしている状態なら、先頭にマウント先のデバイスのIPなどが表示される。なので、今回サーバAでmountを打った場合
192.168.1.2:/dirB on /var/www/dirA(オプション)
という行が表示されているはず
マウントを解除(umount)する方法
ちなみにマウントを解除するumountコマンドも合わせて紹介する。
書式は以下
umount マウントポイント
今回なら/var/www/dirAがマウントポイントになっているので次のようになる
umount /var/www/dirA
マウントポイントだけ指定してやればいいので簡単
nfsを使用したマウントまとめ
最後に、本記事でのまとめをして終わりにしようかと思う。
mountコマンドについて
mountコマンドは、fstabに記述したmountの設定を読み取って表示する。
そのうち有効な(書式が正しくてマウントがちゃんと反映されている)ものを表示する。
マウントされる側のデバイスを急に死なせない
マウントされている側のデバイスが急に死ぬ(電源が落ちるなど)と、マウントしている側がマウント先を見つけれずループになってエラーになる。
なので必ずアンマウントしてから電源を落とす。
参考
https://e-words.jp/w/%E3%83%9E%E3%82%A6%E3%83%B3%E3%83%88.html
https://linuc.org/study/knowledge/505/