原创 Ubuntu上NFS的安装配置

2010-1-20 23:56 13007 14 16 分类: MCU/ 嵌入式

UbuntuNFS的安装配置<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />


 


       NFS用于Linux主机访问网络中其他Linux主机上的共享资源。NFS的原理是在客户端上通过网络将远程主机共享文件系统以挂载(Mount)的方式加入本机的文件系统,之后的操作就如同在本机上一样。


 


NFS服务器(宿主机)


 


1.安装NFS


Ubuntu上默认是没有安装NFS服务器的,首先要安装NFS服务程序:
                      $ sudo apt-get install nfs-kernel-server



(
安装nfs-kernel-server时,apt会自动安装nfs-commonportmap
这样,宿主机就相当于NFS Server


 


2. 配置NFS
1)配置portmap
方法1: 编辑/etc/default/portmap, -i 127.0.0.1 去掉.

方法2:             


       $ sudo dpkg-reconfigure portmap


Should portmap be bound to the loopback address? N.

2)
配置/etc/hosts.deny


                                      $ sudo gedit /etc/hosts.deny
(禁止任何host(主机)能和你的NFS服务器进行NFS连接),加入:
### NFS DAEMONS
portmap:ALL
lockd:ALL
mountd:ALL
rquotad:ALL
statd:ALL


 


3) /etc/hosts.allow


                                     $ sudo gedit /etc/hosts.allow
允许那些你想要的主机和你的NFS服务器建立连接。下列步骤将允许任何IP地址以192.168.1开头的主机(连接到NFS服务器上),也可以指定特定的IP地址。
### NFS DAEMONS
portmap: 192.168.1.
lockd: 192.168.1.
rquotad: 192.168.1.
mountd: 192.168.1.
statd: 192.168.1.


 


        蓝色文字可略过


 


起用保护机制
   
上面设置了只要在192.168.1.*这个网段的所有IP地址用户都可以访问共享目录,但我只想让一个IP地址访问,比如 192.168.1.101那么就可以这样设置了。
可以通过设定/etc/hosts.deny/etc/hosts.allow文件来限制网络服务的存取权限。


***/etc/hosts.deny***
portmap:ALL
lockd:ALL
mountd:ALL
rquotad:ALL
statd:ALL



***/etc/hosts.allow***
portmap:192.168.1.101
lockd:192.168.1.101
mountd:192.168.1.101
rquotad:192.168.1.101
statd:192.168.1.101

    


      同时使用这两个文件就会使得只有ip192.168.1.101的机器使用NFS服务。你的target boardip地址设定为192.168.1.101,这样就可以了。

   
/etc/hosts.deny /etc/hosts.allow 设置对portmap的访问. 采用这两个配置文件有点类似"mask"的意思. 现在/etc/hosts.deny中禁止所有用户对portmap的访问. 再在/etc/hosts.allow 中允许某些用户对portmap的访问。


 


4)重启portmap daemon


     每次对/etc/hosts.deny /etc/hosts.allow两文件的修改后都要重启portmap daemon。不然修改无效。


$ sudo /etc/init.d/portmap restart


 


5)配置/etc/exports
    NFS
挂载目录及权限由/etc/exports文件定义。


                                              $sudo gedit /etc/exports
   
比如我要将将我的home目录中的/home/lin/NFSshare目录让192.168.1.*IP共享, 则在该文件末尾添加下列语句:
        /home/lin/NFSshare  192.168.1.*(rw,sync,no_root_squash)


      然后保存退出。


/home/lin/NFSshare就表示共享目录,当然,你可以随便换成自己喜欢的目录。


192.168.1.:前面三位是你主机(NFS客户端)的ip地址(本机终端ifconfig命令就可以获得本机的ip地址)。
rw/写权限,只读权限的参数为ro
sync
:数据同步写入内存和硬盘,也可以使用async,此时数据会先暂存于内存中,而不立即写入硬盘。


no_root_squashNFS 服务器共享目录用户的属性,如果用户是 root,那么对于这个共享目录来说就具有 root 的权限。


 


