目標板掛載NFS時 需要nolock參數的網摘

nfs方式共享主機文件

作者:qtopia2009-7-3 10:00:00
一.   檢查nfs狀態:
#service nfs status

二.   在主機創建nfs共享文件夾:
#mkdir /nfsroot
#e cho “/nfsroot 192.168.1.118(rw,sync,no_root_squash)” >/etc/exports
#cat /etc/exports
/nfsroot 192.168.1.118(rw.sync,no_root_squash)
這裏我們創建了/nfsroot以用於nfs 共享,並在/etc/exports文件中將共享屬性IP設置爲192.168.1.118(開發板的)的用戶可讀寫,並且由no_root_squash指定信任客戶端.

三.   起動主機nfs服務
#service nfs start

四,在開發板mount
#mount 192.168.1.100:/nfsroot  /mnt/

無任何提示表示成功,可以操作/mnt目錄,cp、mv文件等
有如下錯誤提示:
/ # mount -t nfs 192.168.1.249:/appdata /mnt
portmap: server localhost not responding, timed out
RPC: failed to contact portmap (errno -5).
portmap: server localhost not responding, timed out
RPC: failed to contact portmap (errno -5).
lockd_up: makesock failed, error=-5
portmap: server localhost not responding, timed out
RPC: failed to contact portmap (errno -5).
mount: Mounting 192.168.1.249:/appdata on /mnt failed: Input/output error

可能原因:
nfs mount 默認選項包括文件鎖,依賴於portmap提供的動態端口分配功能;
簡單的解決方法:kill 文件鎖(lockd)或者mount -o nolock ;
上面說的文件鎖具體是什麼原因,還沒有找到更好的解決辦法。
注意:主機防火牆有設置時,也可能導致目標板無法正常訪問。

改用: mount  -o nolock 192.168.1.100:/nfsroot /mnt 可解決.

嵌入式開發中配置和使用NFS
主機系統:RHEL 4
目標板:AT91SAM9263-EK

配置主機NFS服務
主機IP:192.168.1.249
編輯/etc/exports文件,格式可以參考man exports,裏面有詳細的參數說明和示例。
如,要共享主機的/appdata目錄給目標板,具有讀寫功能,一般都指定用戶(root)來操作,否則默認會出現uid和gid都是-2的數字(可以通過anonuid和anongid來設置匿名操作的相關ID,或者用root_squash來設置root操作),最後寫出的exports樣子如下:
[wqch@localhost ~]$ cat /etc/exports
/appdata 192.168.1.*(rw,sync,no_root_squash)

以root執行exportfs –r,重新加載導出內容,若修改了文件exports,直接執行此命令即可;
啓動portmap服務,service portmap start ;(爲什麼要這個?因爲portmap定向RPC通信數據流如果,若不運行portmap,則NFS客戶機無法找到從NFS服務器共享的目錄。)
啓動nfs服務,service nfs start;

目標板操作
目標板IP:192.168.1.8
啓動目標板並連通網絡後,首先查看kernel自身是否支持nfs,
cat /proc/filesystems
查看其中是否有nfs一行,若沒有則表示內核不支持nfs,就需要重新編譯和燒內核;有則OK,接下來就可以直接mount操作。
具體命令是:
mount –o nolock 192.168.1.249:/appdata /mnt
無任何提示表示成功,可以操作/mnt目錄,cp、mv文件等。
使用命令mount –t nfs 192.168.1.249:/appdata /mnt ,有如下錯誤提示:
/ # mount -t nfs 192.168.1.249:/appdata /mnt
portmap: server localhost not responding, timed out
RPC: failed to contact portmap (errno -5).
portmap: server localhost not responding, timed out
RPC: failed to contact portmap (errno -5).
lockd_up: makesock failed, error=-5
portmap: server localhost not responding, timed out
RPC: failed to contact portmap (errno -5).
mount: Mounting 192.168.1.249:/appdata on /mnt failed: Input/output error

可能原因:
nfs mount 默認選項包括文件鎖,依賴於portmap提供的動態端口分配功能;
簡單的解決方法:kill 文件鎖(lockd)或者mount -o nolock ;
上面說的文件鎖具體是什麼原因,還沒有找到更好的解決辦法。
注意:主機防火牆有設置時,也可能導致目標板無法正常訪問。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章