轉載自:http://blog.csdn.net/cgzhello1/article/details/7850845
一、NFS安裝
$ sudoapt-get install nfs-kernel-server
(nfs-common portmap這兩個包,系統會個根據依賴關係,自動下載)
二、NFS配置
2.1配置/etc/exports文件$ sudo vi/etc/exports
在文件最後加入如下內容:
/rootnfs *(rw,sync,no_root_squash)
注:nfs允許掛載的目錄及權限在文件/etc/exports中進行了定義。其中:/rootnfs是要共享的目錄,*代表允許所有的網絡段訪問(如若貼別制定IP,可以用類似與192.168.10.10的ip代替),rw是可讀寫權限,sync是資料同步寫入內存和硬盤,no_root_squash是nfs客戶端分享目錄使用者的權限,如果客戶端使用的是root用戶,那麼對於該共享目錄而言,該客戶端就具有root權限。
nfs常用的參數有:
ro 只讀訪問
rw 讀寫訪問sync 所有數據在請求時寫入共享
async nfs在寫入數據前可以響應請求
secure nfs通過1024以下的安全TCP/IP端口發送
insecure nfs通過1024以上的端口發送
wdelay 如果多個用戶要寫入nfs目錄,則歸組寫入(默認)
no_wdelay 如果多個用戶要寫入nfs目錄,則立即寫入,當使用async時,無需此設置。
hide 在nfs共享目錄中不共享其子目錄
no_hide 共享nfs目錄的子目錄
subtree_check 如果共享/usr/bin之類的子目錄時,強制nfs檢查父目錄的權限(默認)
no_subtree_check 和上面相對,不檢查父目錄權限
all_squash 共享文件的UID和GID映射匿名用戶anonymous,適合公用目錄。
no_all_squash 保留共享文件的UID和GID(默認)
root_squash root用戶的所有請求映射成如anonymous用戶一樣的權限(默認)
no_root_squas root用戶具有根目錄的完全管理訪問權限
anonuid=xxx 指定nfs服務器/etc/passwd文件中匿名用戶的UID
anongid=xxx 指定nfs服務器/etc/passwd文件中匿名用戶的GID
三、重啓服務
每次編輯/etc/exports都要重新啓動服務器$ sudo /etc/init.d/portmap restart
$ sudo /etc/init.d/nfs-kernel-server restart或#sudo service nfs-kernel-server restart
四、測試
4.1顯示出共享出來的目錄$ showmount-e
4.2至此,可以在自己的機子上測試一下nfs服務了,具體過程如下:
#mount serverip:/rootnfs /mnt
其中serverip實際上就是服務器的ip,如果掛載成功的話進到/mnt是可以看到/rootnfs下面的文件的
4.3查看掛載情況
$ df
4.4卸載掛載
$ sudoumount /mnt
若出現umount.nfs: /mnt: device is busy說明/mnt文件夾正在使用,應關閉才能卸載。
五、完成
在自己電腦上測試通過以後就要把宿主機的共享目錄掛載到目標板上了,這樣調試程序非常方便,不用把程序傳過去就可以直接調試了。掛載過程如下:首先開機啓動2410,進入linux,進入shell,配置板子的ip地址,
#ifconfig eth0 ipaddr
ipaddr就是上面所設置的允許訪問共享目錄的ip,在這裏可以設爲127.0.0.2,然後執行嗯命令:
#mount serverip:/arm9test /mnt/ext1
把serverip改爲你自己的主機的ip就可以了,這個時候要確認你的主機的nfs服務已經啓動,並且網線已經連接好,正常情況下等一下就可以完成掛載了