我用的是centos7
第0步: 關閉防火墻
systemctl stop firewalld.service #停止firewall
systemctl disable firewalld.service #禁止firewall開機啟動
第一步:安裝NFS
yum -y install nfs-utils rpcbind
nfs 的配置文件 /etc/expots
第二步:配置
vi /etc/exports
/mnt/share *(rw,async,no_root_squash)
exportfs -rv (這個命令可以驗證我們設置的配置文件/etc/exports是否正確
第三步:設置NFS為啟動服務
chkconfig --list | grep nfs
chkconfig nfs on
service nfs restart
遇到的問題
[root@localhost ~]# exportfs -rv
exportfs: /etc/exports:1: syntax error: bad option list
exportfs: No file systems exported!
問題:/mnt/share *(rw,async,no_root_squash) 逗號之間有空格
解決:把,之間的空格取消掉就行了
錯誤: 客戶端無法寫入文件
解決: 發現exports目錄權限中,有這么一個參數no_root_squash。其作用是:登入 NFS 主機使用分享目錄的使用者,如果是 root 的話,那么對于這個分享的目錄來說,他就具有 root 的權限!。默認情況使用的是相反參數 root_squash:在登入 NFS 主機使用分享之目錄的使用者如果是 root 時,那么這個使用者的權限將被壓縮成為匿名使用者,通常他的 UID 與 GID 都會變成 nobody 那個身份。
因為我的客戶端是使用root登錄的,自然權限被壓縮為nobody了,難怪無法寫入。將配置信息改為: /testfs 10.0.0.0/8(rw,no_root_squash)
據說有點不安全,但問題是解決了。
參考:http://www.2cto.com/os/201304/202056.html
http://www.blogjava.net/gf7/archive/2012/12/12/392843.html
建議:
1.使用NFS,就要使用portmap,NFS嚴重依賴于portmap,所以不要試圖去停止它(portmap)。
2.當不能umount /nfs 分區時,試著使用umount -f /nfs,一般都能成功。
3.當umount -f /nfs不能umount時,可以試試umount -l /nfs. umount -l是最終級的umount。