建立 nfs 伺服器
在嵌入式 linux 開發的時候,常常需要使用 nfs 以友善程式的調試。使用 nfs,使用者可以
将闆子要用到的根檔案系統放在主機目錄下,開發闆則通過以太網挂載到這個目錄并将這個
目錄下的檔案作為根檔案系統的内容,這樣使用者的程式更新後不比重新燒寫闆子的根檔案系
統便能被重新使用,這點能夠大大加快程式的調試。
Ubuntu 下安裝 nfs 伺服器的步驟如下:
4.3.1 進行 NFS 伺服器端與用戶端的安裝:
sudo apt-get install nfs-kernel-server nfs-common portmap
安裝用戶端的作用是可以在本機進行 NFS 服務的測試。
4.3.2 配置 portmap
兩種方法任選一種就可以:
(1):sudo emacs /etc/default/portmap
去掉 -i 127.0.0.1
(2)sudo dpkg-reconfigure portmap
運作後選擇“否”
另外很重要的一點,要用 sysv-rc-conf (而不是 chkconfig)工具檢視一下目前 nfs 和 portmap
的狀态,若是 off,則用 sudo sysv-rc-conf portmap on 或 sudo sysv-rc-conf nfs-kernel-server on
打開
4.3.3 配置挂載目錄和權限
emacs /etc/exports
我的配置如下:
# /etc/exports: the access control list for filesystems which may be exported
# to NFS clients. See exports(5).
#
# Example for NFSv2 and NFSv3:
# /srv/homes hostname1(rw,sync) hostname2(ro,sync)
# Example for NFSv4:
# /srv/nfs4 gss/krb5i(rw,sync,fsid=0,crossmnt)
# /srv/nfs4/homes gss/krb5i(rw,sync)
/nfsboot *(rw,sync)
解釋一下:
#後面的都是解釋
/nfsboot 是 NFS 的共享目錄,*表示任何 IP 都可以共享這個目錄,你可以改為受限的 IP,rw
表示的是權限,sync 是預設的。
4.3.4 更新 exports 檔案
隻要你更改了/etc/exports, 你不可以通過 sudo exportfs -r 來更新 這個檔案
4.3.5 重新開機 NFS 服務
Sudo /etc/init.d/portmap start
sudo /etc/init.d/nfs-kernel-server restart 重新開機 nfs 服務
4.3.6 進行測試
嘗試一下挂載本地磁盤(我的 linux 系統 IP 為 202.198.137.18,将/home/nfsboot 挂載到/mnt)
$ sudo mount 202.198.137.18:/nfsboot /mnt
運作 $ df 看看結果
$ sudo umount /mnt