利用NFS來掛載檔案系統問題總結

2021-09-13 19:02:13 字數 3114 閱讀 1616

嵌入式開發,如果使用nfs掛載來啟動核心和檔案系統,這樣便於除錯檔案系統和驅動,則首先要保證ubuntu開啟nfs服務。

執行以下命令安裝nfs服務,安裝後自動執行

sudo apt-get install nfs-kernel-server

配置其配置檔案

sudo vi /etc/exports 在裡面增加想要掛載的檔案路徑

#11 /work/nfs_root *(rw,sync,no_root_squash)

12 /work/nfs_root/first_fs *(rw,sync,no_root_squash)

13 /work/kernel *(rw,sync,no_root_squash)

14 /work/nfs_root/fs_qtopia *(rw,sync,no_root_squash)

15 /work/system/u-bootbin *(rw,sync,no_root_squash)

16 / *

其中"*"表示所有客戶機都可以訪問(只要能通過網路訪問到你)

rw當然表示有讀寫許可權(不要擔心)

no_root_squash表示客戶機對此目錄有root操作許可權

這樣就可以通過nfs服務來掛載nfs_root,kernel等目錄下的所有檔案;

配置完畢,可以重啟nfs服務

sudo /etc/init.d/portmap restart//nfs is a rpc service, portmap maps its port

sudo /etc/init.d/nfs-kernel-server restart

檢視nfs目錄可以使用  」showmount -e「 命令

測試nfs服務是否開啟成功

在本機ubuntu(10.13.60.120)上掛載nfs目錄到/mnt,(掛載未在/etc/exports裡面新增的目錄是無效的)

sudo mount -t nfs 10.13.60.120:/home

可以看到/mnt下已經有/home的內容了 ,解除安裝使用 umount /mnt命令即可

通常,為了能夠正常使用nfs,還需要一些相關的服務來協同工作:

nfs:啟動相應rpc服務程序來服務對於nfs檔案系統的請求。

nfslock:乙個可選的服務,用於啟動相應的rpc程序,允許nfs客戶端在伺服器上對檔案加鎖。

portmap:linux的rpc服務,它響應rpc服務的請求和與請求的rpc服務建立連線。

問題1:當我把u-boot中關於nfs掛載引數設定好後,一直出現如下錯誤:

tcp cubic registered

net: registered protocol family 1

drivers/rtc/hctosys.c: unable to open rtc device (rtc0)

ip-config: complete:

device=eth0, addr=192.168.0.11, mask=255.255.255.0, gw=192.168.0.1,

host=192.168.0.11, domain=, nis-domain=(none),

bootserver=192.168.0.50, rootserver=192.168.0.50, rootpath=

looking up port of rpc 100003/2 on 192.168.0.50

rpcbind: server 192.168.0.50 not responding, timed out

root-nfs: unable to get nfsd port number from server, using default

looking up port of rpc 100005/1 on 192.168.0.50

問題是這樣解決的:因為我的ubuntu沒有開啟portmap功能

sudo /etc/init.d/portmap restart

開啟後再重新啟動nfs系統就可以正常掛載ubuntu中的核心

問題2:伺服器端無響應

tcp cubic registered

net: registered protocol family 1

drivers/rtc/hctosys.c: unable to open rtc device (rtc0)

ip-config: complete:

device=eth0, addr=10.37.0.151, mask=255.255.0.0, gw=10.37.0.254,

host=10.37.0.151, domain=, nis-domain=(none),

bootserver=10.37.0.149, rootserver=10.37.0.149, rootpath=

looking up port of rpc 100003/2 on 10.37.0.149

looking up port of rpc 100005/1 on 10.37.0.149

vfs: mounted root (nfs filesystem).

freeing init memory: 140k

init started: busybox v1.7.0 (2008-01-22 10:04:09 est)

starting pid 765, tty '': '/etc/init.d/rcs'

nfs: server 10.37.0.149 not responding, still trying

問題是這樣解決的:利用nfs掛載檔案系統時,其實是相當於linux核心從伺服器ubuntu上讀取檔案系統的內容,而核心啟動後會立馬去載入/etc/init.d/rsc,rcs檔案中定義了開發板的ip,所以需要去修改檔案系統中的rcs檔案中的ip位址,要保證開發板的ip與ubuntu的位址處於同乙個網段,就ok了。

NFS掛載檔案系統,常遇見問題

一 nfs服務掛接根檔案系統 1 什麼是根檔案系統?與windows的c盤類似,linux一樣要在乙個分割槽上存放系統啟動所必需的檔案,比如核心映象檔案 在嵌入式系統中,核心一般單獨存放在乙個分割槽中 核心啟動後執行的第乙個程式 init 給使用者提供操作介面的 shell 程式 應用程式所依賴的庫...

bootargs設定nfs掛載檔案系統

root dev nfs nfsroot server ip root dir,nfs options ip client ip server ip gwip netmask hostname device autoconf dns0 ip dns1 ipserver ip 伺服器 ip 位址,也就...

掛載檔案系統

將乙個檔案系統的頂層目錄掛到另乙個檔案系統的子目錄上,使它們成為乙個整體,稱為掛載。把該子目錄稱為掛載點。注意 1 掛載點必須是乙個目錄。2 乙個分割槽掛載在乙個已存在的目錄上,這個目錄可以不為空,但掛 載後這個目錄下以前的內容將不可用。對於其他作業系統建立的檔案系統的掛載也是這樣。但是需要理解的是...