Windows下NFS客戶端的安裝及設定
在Windows上使用NFS客戶端,需要把nfs共享目錄對映到一個驅動器。此處假定為對映的驅動器為N:,而nfs共享目錄為192.168.6.55:/vmsnfs。
1 安裝Microsoft Windows Services for UNIX
Windows Services for UNIX 3.5 提供支援充分和整合完全的跨平臺網路服務,適應需要 Windows 和 UNIX 基礎環境之間互動操作性的企業客戶。 Windows Services for UNIX 3.5 為企業客戶提供儲存在多個平臺的資訊之緊密存取,統一了跨平臺的網路管理,並且重複使用 UNIX 應用程式和 Windows 上的指令碼。其中包括支援網路檔案系統 (NFS)。
下載Microsoft Windows Services for UNIX
安裝程式:SFU35SEL_EN.exe 217 MB (228,178,504 位元組)
安裝Microsoft Windows Services for UNIX
注意與NFS有關的兩個元件是一定要安裝的
NFS->Client for NFS
Authentication tools for NFS->Server for PCNFS
安裝過程比較簡單,此處略過。
2 在Windows下配置NFS客戶端
開啟Services for UNIX Administration配置使用者名稱
點 “開始選單”->“所有程式”->“Windows Services for UNIX”->“Services for UNIX Administration”, 會彈出一個名為“Services for UNIX Administration”的視窗。
左邊欄切到Server for PCNFS。
右邊欄切到Groups,新增Group Name為root,Group ID(GID)為0的組。
右邊欄切到Users,新增User name為root,User logon name為root,Primary group name為root,User ID(UID)為0的使用者,密碼不必與Linux系統的密碼相同。
點選右上角的Apply儲存。
對映網路驅動器到NFS共享目錄(介面操作方式,不推薦)
在“網路上的芳鄰”上按右鍵,選擇“對映網路驅動器”,會彈出對映網路驅動器對話方塊。
選擇碟符,比如N:
輸入網路資源路徑:192.168.6.55:/vmsnfs
點 “確定”。會彈出一個NFS login successful的資訊框,注意檢查顯示的UID和GID的值(一般為-2),點“否”,會彈出 Client for NFS Drive N:對話方塊。選中Login using PCNFS authentication對話方塊,在 Server name中填入localhost,在User name中填入root,在Password中填入前面設定的密碼,點“確定”,會再次彈出NFS login successful的資訊框,此次會顯示UID和GID均為0,點“確定”。
這時開啟“我的電腦”,會看到增加了一個碟符N:。在其上按右鍵開啟屬性對話方塊,切換到NFS Attributes頁,會看到許可權,切換到NFS Mount Options,會看到UID和GID等資訊。注意確認一下UID和GID一定要為0。
對映網路驅動器到NFS共享目錄(批處理指令碼方式,推薦)
上面這段挺費勁的,但我不推薦使用這種方式來設定,因為一旦重新啟動機器,你再開啟“我的電腦”,在NFS對應的碟符N:屬性就會看到UID和GID由還原成了-2。還得先把它斷開,然後重新設定,挺麻煩的。所幸微軟提供了類似Unix下的命令列工具mount.exe,可以編寫如下內容的批處理指令碼並儲存為nfs.bat。其中第一行是用來記錄操作日誌的,第二行啟動Server for PCNFS,第三行是避免mount命令出錯,第四行是把nfs共享目錄掛載到N:(注意-p:xxx要設定成前面設定的密碼),第五行列出N:下的檔案和目錄。
批處理程式碼
echo mount nfs at %date% %time% >>c:\nfs.log
net start pcnfsd >>c:\nfs.log
net use /pers:no >>c:\nfs.log
mount -o mtype=hard -o pcnfs=localhost -u:root -p:xxx 192.168.6.55:/vmsnfs N: >>c:\nfs.log
dir N: >>c:\nfs.log
echo mount nfs at %date% %time% >>c:\nfs.log
net start pcnfsd >>c:\nfs.log
net use /pers:no >>c:\nfs.log
mount -o mtype=hard -o pcnfs=localhost -u:root -p:xxx 192.168.6.55:/vmsnfs N: >>c:\nfs.log
dir N: >>c:\nfs.log
雙擊執行nfs.bat,然後開啟“我的電腦”就可以看到N:了,然後開啟c:\nfs.log看一下。
Text程式碼
mount nfs at 2010-11-19 星期五 11:33:39.15
命令成功完成。
N: is now successfully connected to 192.168.6.55:/vmsnfs
The command completed successfully.
mounted
mount nfs at 2010-11-19 星期五 11:33:39.15
命令成功完成。
N: is now successfully connected to 192.168.6.55:/vmsnfs
The command completed successfully.
mounted
如果看到successully之類的關鍵字眼,就表明mount成功了。
3 在Windows下使用NFS客戶端會碰到的問題
Q:在掛載nfs共享目錄時,mount.exe報1326錯誤,是什麼原因?
Network Error - 1326
Type 'NET HELPMSG 1326' for more information.
A:根據提示,使用net helpmsg看一下,如下所示:
C:\>net helpmsg 1326
登入失敗: 未知的使用者名稱或錯誤密碼。
這時,需要檢查一下mount命令後面的-u:user和-p:password這兩部分是否正確了。
Q:在掛載nfs共享目錄時,mount.exe報85錯誤,是什麼原因?
Network Error - 85
Type 'NET HELPMSG 85' for more information.
A:根據提示,使用net helpmsg看一下,如下所示:
C:\>net helpmsg 85
本地裝置名已在使用中。
這是由於對同一個驅動器重複執行mount命令造成的,確認驅動器選擇是否正確。
Q:建立目錄或檔案時報“拒絕訪問”,怎麼辦?
A:首先開啟“我的電腦”,在NFS對映的驅動器上按右鍵,開啟屬性對話方塊。切換到NFS Mount Options頁,看顯示的UID和GID是否為0,可能你看到的是-2。關閉屬性對話方塊之後,在驅動器上按右鍵,選擇“斷開”,然後參照上一節重新設定。
如果看到NFS Mount Options頁顯示的UID和GID都為0,那麼就要到NFS服務端去查詢原因了。比如,檢查一下共享目錄的屬主和組是否為nfsnobody,參見前面的章節。
Q:怎樣做到登入Windows之後自動啟動NFS?
A:按照4.2建立nfs.bat指令碼,然後複製到“啟動”目錄(我的XP系統是“C:\Documents and Settings\Administrator\「開始」選單\程式\啟動”目錄)。在登入之後就會自動掛載nfs共享目錄。如果需要確認是否成功,開啟c:\nfs.log看一下。
Q:怎樣做到啟動Windows之後自動掛載NFS,而不管是否登入?
A:這個就有點難了。本人試驗瞭如下兩種方式,都無法成功的掛在nfs共享目錄。(奇怪,手工直接執行nfs.bat就能成功)
(1)安裝Windows Resource Kits,裡面有instsrv.exe和srvany.exe兩個程式,製作了系統服務MountNFS,用來執行nfs.bat指令碼。
(2)設定“任務計劃”,執行檔案為nfs.bat,觸發條件為“計算機啟動時”。
最後,只能將XP系統設定為自動登入才得以解決,不算很完美。具體如下:
先按照上一個問題中所述,將nfs.bat複製到“啟動”目錄。
然後執行“rundll32 netplwiz.dll,UsersRunDll”,在彈出的使用者賬戶對話方塊中,把“要使用本機,使用者必須輸入使用者名稱和密碼(E)”前面的鉤去掉,然後點“確定”。這時,會提示輸入賬號和密碼,輸入好之後儲存就行了。下次啟動機器就會直接登入,而無需手工輸入賬號和密碼了。
因為自動登入Windows之後會自動去執行“啟動”目錄的nfs.bat指令碼,也就會掛載nfs共享目錄了。
Q:怎樣才能在Windows下用程式訪問檔案伺服器上的檔案?
A:在Linux下檔案/vmsnfs/subdir/file.wav,可以直接訪問,在Windows下在路徑前面加上N:無法訪問N:/vmsnfs/subdir/file.wav,必須要把路徑裡面的vmsnfs去掉,變成N:/subdir/file.wav才能訪問。這樣程式處理起來稍微有點麻煩。
如果在Linux檔案伺服器的共享目錄上建立一個名為vmsnfs符號連結,就可以用N:/vmsnfs/subdir/file.wav來訪問了,具體做法如下:
cd /vmsnfs
ln -s . vmsnfs
Q:檔案伺服器重啟之後,Windows上mount的nfs共享目錄還能繼續正常訪問嗎?
A:有待試驗。
點選下面的連結檢視本文其他部分內容: