###### 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請見參考文章,依需要改。 :::warning :zap: 相關安全性設定,請看參考資料。 ::: --- ## 參考文章 [鳥哥的 Linux 私房菜:NFS 伺服器](http://linux.vbird.org/linux_server/0330nfs.php#showmount) [Debian / Ubuntu 安裝 NFS Server](https://www.phpini.com/linux/debian-ubuntu-install-nfs-server) [debian安裝nfs server](http://ruby-notebook.blogspot.tw/2011/08/debiannfs-server.html) [開機自動掛載](https://dywang.csie.cyut.edu.tw/dywang/rhcsaNote/node59.html)