ubuntu下搭建nfs服务器
2013-07-26 12:40
239 查看
nfs的全称是Network File-System,可以通过它实现不同机器不同系统之间的文件共享。通过nfs把可执行文件传输到开发板中,让其在开发板里运行的。
使用命令apt-get install nfs-kernel-server
安装结束以后可以/etc/下看到一个文件为exports 这里面是设置以后nfs挂载目录的路径
示你怎样配置nfs。因为nfs是一种网络共享,所以首先要确定你想把哪个文件夹共享出来,目前假设共享的文件目录为/opt/nfs,建议不要把共享的文件夹选的太大,那样会严重影响共享传输的速度;还要确定主机的IP地址是多少,目前先假设IP为192.168.5.100。配置时只需要在exports文件的末尾加上一句话:
下面解释一下,总共需要写三部分的东西,第一部分就是/opt/nfs,也就是待共享的目录。第二部分192.168.5.*是指在这个IP地址段内可以共享,第三部分就是括号里的内容,就是参数,也是配置的重点地方,下面重点说一下:
第一个参数: rw: 可擦写的权限 ;ro: 只读的权限。
第二个参数: sync: 资料同步写入到内存与硬盘当中 ;async: 资料会先暂存于内存当中,而非直接写入硬盘。
第三个参数: 1、no_root_squash: 登入 NFS 主机使用分享目录的使用者,如果是 root 的话,那么对于这个分享的目录来说,他就具有 root 的权限!这个项目极不安全,不建议使用!
2、root_squash:在登入 NFS 主机使用分享之目录的使用者如果是 root 时,那么这个使用者的权限将被压缩成为匿名使用 者,通常他的 UID 与 GID 都会变成 nobody 那个身份。
3、all_squash: 不论登入 NFS 的使用者身份为何,他的身份都会被压缩成为匿名使用者,通常也就是nobody 啦!
4、anonuid: 前面关于 *_squash 提到的匿名使用者的 UID 设定值,通常为 nobody,但是你可以自行设定这个 UID 的 值!当然,这个 UID 必需要存在于你的 /etc/passwd 当中!
5、anongid: 同 anonuid ,但是变成 group ID 就是了。
其详细的参数介绍在下面表格中有详细介绍
三、启动nfs服务。
1、首先把上面修改过的配置文件重新导入:sudo exportfs -rv
2、重新启动nfs服务:sudo /etc/init.d/nfs-kernel-server restart
以上三步输入完毕,就配置好了nfs服务了,如果后面有需要要修改exports文件,在修改之后,还是需要重新输入1步骤中的命令。
四、使用nfs。基本就是使用mount指令,让共享的文件夹挂载到一个指定目录下。在使用nfs服务之前 ,在终端中输入: mount -t nfs 192.168.5.100:/opt/nfs /mnt 如果没有提示就说明挂在成功。如果想要与开发板进行nfs传输,则在开发板的Linux系统下的终端中输入: mount -t nfs 192.168.5.100:/opt/nfs
/mnt -o nolock 完成挂载,进入/mnt目录会发现在PC机中opt/nfs中的东西显示出来了。
在使用mount的时候还可能会遇到一些问题,其中一个常见的错误提示是 access denied by server while mounting,可能的原因就是在配置文件中设置的那个IP段范围设置错了或者设置小了,如果修改之后还没有好的话,那就直接使用一个“*”代替之前的那个整个IP号,虽然不是很安全,但是一定能解决办法。修改之后一定要记得重新导入配置文件。
通过以上的步骤就基本可以实现nfs服务了,可以通过这种方式方便快捷的把在PC编写好的开发板程序传输到开发板中运行了,这种方法是最快的实现路径了。
mount -t nfs 192.168.5.3:/opt/nfs /mnt -o nolock
这个就是将虚拟主机(其IP为192.168.5.3)上的/opt/nfs目录挂载到开发板上的/mnt目录
表 exports文件内参数的含义
使用命令apt-get install nfs-kernel-server
安装结束以后可以/etc/下看到一个文件为exports 这里面是设置以后nfs挂载目录的路径
# /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) #
示你怎样配置nfs。因为nfs是一种网络共享,所以首先要确定你想把哪个文件夹共享出来,目前假设共享的文件目录为/opt/nfs,建议不要把共享的文件夹选的太大,那样会严重影响共享传输的速度;还要确定主机的IP地址是多少,目前先假设IP为192.168.5.100。配置时只需要在exports文件的末尾加上一句话:
/opt/nfs 192.168.5.*(rw,sync,no_root_squash)
下面解释一下,总共需要写三部分的东西,第一部分就是/opt/nfs,也就是待共享的目录。第二部分192.168.5.*是指在这个IP地址段内可以共享,第三部分就是括号里的内容,就是参数,也是配置的重点地方,下面重点说一下:
第一个参数: rw: 可擦写的权限 ;ro: 只读的权限。
第二个参数: sync: 资料同步写入到内存与硬盘当中 ;async: 资料会先暂存于内存当中,而非直接写入硬盘。
第三个参数: 1、no_root_squash: 登入 NFS 主机使用分享目录的使用者,如果是 root 的话,那么对于这个分享的目录来说,他就具有 root 的权限!这个项目极不安全,不建议使用!
2、root_squash:在登入 NFS 主机使用分享之目录的使用者如果是 root 时,那么这个使用者的权限将被压缩成为匿名使用 者,通常他的 UID 与 GID 都会变成 nobody 那个身份。
3、all_squash: 不论登入 NFS 的使用者身份为何,他的身份都会被压缩成为匿名使用者,通常也就是nobody 啦!
4、anonuid: 前面关于 *_squash 提到的匿名使用者的 UID 设定值,通常为 nobody,但是你可以自行设定这个 UID 的 值!当然,这个 UID 必需要存在于你的 /etc/passwd 当中!
5、anongid: 同 anonuid ,但是变成 group ID 就是了。
其详细的参数介绍在下面表格中有详细介绍
三、启动nfs服务。
1、首先把上面修改过的配置文件重新导入:sudo exportfs -rv
2、重新启动nfs服务:sudo /etc/init.d/nfs-kernel-server restart
以上三步输入完毕,就配置好了nfs服务了,如果后面有需要要修改exports文件,在修改之后,还是需要重新输入1步骤中的命令。
四、使用nfs。基本就是使用mount指令,让共享的文件夹挂载到一个指定目录下。在使用nfs服务之前 ,在终端中输入: mount -t nfs 192.168.5.100:/opt/nfs /mnt 如果没有提示就说明挂在成功。如果想要与开发板进行nfs传输,则在开发板的Linux系统下的终端中输入: mount -t nfs 192.168.5.100:/opt/nfs
/mnt -o nolock 完成挂载,进入/mnt目录会发现在PC机中opt/nfs中的东西显示出来了。
在使用mount的时候还可能会遇到一些问题,其中一个常见的错误提示是 access denied by server while mounting,可能的原因就是在配置文件中设置的那个IP段范围设置错了或者设置小了,如果修改之后还没有好的话,那就直接使用一个“*”代替之前的那个整个IP号,虽然不是很安全,但是一定能解决办法。修改之后一定要记得重新导入配置文件。
通过以上的步骤就基本可以实现nfs服务了,可以通过这种方式方便快捷的把在PC编写好的开发板程序传输到开发板中运行了,这种方法是最快的实现路径了。
mount -t nfs 192.168.5.3:/opt/nfs /mnt -o nolock
这个就是将虚拟主机(其IP为192.168.5.3)上的/opt/nfs目录挂载到开发板上的/mnt目录
表 exports文件内参数的含义
参数 | 说明 |
ro | 只读访问 |
rw | 读写访问 |
sync | 所有数据在请求时写入共享 |
async | nfs在写入数据前可以响应请求 |
secure | nfs通过1024以下的安全TCP/IP端口发送 |
insecure | nfs通过1024以上的端口发送 |
wdelay | 如果多个用户要写入nfs目录,则归组写入(默认) |
no_wdelay | 如果多个用户要写入nfs目录,则立即写入,当使用async时,无需此设置 |
hide | 在nfs共享目录中不共享其子目录 |
no_hide | 共享nfs目录的子目录 |
subtree_check | 如果共享/usr/bin之类的子目录时,强制nfs检查父目录的权限(默认) |
no_subtree_check | 不检查父目录权限 |
all_squash | 共享文件的UID和GID映射匿名用户anonymous,适合公用目录 |
no_all_squash | 保留共享文件的UID和GID(默认) |
root_squash | root用户的所有请求映射成如anonymous用户一样的权限(默认) |
no_root_squash | root用户具有根目录的完全管理访问权限 |
anonuid=xxx | 指定nfs服务器/etc/passwd文件中匿名用户的UID |
anongid=xxx | 指定nfs服务器/etc/passwd文件中匿名用户的GID |
相关文章推荐
- Ubuntu 12.04.2搭建nfs服务器
- Ubuntu10.04系统调试TQ2440开发板之二《Ubuntu NFS服务器搭建》
- ubuntu14.04 nfs服务器搭建
- ubuntu下为Tiny6410搭建nfs服务器
- Ubuntu: 搭建tftp,nfs服务器
- UBUNTU环境下的NFS服务器搭建
- Ubuntu下NFS服务器的搭建与配置
- ubuntu下搭建nfs服务器
- Ubuntu: 搭建tftp,nfs服务器
- [3]_嵌入式开发环境搭建1_在ubuntu16.04.3 安装配置nfs 和 tftp服务器
- ubuntu下搭建nfs服务器
- Ubuntu离线搭建NFS服务器
- Ubuntu 16.04下搭建nfs服务器
- Ubuntu 16.04 下搭建nfs网络文件系统服务器
- Ubuntu10.04+mini2440下ARM-linux开发环境搭建(2)----NFS服务器的配置及通过NFS启动linux
- ubuntu下搭建nfs服务器
- Ubuntu 14.10 搭建nfs服务器
- ubuntu下开发环境配置:nfs服务器的搭建
- ubuntu下搭建nfs服务器
- Ubuntu下搭建tftp、nfs服务器