6)重启nfs服务


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


  


    执行这个命令的时候可能会提示一些错误,如下:


 * Stopping NFS kernel daemon                                            [ OK ]


 


 * Unexporting directories for NFS kernel daemon...                      [ OK ]


 


 * Exporting directories for NFS kernel daemon...                               exportfs: /etc/exports [1]: Neither 'subtree_check' or 'no_subtree_check' specified for export "192.168.1.*:/home/lin/NFSshare".


 


  Assuming default behaviour ('no_subtree_check').


 


  NOTE: this default has changed since nfs-utils version 1.0.x


                                                                                                                   [ OK ]


 * Starting NFS kernel daemon                                             [ OK ]


 


       我不知道具体原因,不用管,不影响后面的使用。


 


注意:每次对/etc/exports文件的修改,都要重启一下nfs服务。


 


7nfs服务器端测试


      由于nfs服务器端默认是安装了nfs客户端(nfs-common)的,所以可以在服务器端挂载共享文件夹作测试。


                        $sudo mount 192.168.1.160:/home/lin/NFSshare /mnt



192.168.1.160nfs服务器端IP地址,可以在服务器端终端通过命令ifconfig获得。


 


点击看大图


      有可能会出现错误


$mount 192.168.1.160:/home/lin/NFSshare /mnt
mount.nfs: access denied by server while mounting 192.168.1.160:/home/lin/NFSshare


      nfs客户端执行上述命令,出现同样的错误。这个错误的意思是客户端地址不在NFS所允许的地址范围之内,但无论服务器端还是客户端IP都是192.168.1.*啊!


 


解决办法


      重新$sudo gedit /etc/exports,将“ 192.168.1.换成,要注意就这一个星星哦!修改完之后不要忘了重启一下nfs服务


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


   


       这样修改之后,就可以看到/mnt文件下共享了/home/lin/NFSshare文件夹里的内容。测试完毕,要卸载nfs的挂载


                               $sudo umount /umt


 


NFS客户端


1.安装NFS


     客户端需要安装nfs客户端程序(nfs-common)


$ sudo apt-get install nfs-commmon    


 


 


2.nfs挂载


     挂载服务器端共享文件夹(假设服务器端IP地址为:192.168.1.160,将/home/lin/NFSshare挂载到/mnt)


$ sudo mount 192.168.1.160:/home/lin/NFSshare /mnt


 


      查看NFS serverexport list


$ showmount -e 192.168.1.160


Export list for 192.168.1.160:


/home/lin/NFSshare 192.168.1.139


<?xml:namespace prefix = v ns = "urn:schemas-microsoft-com:vml" /><?xml:namespace prefix = w ns = "urn:schemas-microsoft-com:office:word" />


 


点击看大图


 


$ df 看看结果





       打开文件夹/mnt,可以看到实际访问到了服务器端的/home/lin/NFSshare文件夹


 


6031fe4d-928f-450d-b5cd-205b914a378f.JPG


 


       使用完NFS后可以卸载NFS挂载。


$ sudo umount /mnt


 


NFS相关的几个文件
1, /sbin/exportfs
   
维护NFS的资源共享. 可以通过它重新设定 /etc/exports 的共享目录, 卸载NFS Server共享的目录或者重新共享等.

2, /usr/sbin/showmount
   
用在 NFS Server 端,而 showmount 则主要用在 Client . showmount 可以用來查看 NFS 共享的目录资源.

3, /var/lib/nfs/xtab
    NFS
的记录文档: 通过它可以查看有哪些Client 连接到NFS主机的记录.

下面这几个并不直接负责NFS, 实际上它们负责所有的RPC
4, /etc/default/portmap
   
实际上, portmap负责映射所有的RPC服务端口, 它的内容非常非常之简单(后面详述)

5, /etc/hosts.deny
   
设定拒绝portmap服务的主机

6, /etc/hosts.allow
   
设定允许portmap服务的主机


 


7, /etc/exports
   
NFS卷的访问是由exports来批准, 它枚举了若干有权访问NFS服务器上文件系统的主机名。/etc/exports实际上就是nfs服务器的核心配置文件了. 鸟哥的Linux私房菜列举了一些exports文件的写法。


      除了编辑/etc/exports文件这种方法外,Ubuntu还提供图形管理工具——“共享的文件件,可以用它来进行NFS服务器的维护和设置工作。


