1。Linux 服務器端NFS服務器的配置
以root身份登陸Linux服務器,編輯/etc目錄下的共享目錄配置文件exports,指定共享目錄及權限等。
執行如下命令編輯文件/etc/exports:
# vi /etc/exports
在該文件里添加如下內容:
/home/work 192.168.0.*(rw,sync,no_root_squash)
然后保存退出。
添加的內容表示:允許ip地址范圍在192.168.0.*的計算機以讀寫的權限來訪問/home/work目錄。
/home/work也稱為服務器輸出共享目錄。
括號內的參數意義描述如下:
rw:讀/寫權限,只讀權限的參數為ro;
sync:數據同步寫入內存和硬盤,也可以使用async,此時數據會先暫存於內存中,而不立即寫入硬盤。
no_root_squash:NFS服務器共享目錄用戶的屬性,如果用戶是root,那么對於這個共享目錄來說就具有root的權限。
接着執行如下命令,啟動端口映射:
# /etc/rc.d/init.d/portmap start
最后執行如下命令啟動NFS服務,此時NFS會激活守護進程,然后就開始監聽Client端的請求:
# /etc/rc.d/init.d/nfs start
用戶也可以重新啟動Linux服務器,自動啟動NFS服務。
在NFS服務器啟動后,還需要檢查Linux服務器的防火牆等設置(一般需要關閉防火牆服務),確保沒有屏蔽掉NFS使用的端口和允許通信的主機,主要是檢查Linux服務器iptables,ipchains等選項的設置,以及/etc/hosts.deny,/etc/hosts.allow文件。
我們首先在Linux服務器上進行NFS服務器的回環測試,驗證共享目錄是否能夠被訪問。在Linux服務器上運行如下命令:
# mount–t nfs 192.168.0.20:/home/work /mnt
# ls /mnt
命令將Linux服務器的NFS輸出共享目錄掛載到/mnt目錄下,因此,如果NFS正常工作,應該能夠在/mnt目錄看到/home/work共享目錄中的內容。
2。客戶端配置
在目標系統的Linux Shell下,執行如下命令來進行NFS共享目錄掛載:
# mkdir /mnt/nfs //建立Linux服務器輸出共享目錄的掛載點;
# mount–t nfs 192.168.0.20:/home/work /mnt/nfs–o nolock
# cd /mnt/nfs
# ls
此時,嵌入式目標系統端所顯示的內容即為Linux服務器的輸出目錄的內容,即Linux服務器的輸出目。
錄/home/work通過NFS映射到了嵌入式目標系統的/mnt/nfs目錄。用戶可以用增/刪/修改文件的方式來驗證實際效果。mount命令中的192.168.0.20為Linux服務器的IP地址,/home/work為Linux服務器端所配置的共享輸出目錄,/mnt/nfs為嵌入式設備上的本地目錄。
在開發過程中,來回輸入命令非常煩人,我寫了兩個簡單的腳本來完成nfs的啟動,掛載。
host啟動nfs:
snfs
#!/bin/bash
ifconfig eth0 192.168.0.20
/etc/rc.d/init.d/portmap start
/etc/rc.d/init.d/nfs start
嵌入式目標機掛載nfs:
mnfs:
#!/bin/sh
mount -t nfs 192.168.0.20:/home/work/nfs /mnt/nfs -o nolock
echo“nfs ok!”