1. 程式人生 > >嵌入式 Linux下搭建nfs伺服器

嵌入式 Linux下搭建nfs伺服器

搭建嵌入式nfs時,嵌入式開發板上的系統必須支援nfs客戶端。
1. 在電腦伺服器端下載並安裝nfs

$ sudo apt-get install nfs-kernel-server nfs-common portmap

2.配置共享檔案
   將伺服器端(電腦)上一個資料夾作為共享資料夾,以後客戶端(開發板)將通過網路檔案系統NFS訪問這個資料夾。我這裡把/work/nfs_root作為共享目錄。

開啟配置檔案
$ sudo gedit /etc/exports
   將下面這句話新增在這個檔案最後。
/work/nfs_root *(rw,sync,no_root_squash)
注意nfs_root與*之間一定要有空格。而*號與後面就沒有空格。*號代表ip地址(
也可以是一確定的網段)。*代表允許所有的網路段訪問,rw是可讀寫許可權。儲存。
可以通過sudoexportfs -rv 來更新 這個檔案

3.重啟NFS服務
sudo /etc/init.d/portmap restart //可改用 sudo  service portmap restart
sudo /etc/init.d/nfs-kernel-server restart


4.伺服器安裝完之後可以這樣測試。(這步只是檢測, 若只想與開發板相連這步可略)

本地測試:$sudo mount 192.168.1.109:/work/nfs_root   /mnt
執行後,可以在mnt目錄下發現我的共享目錄下的檔案。
這樣nfs應該就搭建成功了。
其中192.168.1.109為服務端(電腦)的IP

碰到的問題:如果設定了主機IP,而不是用*號時,在進行本地測試時,進行Mount時會遇到
mount.nfs: access denied by server while mounting 192.168.1.2:的問題
因為本地測試預設在127.0.0.1範圍內定址,所以當然不會尋找到192.168. .
所以用*號可以解決這個問題。

5.客戶端(開發板)連線服務端

將客戶端(開發板)插上網線接入網路,設定好IP。
在客戶端終端輸入:
#mount -t nfs -o nolock 192.168.1.109:/work/nfs_root   /mnt(/mnt為實驗板上的目錄,也可是其他目錄)
如果無任何輸出說明連線成功了。
#cd /mnt
#ls

可以看到這個目錄下有我主機的共享目錄的中的內容了。這樣NFS連線就成功了。
 如果能正常掛載,而不能對檔案進行copy,mv等操作,可能是檔案大了。可用如下命令掛載:
#mount -t nfs -o intr,nolock,rsize=1024,wsize=1024  192.168.1.109:/work/nfs_root   /mnt(/mnt為實驗板上的目錄,也可是其他目錄)本文來