ubuntu配置nfs鏈接開發板

1、啓動ubuntu,設置ip地址(必須與開發板處於同一網段)固然已經處於同一網段就沒必要設置了 linux

lingd@ubuntu :~$ sudo ifconfig eth0 192.168.0.26 netmask 255.255.255.0 ubuntu


2、爲ubuntu安裝NFS 服務器

1.安裝NFS 網絡

lingd@ubuntu :~$ sudo apt-get install nfs-kernel-server app

同時會有兩個軟件包nfs-commonportmap被安裝上 測試

2.修改NFS配置文件 spa

lingd@ubuntu :~$ vi /etc/exports .net

內容爲: rest

/home/lingd/arm  192.168.0.*(rw,sync,no_root_squash,no_subtree_check) orm

前面不用加#

/home/lingd/arm---要共享的目錄

192.168.0.*---容許訪問的網段,也能夠是ip地址、主機名(可以被服務器解析)、*(全部人都能訪問)

(rw,sync,no_root_squash,no_subtree_check)- rw:/寫權限

                                                   sync:數據同步寫入內存和硬盤

                                        no_root_squash:服務器容許遠程系統以root特權存取該目錄

                             no_subtree_check:關閉子樹檢查

  其餘選項能夠經過man exports查閱man文檔


3.啓動服務

重啓portmapper(端口映射)服務

lingd@Ubuntu:~$ sudo service portmap restart

portmap start/running, process 550

重啓NFS服務

lingd@ubuntu :~$ sudo service nfs-kernel-server restart

 * Stopping NFS kernel daemon                                                [ OK ] 

 * Unexporting directories for NFS kernel daemon...                      [ OK ] 

 * Exporting directories for NFS kernel daemon...                          [ OK ] 

 * Starting NFS kernel daemon                                                  [ OK ]



3、測試

1、本機掛載

lingd@Ubuntu:~$ ls /mnt/nfs/

lingd@ubuntu :~$ sudo mount -t nfs -o nolock localhost:/home/lingd/arm/ /mnt/nfs/

lingd@ubuntu :~$ ls /mnt/nfs/

lingd@ubuntu :~$ sudo umount /mnt/nfs 

lingd@ubuntu :~$ ls /mnt/nfs/


2.開發板掛載

lingd@Ubuntu:~$ telnet 192.168.0.25 (開發板的ip地址

Trying 192.168.0.25...

Connected to 192.168.0.25.

Escape character is '^]'.

(none) login: root

Password: 

~ # ls /mnt                                                 

ext1  ext2

~ # mount -t nfs -o nolock 192.168.0.26(宿主機的ip,同一網段:/home/lingd/arm  /mnt8120

~ # ls /mnt

~ # umount /mnt

~ # ls /mnt


4、掛載nfs文件系統失敗的緣由

1nfs錯誤信息

Too many levels of remote in path:試圖掛載一個存在的文件系統

Permission deniedNFS服務器不讓客戶機掛接,也多是由於用戶在服務器上不存在

No such host:一般是DNS配置錯誤

No such file or directory:一般是訪問的目錄不存在

NFS server is not responding:一般是NFS已經超過負載或者NFS已經中止工做

Stale file handle:在NFS客戶端關閉以前客戶端訪問的文件被刪除

Fake hostnameForwardreverseDNS記錄在NFS客戶端下不存在

2、掛載nfs文件系統失敗的緣由

1)主機和網絡不通:看看網線鏈接、主機和開發板ip是否在同一網段、防火牆有沒有關閉等。不只vmwarelinux的防火牆要關閉,vmwarexp的防火牆也要關閉,我就由於xp中的eset殺毒軟件的防火牆使nfs沒法掛載(能夠掛本機,沒法掛遠程),折騰了一天,後來才發現是xp中的防火牆搞的鬼!


2)使用的mount命令不正確。能夠參照上面的例子改一下;或者man nfs查閱一下nfsman文檔,裏面有nfsmount的使用介紹和選項解釋


3nfs配置文件/etc/exports配置不正確。能夠參照上面的例子改一下;或者man exports查閱一下/etc/exportsman文檔


4)必要時從新啓動NFSportmap服務。

sudo service portmap restart

sudo service nfs-kernel-server restart


5)內核不支持NFSRPC服務(可能須要從新配置、編譯、燒寫內核)。

普通的內核應有的選項爲CONFIG_NFS_FS=mCONFIG_NFS_V3=yCONFIG_ NFSD=mCONFIG_NFSD_V3=yCONFIG_SUNRPC=m

rpcinfo命令用於顯示系統的RPC信息,通常使用-p參數列出某臺主機的RPC服務。rpcinfo -p命令檢查服務器時,應該能看到portmapperstatusmountdnfsnlockmgr。用該命令檢查客戶端時,應該至少能看到portmapper服務(開發板可能不帶該命令)。rpcinfo -p可知,nfs使用的port2049portmapper使用111port


5、nfs相關的配置文件與命令

1/etc/exports

NFS的主要配置文件,不過系統並無默認值,因此這個文件不必定會存在(須要本身創建)。


2/usr/sbin/exportfs

用於維護NFS共享資源的命令,用在nfs server端。修改/etc/exports後,只要使用exportfs從新掃瞄一次 /etc/exports,從新將設定加載便可,並不必定要重啓nfs服務

命令格式: exportfs [-aruv]

參數說明以下。

1-a:所有掛載或卸載(export or unexpect/etc/exports文件內的目錄。

2-r:從新掛載(reexport/etc/exports中的目錄,並將/var/lib/nfs/etab中的內容與/etc/exports同步。

3-u:卸載某些目錄。

4-v:顯示exportfs處理信息。


3/usr/sbin/showmount

用於查看指定主機NFS共享出來的目錄資源,主要用在Client端。

命令格式: showmount [-ade] hostname/服務器ip地址

參數說明以下。

1-a-all:以host:dir格式顯示客戶主機名和掛載的目錄。

2-d-directories:僅顯示被客戶掛載的目錄名。

3-e-exports:顯示指定NFS服務器的nfs共享目錄。


4/var/lib/nfs/etab

/etc/exports裏列舉的是用戶但願nfs共享的目錄,而/var/lib/nfs/etab裏面是Ubuntu實際共享的目錄。它記錄了NFS所共享出來的目錄的完整權限設定值。/var/lib/nfs/etabexportfs維護,每次exportfs都會掃描/etc/exports以創建新的/var/lib/nfs/etab,每當nfs客戶請求掛載共享目錄時mountd都會讀取該文件以檢測客戶和目錄的權限。同時/var/lib/nfs/etab中共享的目錄會保存在內核nfs共享表(export table)中


telnet鏈接開發板需注意的問題

1、物理上,開發板和PC間必須鏈接,能夠經過路由、hub、交換器或者PC開發板直接鏈接。

2、網絡設置必須相同,IP同一個網段,網關、掩碼、DNS等,而且可以ping通。

3、完成了前面兩條後,就能夠實現telnet了(前提文件系統裏面有telnet這個功能。)

相關文章
相關標籤/搜索