(1)打开共享的文件件


                第一种方法:系统”——“系统管理”——“共享的文件夹(我的Ubuntu8.10没有)


                第二种方法:终端   $ shares-admin


 


6fcc9cc4-4be0-483e-92a9-37209e90b3e4.JPG


 

(

2)要想修改,首先就要解锁


 


51d9f05c-0da9-456a-a755-5e3e86c7e097.JPG



(3)可以看到之前/home/lin/NFSshare在列表内,其实共享的文件夹不过是/etc/exports图形化。


 


0e982d71-4f98-4310-befe-15e887f22f52.JPG


 

(4)添加添加一个新的共享文件夹


 


fc6e2ede-8635-4478-b14c-f8a713931663.JPG



         选择“Unix网络(NFS)“。因为这是Linux之间的共享;如果是LinuxWindows之间的共享,选择“Windows网络(SMB)”


 


(5)再点添加,可以设置指定主机名”,“指定IP地址指定网络


 


49649b1d-9fb1-4c2f-bfcb-ec1654287083.JPG


(6)设置完毕之后就可以关闭共享的文件夹,打开/etc/exports可以看到,相应的语句加入到了文件里。


点击看大图


 


 


参考资料:


1)ubuntu7.10下配置nfs并挂载共享目录到目标板上


http://hi.baidu.com/lmzzyw/blog/item/a1582e3552985b1590ef39e1.html


2)Ubuntunfs的安装配置


http://hi.baidu.com/wangy0919/blog/item/79e726c68c1efc199d163d98.html


3)ubuntu测试本机nfs出错:mount.nfs:access denied by server while mounting


http://hi.baidu.com/dsfire/blog/item/100386f0b98b52a7a40f52c6.html

PARTNER CONTENT

文章评论2条评论)

登录后参与讨论

用户1679196 2010-3-17 09:27

good!!! 转下.

用户174379 2010-1-25 13:46

人各有志,谢谢哦。
相关推荐阅读
藤井树 2015-10-12 14:43
印制电路板的抗干扰设计 zz
印制电路板的抗干扰设计     作者:中船重工集团第707所 肖麟芬   摘   要:本文以印制电路板的电磁兼容性为核心,分析了电磁干扰的产生机理...
藤井树 2013-10-22 15:32
2010.5.30 黄草梁上包饺子一日登山活动——摘韭菜篇
        上次桃花节的时候也有野韭菜,那时候的我连草和韭菜叶分不清,才回去的韭菜也不敢吃,哈哈,这次可算真正见识了韭菜,黄草梁也叫韭菜梁,因为满山遍野都是野韭菜而闻名,比较圆比较粗的就是野韭...
藤井树 2013-10-22 15:28
2010.5.30 黄草梁上包饺子一日登山活动——包饺子篇
摘韭菜回来,大家已经忙开了 我也装模作样地“工作着” 哈哈,还不让我包,包饺子是技术活,一定要皮薄馅厚才有资格包,像我这样的只能旁观了 摘的韭菜应该足够了,旁边那个袋子是我摘来带回学校的 ...
藤井树 2013-08-09 15:19
datasheet下载网站整理(查IC芯片手册)【原创】
*************************************************************************         作为电子工程师,芯片的dat...
藤井树 2010-06-04 00:21
陈伟宁王辉一家捐助渠道(北京菲亚特—英菲尼迪)
       王辉的最新消息请关注 http://chenweining.org/       目前事故责任认定已经出来了——陈家全责。        发信人: program (程序), 信区: D...
藤井树 2010-06-01 13:43
2010.5.30 黄草梁上包饺子一日登山活动——美景篇
这天不得不说的是天空,蓝蓝的天空,白白的云    绿油油的山脊  我、洪涛哥哥、huangna妹妹还有她同事小艾走在黄草梁上    在蓝天白云下合影       阳光照过来,景色真美 象鼻山,走不...
EE直播间
更多
我要评论
2
14
关闭 站长推荐上一条 /3 下一条