樹莓派上啟動nfs server


1. nfs 是什么

  (略)http://vbird.dic.ksu.edu.tw/linux_server/linux_redhat9/0330nfs.php

2. 安裝 nfs-kernel-server 和 rpcbind(替代portmap), 並啟動rpcbind和nfs-kernel-server服務.

  apt-get install nfs-common nfs-kernel-server

  sudo apt-get install portmap

 

pi@raspberrypi ~ $ sudo service rpcbind start
[ ok ] Starting rpcbind daemon....
pi@raspberrypi ~ $ ps ax | grep rpcbind
4130 ? Ss 0:00 /sbin/rpcbind -w
4152 pts/0 S+ 0:00 grep --color=auto rpcbind

建立要分享及掛載的目錄
# mkdir /home/partimag

修改設定檔 /etc/exports
加入下面一列
# vim /etc/exports
/home/partimag 192.168.66.0/24(rw,sync,no_subtree_check)

啟動 NFS Server
# /etc/init.d/nfs-kernel-server start
 * Exporting directories for NFS kernel daemon...                                                                                                                                             [ OK ]
 * Starting NFS kernel daemon                                                                                                                                                                 [ OK ]
檢查是是有啟動成功
# showmount -e localhost
Export list for localhost:
/home/partimag 192.168.66.0/24

 

pi@raspberrypi ~ $ showmount -e localhost
Export list for localhost:
/home/pi/nfs_server *

pi@raspberrypi ~ $ sudo mount -t nfs 127.0.0.1:/home/pi/nfs_server /mnt -o nolock
pi@raspberrypi ~ $ cd /mnt/
pi@raspberrypi /mnt $ ls
pi@raspberrypi /mnt $ >nfs.txt
pi@raspberrypi /mnt $ ls
nfs.txt
pi@raspberrypi /mnt $ cd /home/pi/nfs_server/
pi@raspberrypi ~/nfs_server $ ls
nfs.txt

 

 

修改/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.108D0C9EA79F9BACE118C8200AA004BA90B02000000080000000E0000005F005200650066003200380036003700330033003500310038000000 所列。

表  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已經啟動,修改了/etc/exports文件,執行如下命令,新的設置即可生效:

ky@ubuntu:~$ exportfs -ra

 

本地驗證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:在輸出的時候,把共享目錄顯示出來。

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM