Try   HackMD
tags: Raspberry Pi Raspbian NFS IoT

在RASPBIAN JESSIE LITE上使用NFS

必要安裝套件

nfs-server (伺服器)
nfs-common (伺服器跟用戶端,有內建)
rpcbind (NFS用,有內建)


伺服器端

  • 安裝nfs-server
sudo apt-get install nfs-server
  • 更新
sudo apt-get update
  • 建立要分享的資料夾
sudo mkdir /piA
  • 開啟資料夾全限,這裡為了方便用777
sudo chmod -R 777 piA
  • 編輯設定檔
sudo nano /etc/exports

內容增加

/piA 192.168.1.0/24(rw,sync,no_root_squash)
說明
192.168.1.0/24 在 192.168.1.* 的網域中的都能用
rw 可以讀寫,唯讀請改成 ro
sync 同時寫進記憶體和硬碟
no_root_squash 開放用戶端使用 root 身份來操作伺服器的檔案系統
  • 查看NFS伺服端有沒有運作
sudo service nfs-kernel-server status
  • 查看rpcbind有沒有運作
sudo service rpcbind status
  • 讓rpc運作(rpc沒運作的話)
sudo service rpcbind start
  • 刪除之前的NFS設定檔(有的話)
sudo exportfs -ua
  • 設定NFS
sudo exportfs -a
  • 重啟NFS伺服端
sudo service nfs-kernel-server restart

用戶端

  • 建立要連接的資料夾
sudo mkdir /piB
  • 掛上伺服器的資料夾到piB
sudo mount server ip:/piA /piB

上面方式在連接時,如果Server當掉而用戶端去對該資料夾做ls等動作,可能會使用戶端卡住,請留意。

說明
-t nfs 指定檔案系統類型為nfs
bg mount嘗試掛載會在背景執行,如果網路連線不穩定或伺服器常常需要開關機,那建議使用 bg 比較妥當
soft RPC 會在 time out 後『重複』呼叫,而非『持續』呼叫,系統延遲會比較不明顯

範例:
sudo mount -t nfs -o bg,soft server ip:/piA /piB

  • 如果要開機就掛上網路硬碟,其中一種方式是編輯此文件
sudo nano /etc/fstab

內容

server ip:/piA /piB nfs defaults 0 0

server ip請填自己server的ip

關於defaults請見參考文章,依需要改。

Image Not Showing Possible Reasons
  • The image file may be corrupted
  • The server hosting the image is unavailable
  • The image path is incorrect
  • The image format is not supported
Learn More →
相關安全性設定,請看參考資料。


參考文章

鳥哥的 Linux 私房菜:NFS 伺服器
Debian / Ubuntu 安裝 NFS Server
debian安裝nfs server
開機自動掛載