技術(shù)員聯(lián)盟提供win764位系統(tǒng)下載,win10,win7,xp,裝機純凈版,64位旗艦版,綠色軟件,免費軟件下載基地!

當(dāng)前位置:主頁 > 教程 > 服務(wù)器類 >

在Linux操作系統(tǒng)下設(shè)置NFS共享技巧

來源:技術(shù)員聯(lián)盟┆發(fā)布時間:2018-09-16 06:17┆點擊:

  網(wǎng)絡(luò)文件系統(tǒng)(NFS,Network File System)是一種將遠程主機上的分區(qū)(目錄)經(jīng)網(wǎng)絡(luò)掛載到本地系統(tǒng)的一種機制,通過對網(wǎng)絡(luò)文件系統(tǒng)的支持,用戶可以在本地系統(tǒng)上像操作本地分區(qū)一樣來對遠程主機的共享分區(qū)(目錄)進行操作。

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

  嵌入式Linux 的NFS 開發(fā)環(huán)境的實現(xiàn)包括兩個方面:一是Linux 服務(wù)器端的NFS 服務(wù)器支持;二是嵌入式目標(biāo)系統(tǒng)的NFS 客戶端的支持。因此,NFS 開發(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.*的計算機以讀寫的權(quán)限來訪問/home/work 目錄。

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

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

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

  sync:數(shù)據(jù)同步寫入內(nèi)存和硬盤,也可以使用async,此時數(shù)據(jù)會先暫存于內(nèi)存中,而不立即寫入硬盤。

  no_root_squash:NFS 服務(wù)器共享目錄用戶的屬性,如果用戶是 root,那么對于這個共享目錄來說就具有 root 的權(quán)限。

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

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

  最后執(zhí)行如下命令啟動NFS 服務(wù),此時NFS 會激活守護進程,然后就開始監(jiān)聽 Client 端的請求:

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

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

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

  我們首先在Linux 服務(wù)器上進行NFS 服務(wù)器的回環(huán)測試,驗證共享目錄是否能夠被訪問。在Linux 服務(wù)器上運行如下命令:

  # 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è)置好后,還需要對客戶端進行相關(guān)配置。在配置內(nèi)核時選擇Load an Alternate Configuration File輸入配置文件的路徑和文件名添加內(nèi)核對NFS的支持:

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

  選中file systems-》network file systems-》下的root file system on nfs

  和nfs file system support重新編譯內(nèi)核下載bootloader和kernel到開發(fā)板上

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

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

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

  # cd /mnt/nfs

  # ls

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

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

  在開發(fā)過程中,來回輸入命令非常煩人,我寫了兩個簡單的腳本來完成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

  嵌入式目標(biāo)機掛載nfs:

  mnfs:

  #!/bin/sh

  mount -t nfs 192.168.0.20:/home/work/nfs /mnt/nfs -o nolock

  echo “nfs ok!”