在dm270上建立nfs的開發環境
1. nfs簡介
nfs是network filesystem的縮寫,nfs是由sun開發並發展起來的一項用於在不同機器,不同作業系統之間通過網路互相分享檔案的技術。nfs可以讓你的pc通過網路將遠端的nfs 伺服器共享出來的檔案mount到自己的系統中,在客戶端看來使用nfs的遠端檔案就象是在使用本地檔案一樣。
2.配置nfs伺服器端
2.1確認主機安裝了nfs服務
方法是檢視/etc/rc.d/init.d目錄下是否有nfs檔案,如果有說明主機已經安裝了nfs服務。
/home/fx/ipnc_nfs *(rw,async,no_root_squash)
/home/fx/dm270-2.4.24/user/datasvr 192.168.1.23(rw,async,no_root_squash)
(dm270中設定)
可以設定的引數主要有以下這些:
rw:可讀寫的許可權;
ro:唯讀的許可權;
sync:資料同步寫入儲存器中。
async:資料會先暫時存放在記憶體中,不會直接寫入硬碟。
no_root_squash:當登入nfs主機使用共享之目錄的使用者如果是root時,那麼這個使用者的許可權將被轉換成為匿名使用者,通常它的uid與gid都會變成nobody身份。
root_squash:登入nfs主機使用共享目錄的使用者,如果是root,那麼對於這個共享的目錄來說,它就具有 root的許可權。
all_squash:不論登入nfs使用者的身份為何,它的身份都會被轉換成為匿名使用者,通常也就是nobody。
2.3使/etc/exports檔案的修改生效
在啟動了nfs和修改了/etc/exports之後,我們就可以用exportfs命令來使改動生效,該命令格式如下:
exportfs [-aruv]
-a :全部mount或者unmount /etc/exports中的內容
-r :重新mount /etc/exports中分享出來的目錄
-u :umount 目錄
-v :在 export 的時候,將詳細的資訊輸出到螢幕上。
dm270中的具體操作:
exportfs –rv
這個命令列要求全部重新輸出一次。在每次修改了/etc/exports檔案後都要執行一次該命令。
2.4啟動nfs服務
現在就可以啟動nfs服務了:
service /etc/rc.d/init.d/nfs start
如果要停止nfs服務:
service /etc/rc.d/init.d/nfs stop
重新啟動(停止後再啟動,在修改/etc/exports之後使用)命令:
service /etc/rc.d/init.d/nfs restart
service /etc/rc.d/init.d/portmap restart
3.配置客戶端
3.1配置核心
進入file systems --->選項
選中:[*] nfs file system support
[*] provide nfsv3 client support
3.2配置使用者選項
選中:[*] portmap
進入busybox --->選項
選中:[*] mount
[*] mount:support nfs mounts
4.nfs的應用
4.1啟動portmap伺服器
在uclinux啟動後輸入:
/> portmap &
【portmap】
4.2掛載到主機
通過以下命令列,掛載到主機上:
mount -t nfs 192.168.1.250:/home/fx/dm270-2.4.24/user/datasvr /var/tmp (dm270中的設定) 或
mount –t nfs –o rsize=1024,wsize=1024,timeo=3,udp 192.168.1.250:/home/fx/dm270-2.4.24/user/datasvr /var/tmp 如果沒有pormap服務可執行:
mount -t nfs –o nolock 192.168.1.250:/home/fx/dm270-2.4.24/user/datasvr /var/tmp
2.4.24/user/datasvr /var/tmp
命令列的引數是必要的,能夠改善nfs下應用程式執行的速度。
4.3執行主機的應用程式
現在進入/var/tmp看看吧。應該可以看到datasvr目錄下的檔案。
執行一下:
/>cd /var/tmp
/>./datasvr (注意前面要加上「./」)
這時也可能報告錯誤:permission denied.即主機拒絕操作。這時可以在主機上執行: 注:
1、你可以將portmap &和mount命令列新增到rc檔案中,使開發板在啟動時自動上mount主機,就不需要每次都敲入老長的命令列了。
2、有時無法mount的原因是主機端的防火牆阻攔。鍵入lokkit修改主機防火牆設定(關閉防火牆)即可。
4.4 mount引數說明
mount -t nfs -o rw,hard,nointr,tcp,noac,vers=3,timeo=600,rsize=32768,wsize=32768 192.168.1.250:/ home/fx/dm270-2.4.24/user/datasvr /var/tmp
rw 以讀寫方式安裝檔案系統(也必須要以相同的方式來匯出)
ro 以唯讀方式安裝檔案系統
bg 如果安裝失敗(伺服器沒有響應),在後台一直嘗試,繼續發其它的安裝請求
hard 以硬方式安裝檔案系統(這是預設情況)。如果伺服器當機,讓試圖訪問它的操作被阻塞,直到伺服器恢復為止。
soft 以軟方式安裝檔案系統。如果伺服器當機,讓試圖訪問它的操作失敗,返回一條出錯訊息。這項功能對於避免程序「掛」在無關緊要的安裝操作上來說非常有用。
intr 允許使用者中斷被阻塞的操作(並且讓它們返回一條出錯訊息)
nointr 不允許使用者中斷
retrans=n 指定在以軟方式安裝的檔案系統上,在返回一條出錯訊息之前重**出請求的次數。
timeo=n 設定請求的超時時間(以十分之一秒為單位)
rsize=n 設定讀緩衝的大小為n位元組。對tcp和udp安裝都適用,但最優值不一樣(32k較好)。
wsize=n 設定寫緩衝的大小為n位元組。對tcp和udp安裝都適。
nfsvers=n 設定nfs協議的版本 2 或者 3 (在正常情況下是自動的)
tcp 選擇通過tcp來傳輸。預設選擇udp
fg 和bg正好相反,是預設的引數
mountport 設定mount的埠
NFS開發環境搭建
1前言 操作環境 windows 7 10 64bit vmware14.1.1 ubuntu 14.04.3 64bit nfs是 network file system 的縮寫,即網路檔案系統。它的主要功能是通過網路讓不同的主機系統之間可以共享檔案或目錄。nfs客戶端可以通過掛載的方式將nfs服...
Ubuntu開發環境搭建(四) NFS
安裝nfs apt get install nfs kernel server nfs common 配置nfs目錄和許可權 vi etc exports 末尾新增 home 172.20.10.rw,sync,no root squash,no subtree check home代表共享目錄17...
ARM uClinux開發環境的建立
開發環境的建立。先說兩句廢話為和我以前一樣對作業系統 尤其是嵌入式作業系統 迷惑的弟兄解釋些概念。因為總是有人在問是不是一定要用作業系統,我的cpu能不能移植作業系統,可以移植什麼作業系統,有了作業系統可不可以執行某些程式。從我的個人經歷來講,這其實就是許多硬體出身的弟兄對作業系統這個東西有神秘感 ...