 嵌(qian)入式網(wang)絡NFS文件系(xi)統(tong)搭建(jian)流(liu)程
							時(shi)間:2018-07-27      來源(yuan):未知(zhi)
							嵌(qian)入式網(wang)絡NFS文件系(xi)統(tong)搭建(jian)流(liu)程
							時(shi)間:2018-07-27      來源(yuan):未知(zhi) 
							NFS介紹:
NFS就是Network File System的縮寫,是由Sun公司發展出來(lai)的。其目(mu)的是讓linux 機器(qi)(qi)之間彼(bi)此分享(xiang)文檔。NFS可以讓服(fu)務器(qi)(qi)端共享(xiang)的目(mu)錄(lu)(lu)掛(gua)載到本(ben)地(di)(di)客(ke)戶機上(shang)(shang),對于本(ben)地(di)(di)客(ke)戶機器(qi)(qi)來(lai)說(shuo),遠程服(fu)務器(qi)(qi)上(shang)(shang)的目(mu)錄(lu)(lu)就好像自己的一部分。
在基于Linux的(de)嵌入式(shi)系統開發過(guo)程中(zhong),我們(men)(men)經常用到NFS文件系統,我們(men)(men)將嵌入式(shi)設備的(de)文件系統放(fang)到NFS服務器上(經常是一臺Linux主機(ji))。這(zhe)樣(yang),開發板就可(ke)以執行(xing)NFS服務器特定(ding)目錄的(de)可(ke)執行(xing)程序(xu)。這(zhe)樣(yang)做的(de)優點在于:不用將程序(xu)寫(xie)入開發板的(de)Flash,不僅(jin)減少了Flash的(de)燒(shao)寫(xie)次數,同時也方便程序(xu)的(de)運行(xing)調(diao)試。
NFS服務搭建:
以(yi)下以(yi)Ubuntu系統(tong)為例安裝配(pei)置NFS服務。
1. 安裝NFS服務
sudo apt-get install nfs-kernel-server
2. 編輯NFS配置文件:
配(pei)置NFS主要涉及(ji)配(pei)置文件(jian)/etc/exports,它(ta)用于NFS服務器端,其(qi)中列出了NFS服務器中要導出的目(mu)錄(lu),可以訪(fang)問(wen)這些目(mu)錄(lu)的NFS客戶(hu)機(ji)及(ji)其(qi)訪(fang)問(wen)權限。
/etc/exports文件(jian)的格式如下:
dir_to_export NFS_client (permissions) [NFS_client (permissions)…]
1) dir_to_export是(shi)要(yao)導出的文件(jian)系統(tong)或目(mu)錄名稱,也就是(shi)要(yao)共享給(gei)客戶端使用的目(mu)錄。該(gai)目(mu)錄必須是(shi)一個絕對路徑。
2) NFS_client是可(ke)以(yi)訪問該(gai)NFS服務(wu)器的(de)客(ke)戶(hu)機名稱。客(ke)戶(hu)機的(de)指定非常靈活,可(ke)以(yi)是單個(ge)主機的(de)IP地址或(huo)(huo)域名,也可(ke)以(yi)是某個(ge)子網或(huo)(huo)域中主機等。格式(shi)中的(de)輸出(chu)目錄和客(ke)戶(hu)端之(zhi)間(jian),客(ke)戶(hu)端與客(ke)戶(hu)端之(zhi)間(jian)都使用空(kong)格分(fen)隔,但是客(ke)戶(hu)端和權(quan)限參數之(zhi)間(jian)不能有空(kong)格。
3) Permissions是NFS客戶機訪問導出(chu)目錄的訪問權限,如(ru)ro(只讀)或rw(讀寫)。若權限參(can)數不止一個(ge)時,則以逗號(hao)分(fen)隔。具體請參(can)考最后的詳細(xi)說明。
例如:
/foo 192.168.2.0/24(ro) localhost(rw) *(ro,sync)
3. 重(zhong)啟服務:
sudo /etc/init.d/nfs-kernel-server restart
4. 掛載
mount -t nfs 192.168.2.2:/foo /mnt -o nolock
參數(shu)詳細說明(ming):
1. 客(ke)戶(hu)端常用(yong)的指定方式 :
客戶端說明
192.168.2.2指定IP地址(zhi)的主機
192.168.2.0/24(或192.168.2.*)指定子網中的所有主(zhu)機
fsbing.cn/xuexi/指(zhi)定域名的主(zhu)機
*. fsbing.cn指定(ding)域(yu)中(zhong)的所有(you)主機
*(或缺(que)省)所有主機
2. 選(xuan)項(xiang)(xiang)用來(lai)設置輸出目錄的訪問(wen)權限,用戶(hu)映射(she)等,在(zai)/etc/exports文件(jian)中選(xuan)項(xiang)(xiang)比較多(duo),一(yi)般(ban)可(ke)以分成三類。
用于控制(zhi)輸出目錄訪問權限的選(xuan)項:
訪問權限選項說明(ming)
ro設(she)置輸出目(mu)錄只讀(du)
rw設置輸(shu)出(chu)目錄可讀寫
用戶映射(she)選項:
映射選項說(shuo)明
all_squash不論登(deng)入 NFS 的(de)使(shi)用者身(shen)份為何,他的(de)身(shen)份都會被壓(ya)縮成(cheng)為匿名使(shi)用者,通常(chang)也(ye)就是nobody
no_all_squash不將遠程(cheng)訪問(wen)的(de)所(suo)有普(pu)通(tong)用(yong)(yong)戶(hu)及所(suo)屬用(yong)(yong)戶(hu)組(zu)都映射為匿名用(yong)(yong)戶(hu)或用(yong)(yong)戶(hu)組(zu)(默認(ren)設置(zhi))
root_squash將(jiang)root用戶(hu)及所屬用戶(hu)組(zu)都(dou)映射為匿名用戶(hu)或用戶(hu)組(zu)(默(mo)認設置)
no_root_squash不將(jiang)root用戶(hu)(hu)(hu)及所屬用戶(hu)(hu)(hu)組(zu)都映(ying)射為(wei)匿名(ming)用戶(hu)(hu)(hu)或(huo)用戶(hu)(hu)(hu)組(zu)
anonuid=xxx將遠程訪問的所有(you)用戶都(dou)映射為(wei)匿名(ming)用戶,并指定該匿名(ming)用戶賬戶為(wei)本地用戶賬戶(UID=xxx)
anongid=xxx將遠程訪問的所有用(yong)(yong)戶(hu)(hu)組都(dou)映射為匿名用(yong)(yong)戶(hu)(hu)組賬(zhang)戶(hu)(hu),并指(zhi)定該匿名用(yong)(yong)戶(hu)(hu)組賬(zhang)戶(hu)(hu)為本(ben)地用(yong)(yong)戶(hu)(hu)組賬(zhang)戶(hu)(hu)(GID=xxx)
其他常用選項:
其他選(xuan)項說(shuo)明
secure限制客戶端只(zhi)能(neng)從小于1024的TCP/IP端口連接NFS服務器(默認設(she)置)
insecure允許客戶端從(cong)大于1024的(de)TCP/IP端口連接NFS服(fu)務器
sync將數(shu)據(ju)同步(bu)寫入內存(cun)緩沖區與磁(ci)盤中(zhong),雖然這樣(yang)做效率較低,但可以保(bao)證數(shu)據(ju)的(de)一致性
async將數(shu)據先(xian)保存(cun)在內存(cun)緩沖區中,必要時(shi)才寫入磁盤
wdelay檢(jian)查是否有相關的寫操作,如果有則將這些寫操作一起(qi)執行(xing),這樣可提高(gao)效率(默(mo)認設置)
no_wdelay若有(you)寫操作則(ze)立即執行,應與sync配(pei)合使用
subtree_check若輸出(chu)目錄是一個子目錄,則NFS服(fu)務(wu)器將檢(jian)查其父目錄的權限(默認(ren)設置)
no_subtree_check即使(shi)輸出目錄是一個子目錄,NFS服務器也(ye)不檢(jian)查(cha)其父(fu)目錄的權限,這(zhe)樣做(zuo)可(ke)提高效(xiao)率(lv)