Ubuntu服务器端与Ubuntu本地之间的mount nfs挂载方法
NFS(Network File System)即网络文件系统,是FreeBSD支持的文件系统中的一种,它允许网络中的计算机之间通过TCP/IP网络共享资源。在NFS的应用中,NFS的本地端(服务端)可以透明地读写位于NFS服务端(本地端)上的文件。本文两个linux环境均为Ubuntu,将本地端下/home/xuhongli/workspace目录挂载到服务端的/home/ljw/calmcar_xuhongli目录下。
1.ubuntu本地端
- 安装配置NFS服务器
sudo apt-get install nfs-kernel-server nfs-common - 建立nfs共享目录
sudo mkdir /home/xuhongli/workspace - 配置参数
gedit /etc/exports
文件最后加入一行
/home/xuhongli/workspace *(rw,sync,no_root_squash)
#该目录为nfs服务根目录,*表示允许所有的网段访问,也可以使用具体的IP,参数详解在最后 - 查看配置是否生效
exportfs -r
#更新配置
showmount -e
如果生效会显示
Export list for xuhongli-T500:
/home/xuhongli/workspace * - 重启nfs服务
/etc/init.d/nfs-kernel-server restart
2.ubuntu服务端
1.安装nfs-utils
yum install nfs-utils
2.创建挂载目录
mkdir /home/ljw/calmcar_xuhongli
3.mount挂载
mount -t nfs 192.168.199.XX:/home/xuhongli/workspace /home/ljw/calmcar_xuhongli
#本地端ip为192.168.199.XX
4.开机自动挂载
vim /etc/rc.local
添加一行
sudo mount -t nfs 192.168.199.XX: /home/xuhongli/workspace /home/ljw/calmcar_xuhongli
如果出现mount.nfs:access denied by server while mounting问题,可通过以下几种途径尝试解决:
1.重启nfs服务
sudo /etc/init.d/nfs-kernel-server restart
2.修改需挂载的nfs目录权限
chmod 755 /home/dhcc/nfs
3.如果端口号大于1024,则需要将 insecure 选项加入到配置文件(/etc/exports):
vim /etc/exports
文件最后加入一行
/home/dhcc/nfs *(insecure,rw,sync,no_root_squash)
4.修改/etc/sysconfig/nfs文件
#Turn off v2 and v3 protocol support
#RPCNFSDARGS="-N 2 -N 3"
#Turn off v4 protocol support
#RPCNFSDARGS="-N 4"
把这句话的#号去掉
NFS分为三个版本,即NFS-2 NFS-3 NFS-4,该配置文件默认关闭了这三个的NFS版本,我们只需要打开NFS-4即可。
3.取消挂载
在服务端进行文件的挂载操作
umount /home/ljw/calmcar_xuhongli
如果解挂失败,就是有进程在使用这个挂载的文件系统。这时候要么:
- 找出进程杀掉进程。ps命令找出来,kill命令杀掉。
或者 - 强制解挂。umount -f /home/ljw/calmcar_xuhongli
4.到此完成本地端向Ubuntu服务器端目录的挂载过程。
附录:NFS常用参数如下:
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_squas root用户具有根目录的完全管理访问权限
anonuid=xxx 指定nfs服务器/etc/passwd文件中匿名用户的UID
anongid=xxx 指定nfs服务器/etc/passwd文件中匿名用户的GID