ubuntu下搭建nfs服务器
1.1???????搭建NFS服務(wù)器
???????NFS(Network FileSystem,網(wǎng)絡(luò)文件系統(tǒng))是由SUN公司發(fā)展,并于1984年推出的技術(shù),用于在不同機(jī)器,不同操作系統(tǒng)之間通過網(wǎng)絡(luò)互相分享各自的文件。NFS設(shè)計(jì)之初就是為了在不同的系統(tǒng)間使用,所以它的通訊協(xié)議設(shè)計(jì)與主機(jī)及操作系統(tǒng)無關(guān)。
NFS分服務(wù)器和客戶機(jī),當(dāng)使用遠(yuǎn)端文件時(shí)只要用mount命令就可把遠(yuǎn)端NFS服務(wù)器上的文件系統(tǒng)掛載在本地文件系統(tǒng)之下,操作遠(yuǎn)程文件與操作本地文件沒有不同。NFS服務(wù)器所共享文件或目錄記錄在/etc/exports文件中。
???????嵌入式Linux開發(fā)中,會(huì)經(jīng)常使用NFS,目標(biāo)系統(tǒng)通常作為NFS客戶機(jī)使用,Linux主機(jī)作為NFS服務(wù)器。在目標(biāo)系統(tǒng)上通過NFS,將服務(wù)器的NFS共享目錄掛載到本地,可以直接運(yùn)行服務(wù)器上的文件。在調(diào)試系統(tǒng)驅(qū)動(dòng)模塊以及應(yīng)用程序,NFS都是十分必要的,并且Linux還支持NFS根文件系統(tǒng),能直接從遠(yuǎn)程N(yùn)FS root啟動(dòng)系統(tǒng),這對(duì)嵌入式Linux根文件系統(tǒng)裁剪和集成也是十分有必要的。
安裝nfs-kernel-server:
ky@ubuntu:~$ sudo apt-get install nfs-kernel-server
設(shè)置NFS-Server目錄。修改/etc/exports文件,在其中增加NFS服務(wù)器目錄。?????一個(gè)NFS服務(wù)器可以共享多個(gè)NFS目錄,在/etc/exports文件中,每個(gè)目錄的設(shè)置獨(dú)占一行,編寫格式如下:
NFS共享目錄路徑????客戶機(jī)IP或者名稱(參數(shù)1,參數(shù)2,...,參數(shù)n)
???????說明:
q??NFS共享目錄可以是主機(jī)的任何一個(gè)目錄,為了方便使用,最好將權(quán)限設(shè)置為777。
q??客戶機(jī)指的是可以訪問共享目錄的客戶機(jī)的IP或者主機(jī)名,可以是指定的IP或者主機(jī)名。如果使用IP,可以使用通配符。假如指定IP為192.168.1.x的客戶機(jī)可以訪問,可以寫成192.168.1.*,如果設(shè)置為*,則表示任何客戶機(jī)都可以訪問。
q??訪問參數(shù)可以是一個(gè),也可以是多個(gè),用逗號(hào)分開。可能的參數(shù)和說明如?REF _Ref286733518 \h?表?5.108D0C9EA79F9BACE118C8200AA004BA90B02000000080000000E0000005F005200650066003200380036003700330033003500310038000000?所列。
表??STYLEREF 1 \s?5.?SEQ?表?\* ARABIC \s 1?1?NFS設(shè)置參數(shù)和說明
| 參數(shù) | 說明 | 
| ro | 只讀訪問 | 
| rw | 讀寫訪問 | 
| sync | 所有數(shù)據(jù)在請(qǐng)求時(shí)寫入共享 | 
| async | nfs在寫入數(shù)據(jù)前可以響應(yīng)請(qǐng)求 | 
| secure | nfs通過1024以下的安全TCP/IP端口發(fā)送 | 
| insecure | nfs通過1024以上的端口發(fā)送 | 
| wdelay | 如果多個(gè)用戶要寫入nfs目錄,則歸組寫入(默認(rèn)) | 
| no_wdelay | 如果多個(gè)用戶要寫入nfs目錄,則立即寫入,當(dāng)使用async時(shí),無需此設(shè)置 | 
| hide | 在nfs共享目錄中不共享其子目錄 | 
| no_hide | 共享nfs目錄的子目錄 | 
| subtree_check | 如果共享/usr/bin之類的子目錄時(shí),強(qiáng)制nfs檢查父目錄的權(quán)限(默認(rèn)) | 
| no_subtree_check | 不檢查父目錄權(quán)限 | 
| all_squash | 共享文件的UID和GID映射匿名用戶anonymous,適合公用目錄 | 
| no_all_squash | 保留共享文件的UID和GID(默認(rèn)) | 
| root_squash | root用戶的所有請(qǐng)求映射成如anonymous用戶一樣的權(quán)限(默認(rèn)) | 
| no_root_squash | root用戶具有根目錄的完全管理訪問權(quán)限 | 
| anonuid=xxx | 指定nfs服務(wù)器/etc/passwd文件中匿名用戶的UID | 
| anongid=xxx | 指定nfs服務(wù)器/etc/passwd文件中匿名用戶的GID | 
?
假定NFS共享目錄是/home/ky/nfs,允許所有客戶機(jī)訪問,/etc/exports文件可寫為:
/home/ky/nfs *(rw,sync,no_subtree_check, no_root_squash)
啟動(dòng)NFS服務(wù)器。啟動(dòng)portmap(如果有必要)和nfs-kernel-server服務(wù):
ky@ubuntu:~$?sudo service portmap start
ky@ubuntu:~$?sudo service nfs-kernel-server start
???????本地驗(yàn)證NFS服務(wù)器。將NFS服務(wù)器目錄掛載到本機(jī)另外一個(gè)目錄下,可以看到掛載點(diǎn)目錄下可以看到NFS服務(wù)器目錄中的文件。
ky@ubuntu:~$ ls /home/ky/nfs/
aaaa
ky@ubuntu:~$?sudo mount -t nfs 127.0.0.1:/home/ky/nfs /mnt
ke@ubuntu:~$ ls /mnt
aaaa
ky@ubuntu:~$ sudo umount /mnt/
用開發(fā)板驗(yàn)證NFS服務(wù)器是否可用。啟動(dòng)開發(fā)板,進(jìn)入系統(tǒng),配置好開發(fā)板的IP地址后,用mount命令掛載NFS服務(wù)器的NFS目錄:
target#?mount??-t nfs 192.168.1.3:/home/ky/nfs /mnt -o nolock
target# ls /mnt
kingyee
target# umount /mnt/
???????掛載成功后,可以在開發(fā)板的/mnt目錄下看到NFS服務(wù)器上的文件。
說明,使用開發(fā)板與虛擬機(jī)安裝的客戶系統(tǒng)進(jìn)行NFS掛載,需要將虛擬網(wǎng)卡設(shè)置為Bridged模式,并建議使用靜態(tài)IP地址。
???????如果在使用中需要增加新的NFS共享目錄,直接修改/etc/exports文件即可。修改該文件后,可以不用重啟NFS服務(wù),用exportfs命令讀取/etc/exports文件,重新共享輸出。exportfs命令語法如下:
???exportfs??[-aruv]
???????選項(xiàng)說明:
-a:全部掛載(或卸載) /etc/exports的設(shè)置;
-r:重新掛載/etc/exports的設(shè)置;
-u:卸載某一個(gè)目錄;
-v:在輸出的時(shí)候,把共享目錄顯示出來。
???????如果NFS已經(jīng)啟動(dòng),修改了/etc/exports文件,執(zhí)行如下命令,新的設(shè)置即可生效:
ky@ubuntu:~$?exportfs -ra
/etc/exports 可以如下配置:
 /home/xuxuequan/AmBaWork/sharenfs *(rw,sync,no_root_squash,no_subtree_check)
 
 
 
可在修改/etc/exports后,不重啟nfs service,直接執(zhí)行如下指令,使得修改立即生效
 exportfs -rv
 
總結(jié)
以上是生活随笔為你收集整理的ubuntu下搭建nfs服务器的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
 
                            
                        - 上一篇: 明日方舟灰毫精二需要什么材料
- 下一篇: uboot的常用命令详解
