一江春水向東流

          做一個(gè)有思想的人,期待與每一位熱愛(ài)思考的人交流,您的關(guān)注是對(duì)我最大的支持。

            BlogJava :: 首頁(yè) :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理 ::
            44 隨筆 :: 139 文章 :: 81 評(píng)論 :: 0 Trackbacks
          網(wǎng)絡(luò)文件系統(tǒng)(NFS,Network File System)是一種將遠(yuǎn)程主機(jī)上的分區(qū)(目錄)經(jīng)網(wǎng)絡(luò)掛載到本地系統(tǒng)的一種機(jī)制,通過(guò)對(duì)網(wǎng)絡(luò)文件系統(tǒng)的支持,用戶可以在本地系統(tǒng)上像操作本地分區(qū)一樣來(lái)對(duì)遠(yuǎn)程主機(jī)的共享分區(qū)(目錄)進(jìn)行操作。

          ??? 在嵌入式Linux 的開(kāi)發(fā)過(guò)程中,開(kāi)發(fā)者需要在Linux 服務(wù)器上進(jìn)行所有的軟件開(kāi)發(fā),交叉編譯后,通用FTP 方式將可執(zhí)行文件下載到嵌入式系統(tǒng)運(yùn)行,但這種方式不但效率低下,且無(wú)法實(shí)現(xiàn)在線的調(diào)試。因此,可以通過(guò)建立NFS,把Linux 服務(wù)器上的特定分區(qū)共享到待調(diào)試的嵌入式目標(biāo)系統(tǒng)上,就可以直接在嵌入式目標(biāo)系統(tǒng)上操作Linux 服務(wù)器,同時(shí)可以在線對(duì)程序進(jìn)行調(diào)試和修改,大大的方便了軟件的開(kāi)發(fā)。因此,NFS 的是嵌入式Linux 開(kāi)發(fā)的一個(gè)重要的組成部分,本部分內(nèi)容將詳細(xì)說(shuō)明如何配置嵌入式Linux 的NFS 開(kāi)發(fā)環(huán)境。

          ??? 嵌入式Linux 的NFS 開(kāi)發(fā)環(huán)境的實(shí)現(xiàn)包括兩個(gè)方面:一是Linux 服務(wù)器端的NFS 服務(wù)器支持;二是嵌入式目標(biāo)系統(tǒng)的NFS 客戶端的支持。因此,NFS 開(kāi)發(fā)環(huán)境的建立需要配置linux 服務(wù)器端和嵌入式目標(biāo)系統(tǒng)端。

          一、Linux 服務(wù)器端NFS 服務(wù)器的配置


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

          ??? 執(zhí)行如下命令編輯文件/etc/exports:

          ?? # vi /etc/exports

          ?? 在該文件里添加如下內(nèi)容:

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

          ?? 然后保存退出。

          ?? 添加的內(nèi)容表示:允許ip 地址范圍在192.168.0.*的計(jì)算機(jī)以讀寫(xiě)的權(quán)限來(lái)訪問(wèn)/home/work 目錄。

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

          ?? 括號(hào)內(nèi)的參數(shù)意義描述如下:

          ?? rw:讀/寫(xiě)權(quán)限,只讀權(quán)限的參數(shù)為ro;

          ?? sync:數(shù)據(jù)同步寫(xiě)入內(nèi)存和硬盤(pán),也可以使用async,此時(shí)數(shù)據(jù)會(huì)先暫存于內(nèi)存中,而不立即寫(xiě)入硬盤(pán)。
          ?
          ?? no_root_squash:NFS 服務(wù)器共享目錄用戶的屬性,如果用戶是 root,那么對(duì)于這個(gè)共享目錄來(lái)說(shuō)就具有 root 的權(quán)限。

          ?? 接著執(zhí)行如下命令,啟動(dòng)端口映射:

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

          ?? 最后執(zhí)行如下命令啟動(dòng)NFS 服務(wù),此時(shí)NFS 會(huì)激活守護(hù)進(jìn)程,然后就開(kāi)始監(jiān)聽(tīng) Client 端的請(qǐng)求:

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

          ?? 用戶也可以重新啟動(dòng)Linux 服務(wù)器,自動(dòng)啟動(dòng)NFS 服務(wù)。

          ?? 在NFS 服務(wù)器啟動(dòng)后,還需要檢查L(zhǎng)inux 服務(wù)器的防火墻等設(shè)置(一般需要關(guān)閉防火墻服務(wù)),確保沒(méi)有屏蔽掉NFS 使用的端口和允許通信的主機(jī),主要是檢查L(zhǎng)inux 服務(wù)器iptables,ipchains 等選項(xiàng)的設(shè)置,以及/etc/hosts.deny,/etc/hosts.allow 文件。

          ?? 我們首先在Linux 服務(wù)器上進(jìn)行NFS 服務(wù)器的回環(huán)測(cè)試,驗(yàn)證共享目錄是否能夠被訪問(wèn)。在Linux 服務(wù)器上運(yùn)行如下命令:
          ?
          ?? # mount –t nfs 192.168.0.20:/home/work /mnt

          ?? # ls /mnt

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

          二、嵌入式目標(biāo)系統(tǒng)NFS 客戶端的配置


          ?? 在Linux 服務(wù)器設(shè)置好后,還需要對(duì)客戶端進(jìn)行相關(guān)配置。在配置內(nèi)核時(shí)選擇Load an Alternate Configuration File輸入配置文件的路徑和文件名添加內(nèi)核對(duì)NFS的支持:

          ?? 選中networking options-》IP:kernel level auloconfiguralion項(xiàng)

          ?? 選中file systems-》network file systems-》下的root file system on nfs 和nfs file system support重新編譯內(nèi)核下載bootloader和kernel到開(kāi)發(fā)板上

          ??? 在嵌入式目標(biāo)系統(tǒng)的Linux Shell 下,執(zhí)行如下命令來(lái)進(jìn)行NFS 共享目錄掛載:

          ??? # mkdir /mnt/nfs //建立Linux 服務(wù)器輸出共享目錄的掛載點(diǎn);

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

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

          ??? 此時(shí),嵌入式目標(biāo)系統(tǒng)端所顯示的內(nèi)容即為L(zhǎng)inux 服務(wù)器的輸出目錄的內(nèi)容,即Linux 服務(wù)器的輸出目。

          ??? 錄/home/work 通過(guò)NFS 映射到了嵌入式目標(biāo)系統(tǒng)的/mnt/nfs 目錄。用戶可以用增/刪/修改文件的方式來(lái)驗(yàn)證實(shí)際效果。mount 命令中的192.168.0.20 為L(zhǎng)inux 服務(wù)器的IP 地址,/home/work 為L(zhǎng)inux 服務(wù)器端所配置的共享輸出目錄,/mnt/nfs 為嵌入式設(shè)備上的本地目錄。

          ??? 在開(kāi)發(fā)過(guò)程中,來(lái)回輸入命令非常煩人,我寫(xiě)了兩個(gè)簡(jiǎn)單的腳本來(lái)完成nfs的啟動(dòng),掛載。

          ??? host啟動(dòng)nfs:
          ??? snfs
          ??? #!/bin/bash
          ??? ifconfig eth0 192.168.0.20
          ??? /etc/rc.d/init.d/portmap start
          ??? /etc/rc.d/init.d/nfs start
          ??? 嵌入式目標(biāo)機(jī)掛載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 閱讀(267) 評(píng)論(0)  編輯  收藏 所屬分類(lèi): LINUX配置,shell
          主站蜘蛛池模板: 浪卡子县| 平山县| 二连浩特市| 南通市| 图们市| 乌鲁木齐市| 武城县| 潞城市| 阿鲁科尔沁旗| 祁东县| 平凉市| 襄垣县| 疏附县| 元氏县| 龙里县| 旺苍县| 偃师市| 双鸭山市| 林西县| 岳池县| 郧西县| 望江县| 横山县| 仙桃市| 沙河市| 华容县| 抚宁县| 延津县| 洛隆县| 扎兰屯市| 金堂县| 河东区| 开封市| 扶绥县| 浑源县| 绥中县| 肇源县| 长汀县| 弋阳县| 南安市| 如皋市|