① 在linux下怎樣配置NFS(網路文件系統的配置和實現文件共享)
方法/步驟
首先確認自己的伺服器上面是否有portmap和nfs包,一般情況下都會有.
查詢命令:
rpm
-qa
|
grep
portmap
rpm
-qa
|
grep
nfs
如果有就接著向下走
啟動portmap和nfs,但是portmap的先於nfs啟動,因為portmap為nfs動態分配埠
查看是有啟動正常用如下命令
prcinfo
-p
如果看到portmap和nfs表示啟動正常
設置你要共享的文件和目錄
編輯vi
/etc/exports
格式如下:
共享目錄
允許訪問的主機ip(許可權)
輸出共享目錄和文件
1.要不重啟nfs服務
2.使用exportfs
-rv命令
接著到另一台伺服器上面去掛載nfs伺服器輸出的文件和目錄
1.新建你要掛載的目錄
2.查看nfs伺服器的輸出目錄
showmount
-e
nfs的ip
掛載目錄或文件
格式如下:
mount
nfs伺服器地址:/usr/local/web
/mnt/websites
查看掛載結果
df
-h
測試共享時候成功,在web1上面下面的掛載目錄下面新建一個文件然後隨便寫點東西看web2上面時候同步
卸載目錄的命令:
umount
/mnt/websites
② linux下怎麼搭建nfs共享並實現開機自動掛載
一、在NIS伺服器上共享NIS用戶主目錄
1.創建用戶及NIS用戶主目錄
建議在NIS伺服器上建立獨立的目錄存放NIS帳號信息,如果保持默認設置則客戶端掛載NIS主目錄到/home目錄時會覆蓋原有用戶主目錄而導致其他異常錯誤;
我們現在建立/nishome存放NIS用戶的主目錄並使用useradd -d將NIS帳號的主目錄指向/nishome,如果己有帳號可以使用usermod -d變更主目錄。
1. [root@master /]# mkdir nishome
2. [root@master /]# mkdir nishome/nisuser1
3. [root@master /]# usermod-d /nishome/nisuser1/ nisuser1
4. [root@master /]# useradd-d /nishome/nisuser2 nisuser2
5. [root@master /]# ls nishome/
6. nisuser1 nisuser2
2.重新生成NIS資料庫並重啟ypserv和yppasswd服務
# /usr/lib/yp/ypinit -m
# service ypserv restart
# service yppasswdd restart
3.共享用戶主目錄
1. # vim /etc/exports
2. /nishome/nisuser1 *(rw)
3. /nishome/nisuser2 *(rw)
4.重啟NFS服務
1. [root@master /]# service nfs restart
2. Shutting down NFS mountd: [ OK ]
3. Shutting down NFS daemon: [ OK ]
4. Shutting down NFS quotas: [ OK ]
5. Shutting down NFS services: [ OK ]
6. Starting NFS services: [ OK ]
7. Starting NFS quotas: [ OK ]
8. Starting NFS daemon: [ OK ]
9. Starting NFS mountd: [ OK ]
10. Stopping RPC idmapd: [ OK ]
11. Starting RPC idmapd: [ OK ]
二、客戶端配置NIS驗證及Autofs
1.檢測主/從NIS伺服器相應服務是否正常開啟
1. [root@client01 ~]# rpcinfo -p master.abcnis
2. program vers proto port
3. 100000 2 tcp 111 portmapper
4. 100000 2 udp 111 portmapper
5. 100024 1 udp 952 status
6. 100024 1 tcp 955 status
7. 100004 2 udp 682 ypserv
8. 100004 1 udp 682 ypserv
9. 100004 2 tcp 685 ypserv
10. 1000041 tcp 685 ypserv
11. 1000091 udp 699 yppasswdd
12. 1000111 udp 781 rquotad
13. 1000112 udp 781 rquotad
14. 1000111 tcp 784 rquotad
15. 1000112 tcp 784 rquotad
16. 1000032 udp 2049 nfs
17. 1000033 udp 2049 nfs
18. 1000034 udp 2049 nfs
19. 1000211 udp 49642 nlockmgr
20. 1000213 udp 49642 nlockmgr
21. 1000214 udp 49642 nlockmgr
22. 1000032 tcp 2049 nfs
23. 1000033 tcp 2049 nfs
24. 1000034 tcp 2049 nfs
25. 1000211 tcp 57392 nlockmgr
26. 1000213 tcp 57392 nlockmgr
27. 1000214 tcp 57392 nlockmgr
28. 1000051 udp 796 mountd
29. 1000051 tcp 799 mountd
30. 1000052 udp 796 mountd
31. 1000052 tcp 799 mountd
32. 1000053 udp 796 mountd
33. 1000053 tcp 799 mountd
2.Authconfig啟用NIS驗證
執行setup(或者authconfig-tui命令)
3.修改Autofs主配置文件
1. vim /etc/auto.master
2. # Sample auto.master file
3. # This is an automounter map and it has thefollowing format
4. # key [ -mount-options-separated-by-comma ]location
5. # For details of the format look at autofs(5).
6. #/misc /etc/auto.misc
7. # NOTE: mounts done from a hosts map will bemounted with the
8. # "nosuid" and"nodev" options unless the "suid" and "dev"
9. # options are explicitlygiven.
10. #
11. /net -hosts
12. /nishome /etc/auto.nishome
13. #nishome是客戶端要掛載的目錄;auto.nishome是Autofs客戶端配置文件;
14. # Include centralmaster map if it can be found using
15. # nsswitch sources.
16. # Note that ifthere are entries for /net or /misc (as
17. # above) in theincluded master map any keys that are th
18. # same will not beseen as the first read key seen takes
19. # precedence.
20. +auto.master
4.創建NIS自動掛載配置文件
1. [root@client01 ~]# touch /etc/auto.nishome
2.
3. [root@client01 ~]# vim /etc/auto.nishome
4. * -fstype=nfs master.abcnis:/nishome/&
5. # Autofs掛載目錄支持通配符 * ;
6. # 網路路徑中的用戶名使用 & 表示;
5.重啟Autofs服務
# service autofs restart
可以看到重啟Autofs服務後客戶端自動創建了/nishome目錄!
三、客戶端測試
注意如果使用su命令在NIS客戶端切換到NIS用戶時,在第一次可能會報無法定位到用戶家目錄的錯誤,沒有關系,退出第二次再使用時就會正常。
1. [root@client01 ~]# su nisuser1
2. [nisuser1@client01 root]$ pwd
3. /root
4. [nisuser1@client01 root]$ cd
5. [nisuser1@client01 nisuser1]$ pwd
6. /nishome/nisuser1
7. [nisuser1@client01 nisuser1]$
③ linux NFS啟動失敗
根據你的提示可以看出兩個問題
1。在這次啟動之前,你的nfs mounted已經順利啟動,這個服務管理nfs掛載
你的nfs daemon也已經順利啟動,這個服務管理客戶端機能否順利登入主機
你的nfs磁碟配額服務業已經順利啟動,這個是nfs磁碟配額
你的nfs 服務沒有順利啟動,這個是你的nfs伺服器端的主程序
在你這次重啟nfs服務時
你後面的四個表示,現在四個服務都已順利啟動
所以整個來說,就是前四個的意思是,關閉程序的狀況
後四個是再啟動這四個的狀況
似乎沒有什麼問題,不知道你說的錯誤是什麼
④ linux配置nfs步驟
NFS的配置過程很簡單。在伺服器端中編輯 /etc/exports 文件,添加如下內容: /home/nfs-share 192.168.1.122 (rw,sync)
第一項是要共享的目錄,後者為共享的配置參數一般為: (rw,sync,no_root_squash,no_all_squash,no_subtree_check)
然後開啟NFS和portmap服務:
/etc/init.d/nfs start //用service nfs start也可以 /etc/init.d/portmap start //用service portmap stasrt也可以
在centos6.5中portmap已經改為rpcbind 在客戶端,用mount –t nfs 192.168.123:/home/nfs-share /home/remote_file掛載伺服器端的共享目錄到本地的/home/remote-file掛載點,然後我們就可以在客戶端上應用到遠程主機上的/home/nfs-share目錄了。想要系統在開機時自動掛載,修改/etc/fstab文件,把NFS伺服器的共享目錄添加進去就可以了,這個不用多說。
如何知道遠程主機上的共享目錄情況呢?使用showmount命令,這個命令需要root許可權。它有三個選項(記住這三個選項代表的含義: showmount –a IP 顯示指定NFS伺服器的客戶端以及伺服器端在客戶端的掛載點 showmount –d IP 顯示指定NFS伺服器在客戶端的掛載點 showmount –e IP 顯示指定NFS伺服器上的共享目錄列表(或者叫輸出列表) 我們輸入命令showmount –a 192.168.1.123:
圖片客戶端中出現的mount clntudp_create: RPC: Program not registered錯誤是怎麼回事?噢,我剛才重啟了一下伺服器端,重啟後NFS服務沒有開啟。 我們開啟伺服器端的NFS服務,再從客戶端上查看一下NFS伺服器的情況:
Showmount –a顯示出NFS伺服器192.168.1.123的共享目錄被客戶端192.168.122掛載到/home中;
在showmount -e IP,出現clnt_create: RPC: Port mapper failure - Timed out報錯
解決方案:
被訪問的NFS伺服器上的防火牆沒有添加規則,向iptables裡面添加以下查看的所有埠即可(目前解決的方法,當然你也可以關閉防火牆,不過這樣是比較不安全的,如果你的nfs作用不大,建議你另選別的應用來替代吧!畢竟開那麼多的埠,比較不安全呀!)
通過#rpcinfo -p 10.10.209.148
[root@rh01 /]# rpcinfo -p 10.10.209.148program vers proto port service100000 4 tcp 111 portmapper100000 3 tcp 111 portmapper100000 2 tcp 111 portmapper100000 4 udp 111 portmapper100000 3 udp 111 portmapper100000 2 udp 111 portmapper100024 1 udp 52943 status100024 1 tcp 37706 status100011 1 udp 875 rquotad100011 2 udp 875 rquotad100011 1 tcp 875 rquotad100011 2 tcp 875 rquotad100003 2 tcp 2049 nfs100003 3 tcp 2049 nfs100003 4 tcp 2049 nfs100227 2 tcp 2049 nfs_acl100227 3 tcp 2049 nfs_acl100003 2 udp 2049 nfs100003 3 udp 2049 nfs100003 4 udp 2049 nfs100227 2 udp 2049 nfs_acl100227 3 udp 2049 nfs_acl100021 1 udp 37438 nlockmgr100021 3 udp 37438 nlockmgr100021 4 udp 37438 nlockmgr100021 1 tcp 46331 nlockmgr100021 3 tcp 46331 nlockmgr100021 4 tcp 46331 nlockmgr100005 1 udp 57177 mountd100005 1 tcp 43147 mountd100005 2 udp 49154 mountd100005 2 tcp 54810 mountd100005 3 udp 55707 mountd100005 3 tcp 58309 mountd
[root@rh01 /]#
剛才在重啟NFS服務的時候,細心的話可以注意到,我們在輸入命令/etc/init.d/nfs start開啟nfs服務時,系統還自作主張地開啟了NFS quotas等其它3個服務。
怎麼回事?我們只輸入了一條啟動NFS服務的命令,它怎麼額外的啟動了3個服務?後面的啟動portmap服務又是怎麼回事? 我們首先要了解一點:NFS文件系統要提供服務單靠本身的NFS服務是不夠的,還需要調用其它服務,這個其它服務就是RPC(remote procere call,遠程過程調用)服務和portmap服務。由於NFS服務本身不提供文件傳輸功能,我們要遠程使用NFS文件系統就需要RPC服務的支持;而portmap服務用來為RPC服務進行動態埠分配和映射,所以portmap服務也是NFS服務所必須的。
我們查看一下服務的啟動情況:
所遇錯誤:
/etc/init.d/nfs-kernel-server: 沒有那個文件或目錄
解決方案:
沒有配置、安裝NFS
Linux 下配置NFS服務
1、安裝
2、配置
3、客戶端
所遇問題:centos6.5
portmap: 未被識別的服務
解決方案:
由於在6系列裡面,portmap已經改名了 ,6系列需要使用 service rpcbind start啟動[root@unix-big-bang ~]# service portmap start
portmap: 未被識別的服務
[root@unix-big-bang ~]# service rpcbind status
rpcbind (pid 1312) is running...
[root@unix-big-bang ~]#
好文共賞:
linux nfs文件共享
◆一、概念
NFS是網路文件系統(Network File System)的簡稱,是分布式計算機系統的一個組成部分,可實現在異構網路上共享和裝配遠程文件系統。
NFS由SUN公司開發,目前已成為文件服務的一種標准(RFC1904,RFC1813)。其最大的功能就是可以通過網路,讓不同 操作系統 的計算機可以共享數據,所以也可以看作是一個文件伺服器。NFS是除了SAMBA之外Windows與Linux及Unix與Linux之間通信的方法。
理想條件下的NFS 網路拓撲結構
1、設置Linux系統之間的文件共享(Linux與Windows中間文件共享採用SAMBA服務);
2、NFS只是一種文件系統,本身沒有傳輸功能,是基於RPC協議實現的,才能達到兩個Linux系統之間的文件目錄共享;
3、NFS為C/S 架構 ;
◆二、伺服器配置
1、配置文件
主要配置文件為:/etc/exports
格式為: 共享目錄 可mount主機IP(參數1,參數2,……)
如:/var/nfs 172.20. . (rw,sync,no_rootl_squash)
說明:必須注意nfs/目錄的訪問許可權,必須設置成777許可權;父目錄/var許可權無要求,普通的755即可;
2、啟動相關服務
然後依次啟動相關服務:portmap,nfslock,nfs
service portmap start
service nfslock start
service nfs start
關閉順序相反。
3、檢查共享目錄
隨後可以採用showmount –e查看一下,看看共享的目錄情況:
[root@ns var]# showmount -e
Export list for ns.osserver:
/var/nfs 172.20. .
OK,到此為止,NFS伺服器搭建完畢;
◆三、客戶端配置
1、確保portmap運行
客戶端必須確保RPC協議相應的portmap正常運行,否則mount將失敗;
2、掛載/var/nfs目錄(本地掛載點為/mnt/nfs)
mount -t nfs 172.20.65.16:/var/nfs /mnt/nfs
成功mount以後,即可同本地目錄一樣隨意操作;
◆四、其它相關命令
1、當修改了/etc/exports文件後,可以不用重新啟動nfs服務,直接採用exports –rv 即可重新導出共享目錄;
該命令格式如下:
exportfs [-aruv]
-a :全部mount或者unmount /etc/exports中的內容
-r :重新mount /etc/exports中分享出來的目錄
-u :umount 目錄
-v :在 export 的時候,將詳細的信息輸出到屏幕上。
具體例子:
[root@ns var]# showmount -e
Export list for ns.osserver:
/var/nfs 172.20. .
[root@ns var]# exportfs –au #全部卸載
[root@ns var]# showmount -e
Export list for ns.osserver:
[root@ns var]# exportfs –rv #全部重新 export 一次
exporting 172.20. . :/var/nfs
[root@ns var]#
2、showmout命令對於NFS的操作和查錯有很大的幫助,所以我們先來看一下showmount的用法
showmout
-a :這個參數是一般在NFS SERVER上使用,是用來顯示已經mount上本機nfs目錄的cline機器。
-e :顯示指定的NFS SERVER上export出來的目錄。
例如:
[root@localhost ~]# showmount -e 172.20.16.139
Export list for 172.20.16.139 :/root/share 172.20.16.137
[root@ns var]# showmount -a
All mount points on localhost.localdomain: :/root/share,172.20. . :/root/share,172.20.16. :/root/share,172.20.16.139:/nfsshare,172.20.16.139:/root/share172.20.16.137: 172.20.16.137:,172.20. . 172.20.16.137:,172.20.16. 172.20.16.137:/root/share172.20.16.139: 172.20.16.139:,172.20. . 172.20.16.139:,172.20.16. 172.20.16.139:,172.20.16.139172.20.16.139:DEFAULT
◆五、常見問題解答
1、提示:mount to NFS server 餄.20.67.203' failed: server is down.
解決方案:可能是NFS伺服器的防火牆有問題;
2、提示:mount: RPC: Timed out
解決方案:由於RPC協議沒運行;啟動portmap服務;
也有可能是防火牆問題;Server/Client均有可能。
⑤ linux伺服器重啟了nfs服務,客戶端需要重新執行mount掛載嗎本來是掛載著的!
理論上應該不需要重新mount,可以把客戶端的autofs或者nfs也重啟一下
腳本的話可以這樣判斷
ls-l/mnt/nfsfolder
if[$?-eq0]
then
echonfsisok
else
serviceautofsreload
servicenfsreload
fi
⑥ 如何配置linux內核具有nfs的功能
1、使用的技術
NFS
2、測試環境
NFS伺服器:192.168.255.18
NFS客戶端:192.168.255.11
操作系統:REDHAT4
3、NFS伺服器配置
(1)配置 /etc/hosts.deny
禁止任何客戶端能和你的NFS伺服器進行NFS連接:
### NFS DAEMONS
portmap:ALL
lockd:ALL
mountd:ALL
rquotad:ALL
statd:ALL
(2)配置/etc/hosts.allow
允許那些你想要的客戶端和你的NFS伺服器建立連接。下列步驟將允許任何IP地址
以192.168.2開頭的主機(連接到NFS伺服器上),也可以指定特定的IP地址。
### NFS DAEMONS
portmap: 192.168.255.
lockd: 192.168.255.
rquotad: 192.168.255.
mountd: 192.168.255.
statd: 192.168.255.
(3)重啟portmap
運行 $ /etc/init.d/portmap restart 重啟portmap daemon。
(4)配置/etc/exports
NFS掛載目錄及許可權由/etc/exports文件定義。比如要將我的/tmp目錄讓
192.168.255.*的IP共享, 則在該文件末尾添加下列語句:
/tmp 192.168.255.*(rw,sync,no_root_squash)
192.168.255.* 網段內的NFS客戶端能夠共享NFS伺服器/tmp目錄內容,且有讀,寫
許可權,並且該用戶進入/home/zp/share目錄後的身份為root,最好加上sync,否則
$ sudo exportfs -r 時會給出警告, sync是NFS的默認選項。
(5)重啟NFS服務
運行 $ /etc/init.d/nfs-kernel-server restart 重啟nfs服務)
(6)NFS伺服器查看共享是否成功
$ Showmount –e 192.168.255.18
/tmp 192.168.255.*
(6)NFS客戶端啟動NFS服務
service nfs start
(7)NFS客戶端查看伺服器共享目錄
Showmount –e 192.168.255.18
(8)掛載NFS伺服器共享目錄
mount –t nfs -o tcp192.168.255.18:/tmp /tmp
4、錯誤排查
當/etc/exports設置的許可權,不符合client端的來源時,則會出現以下錯誤信息:
mount: hostname:/dir failed, reason given by server: Permission denied
⑦ centos 7 linux系統下重新啟動NFS伺服器的終端命令是
CentOS 7.0中一個最主要的改變,就是切換到了systemd。它用於替代紅帽企業版Linux前任版本中的SysV和Upstart,對系統和服務進行管理。systemd兼容SysV和Linux標准組的啟動腳本。
Systemd是一個Linux操作系統下的系統和服務管理器。它被設計成向後兼容SysV啟動腳本,並提供了大量的特性,如開機時平行啟動系統服務,按需啟動守護進程,支持系統狀態快照,或者基於依賴的服務控制邏輯。
先前的使用SysV初始化或Upstart的紅帽企業版Linux版本中,使用位於/etc/rc.d/init.d/目錄中的bash初始化腳本進行管理。而在RHEL 7/CentOS 7中,這些啟動腳本被服務單元取代了。服務單元以.service文件擴展結束,提供了與初始化腳本同樣的用途。要查看、啟動、停止、重啟、啟用或者禁用系統服務,你要使用systemctl來代替舊的service命令。
⑧ 在linux系統下執行 Host #/sbin/service nfs restart /sbin下沒有service文件,請問怎麼解決,這句話意思
不是有沒有service的問題,首先是你理解錯了,你的意思是重啟nfs,所以直接命令輸入:
service nfs restart就行了,或者想直接從配置文件重啟可以輸入:
/etc/init.d/nfs restart 也行,所以並不是重啟servcie文件,而是nfs
⑨ linux 里怎麼取消nfs共享
使用掛載的卷時,umount命令將無法分離共享,要找出正在訪問NFS共享的進程,請使用fuser命令:
fuser -m MOUNT_POINT
找到進程後,可以使用kill命令停止它們並卸載NFS共享。
如果你仍然無法卸載共享,請使用-l(--lazy)選項,該選項允許你在繁忙的文件系統不再忙時立即卸載它:
umount -l MOUNT_POINT
如果遠程NFS系統無法訪問,請使用-f(--force)選項強制卸載:
umount -f MOUNT_POINT 命令使用介紹看下圖查找
⑩ LINUX 中nfs 出現問題permission denied
如果你以前沒有裝過nfs服務的話那麼首先要下載幾個包:
#apt-get install nfs-kernel-server
#apt-get install nfs-common //可選
安裝nfs-kernel-server的時候系統會自動下載另外一個包portmap;
安裝結束後,配置文件是/etc/exports,主要是設置伺服器的共享目錄以及許可權的,
在後面加上你的共享目錄即可。我的配置文件如下:
# /etc/exports: the access control list for filesystems which may be exported
# to NFS clients. See exports(5).
#
# Example for NFSv2 and NFSv3:
# /srv/homes hostname1(rw,sync) hostname2(ro,sync)
#
# Example for NFSv4:
# /srv/nfs4 gss/krb5i(rw,sync,fsid=0,crossmnt)
# /srv/nfs4/homes gss/krb5i(rw,sync)
#
/arm9test 127.0.0.3(rw,sync,no_root_squash)
/arm9test 127.0.0.2(rw,sync,no_root_squash)
其中/arm9test表示伺服器要共享的目錄,把這個改成你要共享的目錄就可以了,127.0.0.1和127.0.0.2都是伺服器所允許訪問的主機 名,就是說你可以設置哪台主機可以訪問你的共享目錄,如果用一個「*」來代替這個ip地址的話就是允許所有的主機訪問你的共享目錄,後面的幾個參數就不說 了。
設置好配置文件後,保存退出,執行
#sudo exportfs -r 更新exportfs
執行這個命令的時候可能會提示一些錯誤,如下:
lmz@lmz-desktop:~/arm9$ sudo exportfs -r
exportfs: /etc/exports [1]: Neither 'subtree_check' or 'no_subtree_check' specified for export "218.192.161.80:/arm9test".
Assuming default behaviour ('no_subtree_check').
NOTE: this default has changed since nfs-utils version 1.0.x
exportfs: /etc/exports [2]: Neither 'subtree_check' or 'no_subtree_check' specified for export "218.192.161.65:/arm9test".
Assuming default behaviour ('no_subtree_check').
NOTE: this default has changed since nfs-utils version 1.0.x
這些問題並不影響後面的使用;
然後重啟nfs服務,執行下面命令
#sudo /etc/init.d/portmap restart
#sudo /etc/init.d/nfs-kernel-server restart
成功啟動後,執行
#showmount -e
查看NFS server的export list.
我的機器上的輸出是:
lmz@lmz-desktop:~/arm9$ showmount -e
Export list for lmz-desktop:
/arm9test 127.0.0.3,127.0.0.2
至此,可以在自己的機子上測試一下nfs服務了,具體過程如下:
#mount serverip:/arm9test /mnt
其中serverip實際上就是伺服器的ip,千萬不要少了serverip後面的那個「:」哦,會出錯的
如果掛載成功的話進到/mnt是可以看到/arm9test下面的文件的,如果出錯的話就要查找一下原因了。
在自己電腦上測試通過以後就要把宿主機的共享目錄掛載到目標板上了,這樣調試程序非常方便,不用把程序傳過去就可以直接調試了。掛載過程如下:
首先開機啟動2410,進入linux,進入shell,配置板子的ip地址,
#ifconfig eth0 ipaddr
ipaddr就是上面所設置的允許訪問共享目錄的ip,在這里可以設為127.0.0.2,然後執行嗯命令:
#mount -t nfs -o intr,nolock,rsize=1024,wsize=1024 serverip:/arm9test /mnt/ext1
把serverip改為你自己的主機的ip就可以了,這個時候要確認你的主機的nfs服務已經啟動,並且網線已經連接好,正常情況下等一下就可以完成掛載 了