Server 端

vi /etc/rc.conf
rpcbind_enable="YES"
rpcbind_flags=""
nfs_server_enable="YES"
nfs_server_flags="-u -t -n 4"
mountd_enable="YES"
mountd_flags="-r"

nfs_server_flags 中,-u 表示提供 UDP 方式連線,而 -t 表示以 TCP 方式連線
-n 4 表示我們一次打開四個 nfsd 的 daemon

#自行建立
vi /etc/exports

加入

/usr/src /usr/local     -maproot=root
/usr/home  -alldirs  -maproot=root -network 192.168.0.0 -mask 255.255.255.0
參數 意義
-ro 表示 read only,唯讀。
-maproot=user 如果 client 以 root 存取,則將它的權限對映成本機 user 的權限。
-mapall=user 將所有 client 的存取連線對映到 user,也就是說所有人的身份都轉成 user。
-alldirs 可以讓使用者將該分享資料夾的任一目錄做為 mount point。也就是說當我們分享的是 /usr 時,client
也可以將 /usr/include 當成掛入點來 mount。但前提是 /usr 必須是一個獨立的 filesystem,也就是說 /usr
必須是獨立分割成一個 slice。
-network IP -mask MASK  指定允許連線的網域。
/etc/rc.d/rpcbind start
/etc/rc.d/mountd start
/etc/rc.d/nfsd start

查看log,若沒噴錯誤訊息就是代表成功了

tail -f /var/log/messages

若有更改/etc/exports裡的設定

需要再下

kill -HUP `cat /var/run/mountd.pid`

重新讀取設定檔

Client端

vi /etc/rc.conf

加入

nfs_client_enable="YES"
nfs_client_flags="-n 4"

測試

mount_nfs -i -s 210.71.4.186:/usr/home /mnt#自己本機空資料夾名稱
#NFS連線觀察
showmount -e 210.71.4.186

參數 -i 允許我們在使用 Ctrl+C 來中斷 mount 的動作。參數 -s 是使用 soft mount 模式,當檔案系統對於所 mount 的伺服器操作失敗時,重試幾次後就不再試了。

卸載

umount /mnt

開機自動mount

#編輯/etc/fstab
vim /etc/fstab
#加入
192.168.1.1:/volume1/test  /mnt        nfs rw  0   0

fstab參數



device
    裝置名稱

mount-point
    檔案系統要掛載到的目錄

fstype
    檔案系統類型。 FreeBSD 預設的檔案系統是 ufs。

options
    可讀可寫的檔案系統用 rw,而唯讀的檔案系統則是用 ro,後面視需要還可以加其他選項。 常見的選項如 noauto 是用在不要於開機過程中自動的掛載的檔案系統。

dumpfreq
    由此項目決定那些檔案系統需要dump。 如果這格空白則以零為預設值。

passno
    這個項目決定檔案系統檢查的順序。 對於要跳過檢查的檔案系統,它們的 passno 值要設為零。 根檔案系統的 passno 值應設為一 (因為需要比所有其他的還要先檢查),而其他的檔案系統的 passno 值應該要設得比一大。 若有多個檔案系統具有相同的 passno 值,則 fsck 會試著平行地(如果可能的話)檢查這些檔案系統。

Categories: FreeBSD