一江春水向東流

          做一個有思想的人,期待與每一位熱愛思考的人交流,您的關注是對我最大的支持。

            BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理 ::
            44 隨筆 :: 139 文章 :: 81 評論 :: 0 Trackbacks
          網絡文件系統(NFS,Network File System)是一種將遠程主機上的分區(目錄)經網絡掛載到本地系統的一種機制,通過對網絡文件系統的支持,用戶可以在本地系統上像操作本地分區一樣來對遠程主機的共享分區(目錄)進行操作。

          ??? 在嵌入式Linux 的開發過程中,開發者需要在Linux 服務器上進行所有的軟件開發,交叉編譯后,通用FTP 方式將可執行文件下載到嵌入式系統運行,但這種方式不但效率低下,且無法實現在線的調試。因此,可以通過建立NFS,把Linux 服務器上的特定分區共享到待調試的嵌入式目標系統上,就可以直接在嵌入式目標系統上操作Linux 服務器,同時可以在線對程序進行調試和修改,大大的方便了軟件的開發。因此,NFS 的是嵌入式Linux 開發的一個重要的組成部分,本部分內容將詳細說明如何配置嵌入式Linux 的NFS 開發環境。

          ??? 嵌入式Linux 的NFS 開發環境的實現包括兩個方面:一是Linux 服務器端的NFS 服務器支持;二是嵌入式目標系統的NFS 客戶端的支持。因此,NFS 開發環境的建立需要配置linux 服務器端和嵌入式目標系統端。

          一、Linux 服務器端NFS 服務器的配置


          ??? 以root 身份登陸Linux 服務器,編輯/etc 目錄下的共享目錄配置文件exports,指定共享目錄及權限等。

          ??? 執行如下命令編輯文件/etc/exports:

          ?? # vi /etc/exports

          ?? 在該文件里添加如下內容:

          ?? /home/work 192.168.0.*(rw,sync,no_root_squash)

          ?? 然后保存退出。

          ?? 添加的內容表示:允許ip 地址范圍在192.168.0.*的計算機以讀寫的權限來訪問/home/work 目錄。

          ?? /home/work 也稱為服務器輸出共享目錄。

          ?? 括號內的參數意義描述如下:

          ?? rw:讀/寫權限,只讀權限的參數為ro;

          ?? sync:數據同步寫入內存和硬盤,也可以使用async,此時數據會先暫存于內存中,而不立即寫入硬盤。
          ?
          ?? no_root_squash:NFS 服務器共享目錄用戶的屬性,如果用戶是 root,那么對于這個共享目錄來說就具有 root 的權限。

          ?? 接著執行如下命令,啟動端口映射:

          ?? # /etc/rc.d/init.d/portmap start

          ?? 最后執行如下命令啟動NFS 服務,此時NFS 會激活守護進程,然后就開始監聽 Client 端的請求:

          ?? # /etc/rc.d/init.d/nfs start

          ?? 用戶也可以重新啟動Linux 服務器,自動啟動NFS 服務。

          ?? 在NFS 服務器啟動后,還需要檢查Linux 服務器的防火墻等設置(一般需要關閉防火墻服務),確保沒有屏蔽掉NFS 使用的端口和允許通信的主機,主要是檢查Linux 服務器iptables,ipchains 等選項的設置,以及/etc/hosts.deny,/etc/hosts.allow 文件。

          ?? 我們首先在Linux 服務器上進行NFS 服務器的回環測試,驗證共享目錄是否能夠被訪問。在Linux 服務器上運行如下命令:
          ?
          ?? # mount –t nfs 192.168.0.20:/home/work /mnt

          ?? # ls /mnt

          ?? 命令將Linux 服務器的NFS 輸出共享目錄掛載到/mnt 目錄下,因此,如果NFS 正常工作,應該能夠在/mnt 目錄看到/home/work 共享目錄中的內容。

          二、嵌入式目標系統NFS 客戶端的配置


          ?? 在Linux 服務器設置好后,還需要對客戶端進行相關配置。在配置內核時選擇Load an Alternate Configuration File輸入配置文件的路徑和文件名添加內核對NFS的支持:

          ?? 選中networking options-》IP:kernel level auloconfiguralion項

          ?? 選中file systems-》network file systems-》下的root file system on nfs 和nfs file system support重新編譯內核下載bootloader和kernel到開發板上

          ??? 在嵌入式目標系統的Linux Shell 下,執行如下命令來進行NFS 共享目錄掛載:

          ??? # mkdir /mnt/nfs //建立Linux 服務器輸出共享目錄的掛載點;

          ??? # mount –t nfs 192.168.0.20:/home/work /mnt/nfs –o nolock

          ??? # cd /mnt/nfs
          ?
          ??? # ls

          ??? 此時,嵌入式目標系統端所顯示的內容即為Linux 服務器的輸出目錄的內容,即Linux 服務器的輸出目。

          ??? 錄/home/work 通過NFS 映射到了嵌入式目標系統的/mnt/nfs 目錄。用戶可以用增/刪/修改文件的方式來驗證實際效果。mount 命令中的192.168.0.20 為Linux 服務器的IP 地址,/home/work 為Linux 服務器端所配置的共享輸出目錄,/mnt/nfs 為嵌入式設備上的本地目錄。

          ??? 在開發過程中,來回輸入命令非常煩人,我寫了兩個簡單的腳本來完成nfs的啟動,掛載。

          ??? host啟動nfs:
          ??? snfs
          ??? #!/bin/bash
          ??? ifconfig eth0 192.168.0.20
          ??? /etc/rc.d/init.d/portmap start
          ??? /etc/rc.d/init.d/nfs start
          ??? 嵌入式目標機掛載nfs:
          ??? mnfs:
          ?
          ??? #!/bin/sh
          ??? mount -t nfs 192.168.0.20:/home/work/nfs /mnt/nfs -o nolock
          ??? echo “nfs ok!”

          posted on 2007-11-06 23:56 allic 閱讀(263) 評論(0)  編輯  收藏 所屬分類: LINUX配置,shell
          主站蜘蛛池模板: 溧水县| 麻栗坡县| 资兴市| 汝州市| 汪清县| 无极县| 鸡泽县| 红桥区| 六枝特区| 红原县| 平远县| 锡林浩特市| 昌邑市| 宁海县| 武义县| 宁南县| 茌平县| 睢宁县| 炎陵县| 沁源县| 麻江县| 辽中县| 济宁市| 苗栗县| 奈曼旗| 普安县| 大关县| 环江| 庆安县| 井研县| 呼图壁县| 台北市| 高碑店市| 乐平市| 朝阳市| 宁安市| 凉城县| 玉屏| 海丰县| 嘉定区| 温宿县|