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-common和portmap被安裝上 測試 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 /mnt(8120機) ~ # ls /mnt ~ # umount /mnt ~ # ls /mnt 4、掛載nfs文件系統失敗的緣由 1、nfs錯誤信息 Too many levels of remote in path:試圖掛載一個存在的文件系統 Permission denied:NFS服務器不讓客戶機掛接,也多是由於用戶在服務器上不存在 No such host:一般是DNS配置錯誤 No such file or directory:一般是訪問的目錄不存在 NFS server is not responding:一般是NFS已經超過負載或者NFS已經中止工做 Stale file handle:在NFS客戶端關閉以前客戶端訪問的文件被刪除 Fake hostname:Forward和reverse的DNS記錄在NFS客戶端下不存在 2、掛載nfs文件系統失敗的緣由 (1)主機和網絡不通:看看網線鏈接、主機和開發板ip是否在同一網段、防火牆有沒有關閉等。不只vmware中linux的防火牆要關閉,vmware外xp的防火牆也要關閉,我就由於xp中的eset殺毒軟件的防火牆使nfs沒法掛載(能夠掛本機,沒法掛遠程),折騰了一天,後來才發現是xp中的防火牆搞的鬼! (2)使用的mount命令不正確。能夠參照上面的例子改一下;或者man nfs查閱一下nfs的man文檔,裏面有nfs中mount的使用介紹和選項解釋 (3)nfs配置文件/etc/exports配置不正確。能夠參照上面的例子改一下;或者man exports查閱一下/etc/exports的man文檔 (4)必要時從新啓動NFS和portmap服務。 sudo service portmap restart sudo service nfs-kernel-server restart (5)內核不支持NFS和RPC服務(可能須要從新配置、編譯、燒寫內核)。 普通的內核應有的選項爲CONFIG_NFS_FS=m、CONFIG_NFS_V3=y、CONFIG_ NFSD=m、CONFIG_NFSD_V3=y和CONFIG_SUNRPC=m。 rpcinfo命令用於顯示系統的RPC信息,通常使用-p參數列出某臺主機的RPC服務。rpcinfo -p命令檢查服務器時,應該能看到portmapper、status、mountd、nfs和nlockmgr。用該命令檢查客戶端時,應該至少能看到portmapper服務(開發板可能不帶該命令)。由rpcinfo -p可知,nfs使用的port爲2049,portmapper使用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/etab由exportfs維護,每次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這個功能。)