使用linux進行嵌入式開發的時候,為了方便開發,通常是將開發板掛載到宿主機的檔案系統上,然後將代碼放到共用給開發板的目錄中,再通過開發板運行。
首先查看是否安裝了 nfs 軟體包,yum list installed | grep nfs。如果安裝,則可進行下面設定。
nfs 伺服器端配置:
1.首先建立共用目錄:在根目錄下建立share目錄。執行 mkdir /share
2.然後對 exports 檔案進行編輯:vim /etc/exports
如果之前沒有通過 nfs 共用過目錄,該檔案是空的,向裡面填入如下內容:
複製代碼
代碼如下:
/share *(sync,rw,no_root_squash)
各部分解釋:
/share 為本機要對外共用的目錄名稱
* 為允許外部存取本機共用目錄的 ip 地址。
sync 為將資料先儲存在記憶體緩衝區中,必要時才寫入磁碟。
rw 為外部主機對本地共用目錄享有讀寫權限
no_root_squash 為訪問使用者先與本機使用者匹配,匹配失敗後再映射為匿名使用者或使用者組。
上述各部分其餘選項有:
1->.用戶端的指定方式
指定ip地址的主機:192.168.0.100
指定子網中的所有主機:192.168.0.0/24 或 192.168.0.0/255.255.255.0
指定網域名稱的主機:nfs.test.com
指定域中的所有主機:*.test.com
所有主機:*
2->.選項說明
ro:共用目錄唯讀;
rw:共用目錄可讀可寫;
all_squash:所有訪問使用者都映射為匿名使用者或使用者組;
no_all_squash(預設):訪問使用者先與本機使用者匹配,匹配失敗後再映射為匿名使用者或使用者組;
root_squash(預設):將來訪的root使用者映射為匿名使用者或使用者組;
no_root_squash:來訪的root使用者保持root帳號許可權;
anonuid=:指定匿名訪問使用者的本機使用者UID,預設為nfsnobody(65534);
anongid=:指定匿名訪問使用者的本機使用者組GID,預設為nfsnobody(65534);
secure(預設):限制用戶端只能從小於1024的tcp/ip連接埠串連伺服器;
insecure:允許用戶端從大於1024的tcp/ip連接埠串連伺服器;
sync:將資料同步寫入記憶體緩衝區與磁碟中,效率低,但可以保證資料的一致性;
async:將資料先儲存在記憶體緩衝區中,必要時才寫入磁碟;
wdelay(預設):檢查是否有相關的寫操作,如果有則將這些寫操作一起執行,可以提高效率;
no_wdelay:若有寫操作則立即執行,應與sync配合使用;
subtree_check(預設) :若輸出目錄是一個子目錄,則nfs伺服器將檢查其父目錄的許可權;
no_subtree_check :即使輸出目錄是一個子目錄,nfs伺服器也不檢查其父目錄的許可權,可以提
高效率;
3.使設定生效:exportfs -ra 或者 service nfs restart
4.通過命令查看共用目錄輸出情況:exportfs -v
nfs 用戶端配置:
用戶端可通過 showmount -e ip 查看遠程伺服器的對外共用目錄。
1.啟動 nfs 服務
2.建立掛載點,mkdir /mnt/nfs
3.掛載:mount -t nfs ip:/share /mnt/nfs
4.卸載:umount /mnt/nfs
第3步的 ip 表示對外共用目錄的主機 ip,也就是伺服器 ip。此處可以使用localhost代替ip地址,表示用nfs掛載原生目錄到另一目錄
可以將掛載資訊寫入 /etc/fstab 檔案,實現對 nfs 服務的自動掛載,格式如下:
ip:/share /mnt/share nfs defaults 0 0
其中:
ip:/share 為遠程主機的 ip 地址和共用目錄
/mnt/share為要掛載到本地的目錄
nfs為檔案系統類型
defaults 0 0為掛載選項
使用 mount | grep nfs 命令可以顯示當前主機掛載的 nfs 目錄。
卸載已掛載的目錄:umount /mnt/nfs
以上所述是小編給大家分享的Linux 下nfs伺服器搭建技巧,希望本文所述對大家有所協助。