嵌入式 Linux下搭建nfs服务器

时间:2022-10-23 22:29:24

Ubuntu:

 apt-get install nfs-kernel-server

vim 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,no_subtree_check) hostname2(ro,sync,no_subtree_check)
#
# Example for NFSv4:
# /srv/nfs4        gss/krb5i(rw,sync,fsid=0,crossmnt,no_subtree_check)
# /srv/nfs4/homes  gss/krb5i(rw,sync,no_subtree_check)
#

/opt/(nfs的目录)  (rw,sync)

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

linux搭建NFS服务器

一、什么是NFS服务

NFS是Network File System的简写,即网络文件系统.
  网络文件系统是FreeBSD支持的文件系统中的一种,也被称为NFS. NFS允许一个系统在网络上与它人共享目录和文件。通过使用NFS,用户和程序可以象访问本地文件一样访问远端系统上的文件。

二、NFS的优势

        1.本地工作站使用更少的磁盘空间,因为通常的数据可以存放在一台机器上而且可以通过网络访问到。
  2.用户不必在每个网络上机器里头都有一个home目录。Home目录 可以被放在NFS服务器上并且在网络上处处可用。
  3.诸如软驱,CDROM,和 Zip® 之类的存储设备可以在网络上面被别的机器使用。这可以减少整个网络上的可移动介质设备的数量。
  NFS至少有两个主要部分:一台服务器和一台(或者更多)客户机。客户机远程访问存放在服务器上的数据。为了正常工作,一些进程需要被配置并运行。

三、NFS的搭建

1、服务器端

安装NFS的服务程序

yum install -y nfs-utils

写配置文件

vim /etc/exports

写入

/music        192.168.0.0/255.255.255.0(rw,sync)

格式是:

要共享的目录        共享的IP及掩码或者域名(权限,同步更新)

嵌入式 Linux下搭建nfs服务器

启动服务

/etc/init.d/portmap restart

/etc/init.d/nfs restart

chkconfig nfs on

chkconfig portmap on

嵌入式 Linux下搭建nfs服务器

然后关闭防火墙以及更改Selinux关于NIS的选项

/etc/init.d/iptables stop (防护墙服务关闭)

chkconfig iptables off

system-config-selinux (设置selinux)

2、客户端

编辑fstab文件,实现开机自动挂载

mount -t nfs IP:/目录  挂载到的目录  (此为临时挂载)

如:mount -t nfs 192.168.0.9:/doce     /doc

编辑FSTAB文件

vim /etc/init.d/fstab

IP:/目录     挂载到的目录     nfs      defaults     0 0

嵌入式 Linux下搭建nfs服务器

然后关闭防火墙以及更改Selinux关于NIS的选项

/etc/init.d/iptables stop (防护墙服务关闭)

chkconfig iptables off

system-config-selinux (设置selinux)

搭建嵌入式nfs时,嵌入式开发板上的系统必须支持nfs客户端。

1. 在电脑服务器端下载并安装nfs

$ sudo apt-get install nfs-kernel-server nfs-common portmap

2.配置共享文件
   将服务器端(电脑)上一个文件夹作为共享文件夹,以后客户端(开发板)将通过网络文件系统NFS访问这个文件夹。我这里把/work/nfs_root作为共享目录。

打开配置文件
$ sudo gedit /etc/exports       
   将下面这句话添加在这个文件最后。
/work/nfs_root *(rw,sync,no_root_squash)
注意nfs_root与*之间一定要有空格。而*号与后面就没有空格。*号代表ip地址(也可以是一确定的网段)。*代表允许所有的网络段访问,rw是可读写权限。保存。
可以通过sudoexportfs -rv 来更新 这个文件
          
3.重启NFS服务
sudo /etc/init.d/portmap restart //可改用 sudo  service portmap restart
sudo /etc/init.d/nfs-kernel-server restart


4.服务器安装完之后可以这样测试。(这步只是检测, 若只想与开发板相连这步可略)

本地测试:$sudo mount 192.168.1.109:/work/nfs_root   /mnt
执行后,可以在mnt目录下发现我的共享目录下的文件。
这样nfs应该就搭建成功了。其中192.168.1.109为服务端(电脑)的IP

碰到的问题:如果设定了主机IP,而不是用*号时,在进行本地测试时,进行Mount时会遇到
mount.nfs: access denied by server while mounting 192.168.1.2:的问题
因为本地测试默认在127.0.0.1范围内寻址,所以当然不会寻找到192.168. .
所以用*号可以解决这个问题。

5.客户端(开发板)连接服务端

将客户端(开发板)插上网线接入网络,设置好IP。
在客户端终端输入:
#mount -t nfs -o nolock 192.168.1.109:/work/nfs_root   /mnt(/mnt为实验板上的目录,也可是其他目录)
如果无任何输出说明连接成功了。
#cd /mnt
#ls

可以看到这个目录下有我主机的共享目录的中的内容了。这样NFS连接就成功了。
 如果能正常挂载,而不能对文件进行copy,mv等操作,可能是文件大了。可用如下命令挂载:
#mount -t nfs -o intr,nolock,rsize=1024,wsize=1024  192.168.1.109:/work/nfs_root   /mnt(/mnt为实验板上的目录,也可是其他目录)本文来