烏班圖為什麼用nfs伺服器
⑴ 怎麼在vmware下的ubuntu中搭建nfs伺服器
1.1 搭建NFS伺服器
NFS(Network FileSystem,網路文件系統)是由SUN公司發展,並於1984年推出的技術,用於在不同機器,不同操作系統之間通過網路互相分享各自的文件。NFS設計之初就是為了在不同的系統間使用,所以它的通訊協議設計與主機及操作系統無關。
NFS分伺服器和客戶機,當使用遠端文件時只要用mount命令就可把遠端NFS伺服器上的文件系統掛載在本地文件系統之下,操作遠程文件與操作本地文件沒有不同。NFS伺服器所共享文件或目錄記錄在/etc/exports文件中。
嵌入式Linux開發中,會經常使用NFS,目標系統通常作為NFS客戶機使用,Linux主機作為NFS伺服器。在目標系統上通過NFS,將伺服器的NFS共享目錄掛載到本地,可以直接運行伺服器上的文件。在調試系統驅動模塊以及應用程序,NFS都是十分必要的,並且Linux還支持NFS根文件系統,能直接從遠程NFS root啟動系統,這對嵌入式Linux根文件系統裁剪和集成也是十分有必要的。
安裝nfs-kernel-server:
ky@ubuntu:~$ sudo apt-get install nfs-kernel-server
設置NFS-Server目錄。修改/etc/exports文件,在其中增加NFS伺服器目錄。 一個NFS伺服器可以共享多個NFS目錄,在/etc/exports文件中,每個目錄的設置獨佔一行,編寫格式如下:
NFS共享目錄路徑 客戶機IP或者名稱(參數1,參數2,...,參數n)
說明:
q NFS共享目錄可以是主機的任何一個目錄,為了方便使用,最好將許可權設置為777。
q 客戶機指的是可以訪問共享目錄的客戶機的IP或者主機名,可以是指定的IP或者主機名。如果使用IP,可以使用通配符。假如指定IP為192.168.1.x的客戶機可以訪問,可以寫成192.168.1.*,如果設置為*,則表示任何客戶機都可以訪問。
q 訪問參數可以是一個,也可以是多個,用逗號分開。可能的參數和說明如 REF _Ref286733518 \h 表 5. 所列。
表 STYLEREF 1 \s 5. SEQ 表 \* ARABIC \s 1 1 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_squash
root用戶具有根目錄的完全管理訪問許可權
anonuid=xxx
指定nfs伺服器/etc/passwd文件中匿名用戶的UID
anongid=xxx
指定nfs伺服器/etc/passwd文件中匿名用戶的GID
假定NFS共享目錄是/home/ky/nfs,允許所有客戶機訪問,/etc/exports文件可寫為:
/home/ky/nfs *(rw,sync,no_subtree_check, no_root_squash)
啟動NFS伺服器。啟動portmap(如果有必要)和nfs-kernel-server服務:
ky@ubuntu:~$ sudo service portmap start
ky@ubuntu:~$ sudo service nfs-kernel-server start
本地驗證NFS伺服器。將NFS伺服器目錄掛載到本機另外一個目錄下,可以看到掛載點目錄下可以看到NFS伺服器目錄中的文件。
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/
用開發板驗證NFS伺服器是否可用。啟動開發板,進入系統,配置好開發板的IP地址後,用mount命令掛載NFS伺服器的NFS目錄:
target# mount -t nfs 192.168.1.3:/home/ky/nfs /mnt -o nolock
target# ls /mnt
kingyee
target# umount /mnt/
掛載成功後,可以在開發板的/mnt目錄下看到NFS伺服器上的文件。
說明,使用開發板與虛擬機安裝的客戶系統進行NFS掛載,需要將虛擬網卡設置為Bridged模式,並建議使用靜態IP地址。
如果在使用中需要增加新的NFS共享目錄,直接修改/etc/exports文件即可。修改該文件後,可以不用重啟NFS服務,用exportfs命令讀取/etc/exports文件,重新共享輸出。exportfs命令語法如下:
exportfs [-aruv]
選項說明:
-a:全部掛載(或卸載) /etc/exports的設置;
-r:重新掛載/etc/exports的設置;
-u:卸載某一個目錄;
-v:在輸出的時候,把共享目錄顯示出來。
如果NFS已經啟動,修改了/etc/exports文件,執行如下命令,新的設置即可生效:
ky@ubuntu:~$ exportfs -ra