nfs方式共享主機文件
一. 檢查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 ; 上面說的文件鎖具體是什麼原因,還沒有找到更好的解決辦法。 注意:主機防火牆有設置時,也可能導致目標板無法正常訪問。 |