網絡文件系統(NFS,NetworkFile System)是一種將遠程主機上的分區(目錄)經網絡掛載到本地系統的一種機制,通過對網絡文件系統的支持,用戶可以在本地系統上像操作本地分區一樣來對遠程主機的共享分區(目錄)進行操作。
在嵌入式linux的開發過程中,開發者需要在linux服務器上進行所有的軟件開發,交叉編譯後,通用FTP方式將可執行文件下載到嵌入式系統運行,但這種方式不但效率低下,且無法實現在線的調試。因此,可以通過建立NFS,把linux服務器上的特定分區共享到待調試的嵌入式目標系統上,就可以直接在嵌入式目標系統上操作linux服務器,同時可以在線對程序進行調試和修改,大大的方便了軟件的開發。因此,NFS的是嵌入式linux開發的一個重要的組成部分,本部分內容將詳細說明如何配置嵌入式linux的NFS開發環境。
嵌入式linux的NFS開發環境的實現包括兩個方面:一是linux服務器端的NFS服務器支持;二是嵌入式目標系統的NFS客戶端的支持。因此,NFS開發環境的建立需要配置linux服務器端和嵌入式目標系統端。
NFS主要用於linux和linux系統或者linux和unix之間的系統。NFS只能共享文件夾不能共享文件
下面我們就配置NFS服務器
一:NFS服務器配置
1.查看NFS軟件包是否安裝
[root@localhost ~]# cd /mnt/cdrom/Server
[root@localhost Server]# rpm -qa |grep nfs
nfs-utils-lib-1.0.8-7.6.el5
nfs-utils-1.0.9-42.el5 這個就是nfs的軟件包已經安裝
2.NFS的共享清單文件是在/etc/exports,在exports文件中可以寫共享的內容,內容格式爲第一列寫物理文件夾的路徑及名稱第二列寫來源,來源後面跟着來源的權限和選項,來源我們可以寫一個單一(single host)的主機IP地址或者名稱,名稱要fqdn格式的需要域名解析成IP地址,也可以寫一個組(netgroups)該格式爲@group,也可以寫一個通配符(wildcards),通配符有很多如*和?號,“*”表示任意的字符和字符串所以表示所有的來源,“?”表示一個字符只表示一個來源,也可以寫IP網絡(IP networks)網段要寫子網掩碼。子網掩碼可以寫成點分十進制也可以爲長度。來源的權限是網絡權限分別是ro(只讀)和rw(可讀可寫),來源的選項可有可無分別有async(可寫時異步)、sync(可寫時同步)、root_squash表示映射成一個系統帳號,在客戶端是以管理員的身份進行操作,而在服務器端卻映射成一個系統帳號,all_squash表示在客戶端無論使用那個帳號在服務器端都別映射爲系統帳號。
3.在NFS服務器端改變共享文件夾的權限爲可寫那麼客戶端就有該權限
[root@localhost~]# chmod o+wt /共享文件夾路徑
二:NFS客戶端配置
1.檢查rpc是否正常
[root@localhost ~]# rpcinfo –p
檢查是否有權利訪問NFS服務器
[root@localhost ~]# showmount –e + NFS服務器IP地址
2.建立掛載點和掛載
[root@localhost~]# mkdir /mnt/nfs 任意取名
[root@localhost~]# mount NFS的IP地址:/共享物理路徑 /mnt/nfs掛載點
3.我們實現開啓自動掛載,自動掛載可以在開機自動啓動的/etc/rc.d/rc.local中寫也可以在/etc/fstab中,把掛載寫道/etcfstab能夠開機自動掛載,舉例服務器共享根下的/public,NFS服務器IP爲192.168.255.250,客戶端爲192.168.255.251
服務器在共享清單上寫共享文件夾
[root@localhost ~]# vim /etc/exports
/public *(rw,sync) 任何人都可讀寫
[root@localhost ~]# chmod o+wt /public/ 改變權限
客戶端配置
[root@localhost ~]# vim /etc/fstab
192.168.255.250:/public /mnt/nfs(掛載點) nfs(類型) rw,soft,intr 0 0
[root@localhost ~]# mount –a 不重啓就執行該命令
[root@localhost ~]# df –h 是否掛載
192.168.255.250:/public
9.5G 2.8G 6.3G 31% /mnt/nfs
三:自動掛載NFS
一個NFS服務器可以由多個客戶端訪問,能夠做到客戶端自動掛載NFS會節省很多資源,自動掛載使用的服務器是autofs,我們到光盤上查看是否安裝,在客戶端操作
[root@localhost Server]# rpm -qa |grep auto 已經安裝
autofs-5.0.1-0.rc2.131.el5
[root@localhost Server]# chkconfig --list |grep auto 開機自動啓動
autofs 0:off 1:off 2:off 3:on 4:on 5:on 6:off
autofs是服務器有配置文件,編譯配置文件
[root@localhost Server]# vim /etc/auto.master
/mnt/cdrom(監聽的目錄) /etc/auto.nfs(選項) --timeout=60
我們創建auto.nfs
[root@localhost ~]# cp /etc/auto.misc /etc/auto.nfs
[root@localhost ~]# vim /etc/auto.nfs
Server(客戶端切換到該目錄時) -rw,soft,intr 192.168.255.250:/public(服務器上共享目錄)
[root@localhost ~]# service autofs restart
停止 automount: [確定]
啓動 automount: [確定]
[root@localhost ~]# df –h 沒有掛載
Filesystem Size Used Avail Use% Mounted on
/dev/sda2 9.5G 2.8G 6.3G 31% /
/dev/sda1 99M 12M 83M 12% /boot
tmpfs 252M 0 252M 0% /dev/shm
/dev/hdc 2.8G 2.8G 0 100% /media/RHEL_5.4 i386 DVD
[root@localhost nfs]#cd server 被自動掛載
192.168.255.250:/public on /mnt/nfs type nfs(rw,soft,intr,addr=192.168.255.250)