ubuntu製作nfs檔案系統

2021-05-27 00:45:31 字數 4295 閱讀 1017

ubuntu:

1.關閉防火牆

sudo ufw disable

2.涉及檔案

portmap hosts.deny  hosts.allow

涉及操作(按順序如下)

sudo /etc/init.d/portmap  restart

sudo /etc/init.d/nfs-common restart

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

安裝 server 和 client

ubuntu上預設是沒有安裝nfs伺服器的,首先要安裝nfs服務程式:

$ sudo apt-get install nfs-kernel-server

(安裝nfs-kernel-server時,apt會自動安裝nfs-common和portmap)

這樣,宿主機就相當於nfs server。

同樣地,目標系統作為nfs的客戶端,需要安裝nfs客戶端程式。如果是debian/ubuntu系統,則需要安裝nfs-common。

$ sudo apt-get install nfs-commmon

nfs-common和nfs-kernel-server都依賴於portmap!

這樣就安裝完了,下面進行配置

配置 nfs

配置/etc/hosts.deny

(禁止任何host(主機)能和你的nfs伺服器進行nfs連線),加入:

### nfs daemons

portmap:all

lockd:all

mountd:all

rquotad:all

statd:all

配 置/etc/hosts.allow

允許那些你想要的主機和你的nfs伺服器建立連線。下列步驟將允許任何ip位址以192.168.197開頭的主機(連線到nfs伺服器上),也可以指定特定的ip位址。參看man頁hosts_access(5), hosts_options(5)。加入:

### nfs daemons

portmap: 192.168.197.

lockd: 192.168.197.

rquotad: 192.168.197.

mountd: 192.168.197.

statd: 192.168.197.

/etc/hosts.deny 和 /etc/hosts.allow設定對portmap的訪問. 採用這兩個配置檔案有點類似"mask"的意思.現在/etc/hosts.deny中禁止所有使用者對portmap的訪問. 再在/etc/hosts.allow中允許某些使用者對portmap的訪問.

配置/etc/exports

nfs掛載目錄及許可權由/etc/exports檔案定義 

比如我要將將我的home目錄中的/home/liliming/arm2410目錄讓192.168.197.*的ip共享,則在該檔案末尾新增下列語句:

/home/liliming/arm2410 

192.168.197.*(rw,sync,no_root_squash)

或者:/home/liliming/arm2410 

192.168.197.0/24(rw,sync,no_root_squash)

注意這裡,這樣寫有可能你的nfs還不能用,你可以允許所以ip共享你的目錄,語句如下:

/home/liliming/arm2410 

*(rw,sync,no_root_squash)

至此配置完成,下面啟動nfs

啟動nfs

sudo /etc/init.d/portmap  restart

sudo  /etc/init.d/nfs-common restart

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

測試 nfs

ubuntu 下

sudo mount localhost:/home/liliming/arm2410  /mnt

ls /mnt

看是否已經掛載成功

開發板 下

mount 192.168.197.75:/home/liliming/arm2410  /mnt

ls /mnt

看是否已經掛載成功(192.168.197.75 是ubuntu的ip位址)

可能出現的錯誤:

1. 掛載不成功,具體提示資訊不記得了,可以這樣試試

配置/etc/exports

/home/liliming/arm2410 

*(rw,sync,no_root_squash)

也就是允許所有的ip 訪問

2. 提示 mount rpc unable to receive errno connection refused

說明你的伺服器端(ubuntu)服務沒設定好,原因可能如下:

a. nfs 沒啟動,按照上面的啟動步驟 再重新啟動一下

b. 看一下 檔案 /etc/exports 和檔案  /etc/hosts.allow 裡面的ip是不是 包含 你的開發板 ip,

不包含的話,把你的網段寫上,重新啟動 nfs

1 nfs安裝

nfs原理是通過網路,將遠端主機共享的檔案系統,掛載到本機。ubuntu10.04上預設是沒有安裝nfs伺服器的,首先要安裝nfs服務程式:

#  sudo apt-get install nfs-kernel-server

(安裝nfs-kernel-server時,apt會自動安裝nfs-common和portmap) 這樣,宿主機就相當於nfs server。

也可以通過軟體管理包來安裝nfs-kernel-server

宿主機nfs的配置

2.1  修改配置檔案/etc/exports

在終端下用#  sudo gedit /etc/exports開啟exports檔案。

如果你沒有配置過這個檔案的話此檔案應該是空的。在開始部分寫入

/hhm 

*(rw,sync,no_root_squash)

/hhm  -- 是要與目標板共享的目錄;

* -- 表示允許任意使用者使用,也可以使用具體ip;

(rw,sync,no_root_squash) 

-- rw,掛載此目錄的客戶機對此目錄有讀寫權利;

sync,……;

no_root_squash,掛載此目錄的客戶機享有主機root的權利;

我是將主機的根目錄設定為共享目錄  / *(rw,sync,no_root_squash)

ok,儲存,退出。

修改完成之後輸入:#  exportfs–rv來使配置檔案生效

2.2 

配置宿主機的ip

配置宿主機的ip,在命令列中輸入 # ifconfig 

來檢視本機的ip位址。如果沒有設定,可以用命令 # ifconfig eth0 192.168.0.18來設定ip。其中的ip位址可以根據具體情況來設定。設定完成後在通過ifconfig來再次檢視是否已經設定成功。

2.3 

啟動宿主機nfs服務

安裝完nfs服務後就可以通過 #  /etc/init.d/nfs-kernel-serverrestart(/etc/init.d/nfs-kernel-serverstart)來重新開啟網路檔案系統服務,以便後面的開發板掛載。也可以通過# /etc/init.d/nfs-kernel-server stop來停止。

目標板的掛載操作

給你的目標機上電,目標板上的linux作業系統起來以後,在pc機上ubuntu作業系統上開啟minicom,通過串列埠向目標板傳送shell命令。

像主機操作一樣,首先檢查目標板(客戶機)的ip是否與宿主機的ip再同乙個位址段上,否則用上面用過的命令進行檢查和設定本地ip。

設定完ip之後可以ping一下檢查網絡卡、網線是否連線正確。

既在minicom中輸入# ping 192.168.0.18 (主機ip位址)連線成功會不斷的列印資訊。

接下來就是在開發板上進行掛載mount

# mount -t nfs -o nolock192.168.0.18:/ /mnt 

其中:後是客戶機掛載的共享目錄; /mnt是開發板的掛載目錄

ok,掛在完成。

通過# cd  /mnt

# ls

可以發現主機的根目錄被掛載進了開發板mnt目錄中。

如果你想取消掛在可以使用命令# umount  /mnt就可以了。

檔案系統製作 NFS

1.核心怎樣啟動第乙個應用程式 1 開啟乙個裝置 open dev console sys dup 0 sys dup 0 注釋 open函式開啟乙個檔案 第乙個檔案標號為0 sys dup 0 表示複製第乙個檔案,所以printf,scanf,err三個都指向終端 dev console。2 通過...

NFS檔案系統製作

在前面的一章中已經實現了initramfs檔案系統,但是由於開發的需要,nfs檔案系統更加適合,因此,需要使用nfs檔案系統。那需要怎麼做呢?1 配置linux核心以支援nfs檔案系統,同時需要將initramfs的選項去掉 make menuconfig general setup initial...

製作ubuntu根檔案系統

1 參照firefly的wiki教程,製作出了系統映象檔案,需要注意的是,在 mkfs.ext4 linuxroot.img格式化時,要輸入y。2 製作完成後,發現圖形介面無法啟動 3 製作完成後,發現分割槽資訊不對,未能利用全部儲存空間 4 製作完成後,發現無法上網,只有本地回環 5 安裝xubu...