2010年5月6日 星期四

Embedded Linux mounting NFS in VMWare

今天一整個下午都在研究...
為啥我要mount我Host端架的NFS Server會一直mount不到

看CDK板的Spec. 說明看了老半天
IP一直換換換 結果每次要mount NFS的時候都會出現:
mount: RPC: Unable to receive; errno = No route to host

而且不管由Host端的OS ping板子
或是由板子ping回Host端的OS 都ping不到...

搞了一整個下午才發現原來因為我是用Windows + Linux @ VMWare
然後NFS Server也是架在VMWare裡面的Linux
但只設定了板子和Linux的IP
忘了設定Windows網卡的IP
所以不管是Linux @ VMWare → Windows → CDK板
或是CDK板 → Windows → Linux @ VMWare
都會因為Windows的網卡沒有設在同一個網段
所以中間的連線會被斷掉...

試了一整個下午才想到有可能是這個原因
浪費了自己一個下午的時間在那邊IP改過來改過去的...
多個VMWare在中間就真的要多注意一下中間橋接連線的設定... QQ


最後補上各個部份網路的設定:

Linux @ VMWare:
---------------------------------------------- 
IP address:10.168.1.166
Network Mask:255.255.255.0
GateWay IP:10.168.1.254

Windows:
---------------------------------------------- 
IP address:10.168.1.168
Network Mask:255.255.255.0
GateWay IP:10.168.1.254

CDK板:
----------------------------------------------
IP address:10.168.1.214
Network Mask:255.255.255.0
GateWay IP:10.168.1.254


其實只要確定IP address都是在同一個網段 + 使用同一個Gateway
就可以透過跳線來做連線了...
另外如果是用筆電的話記得也要把無線網路給關掉
不然VMWare可能會變成去抓無線網路的連線
導致連不到我們想要連線的網卡...

還有如果使用的NFS Server屬於比較舊版本的
就必須在mount的時候加上:-o nolock 的參數
nolock 參數是禁用文件鎖 (disable file locking) 的功能
不然在mout的時候就會出現:
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 10.168.1.166:/home/sys3d/Desktop/3DG on 3DG failed

的錯誤訊息...

加上 -o nolock 參數後就可以正常mount NFS的資料夾了:
mount -t nfs -o nolock 10.168.1.166:/home/sys3d/Desktop/3DG 3DG
(正確不會有錯誤訊息)

不過令我有點納悶的是我是用Ubuntu 10.04 LTS當我Host端的OS
NFS也是用apt套件直接安裝最新版的...
結果還是要加上 -o nolock 參數
那不知道到底怎樣才不算舊版的NFS Server哩...?! Orz

P.S. HyperTerminal我覺得PuTTYminicom好用多了... XDDD