Linux挂载网络文件夹(简单NFS配置)

本文详细介绍了如何在Linux系统中配置NFS服务,以便将一台服务器的目录挂载到另一台服务器上。主要内容包括NFS的概念、安装所需软件包、服务器端与客户端的配置步骤,以及可能出现的问题和解决方法。通过配置,可以在A服务器上通过NFS挂载B服务器的/yum目录到/mnt/yum。


###########################################
###  挂载网络文件夹  ###
###########################################

NFS说明
=======
NFS是Net File System的简写,即网络文件系统.
NFS允许一个系统在网络上与它人共享目录和文件。通过使用NFS,用户和程序可以象访问本地文件一样访问远端系统上的文件。


使用NFS的原因
=============
由于要在公司内部配置YUM,而且准备用Apache发布,能通过Http访问。A服务器上有http服务,但是空间不足。B服务器上有足够空间。A、B均为Linux
所以准备通过NFS,将B上的/yum挂载到A的/mnt/yum中。
假设A IP:192.168.0.100
假设B IP:192.168.0.200


NFS使用概括
===========
服务器端要求: //在上面的例子中B为服务器端
portmap 启动 # service portmap start
nfs 启动 # service nfs start

客户端要求: //在上面的例子中A为服务器端
portmap 启动 # service portmap start

在A上执行挂载命令:
# mount -t nfs 192.168.0.200:/yum /mnt/yum (注意主机后的冒号)
   

具体NFS Server 配置
===================
1.安装软件
 包含的软件包:
 NFS需要5个RPM,分别是:
 setup-*:    共享NFS目录在/etc/exports中定义
 initscripts-*: 包括引导过程中装载网络目录的基本脚本
 nfs-utils-*:  包括基本的NFS命令与监控程序
 portmap-*:   支持安全NFS RPC服务的连接
 quota-*:    网络上共享的目录配额,包括rpc.rquotad (这个包不是必须的)
 //检查系统是否安装好所需的套件
 # rpm -qa | nfs
 # rpm -qa | portmap
 //启动nfs服务前必须启动portmap服务
 nfs-utils包括rpc.nfsd和rpc.mountd
 如果以上软件都安装了,下面就可以开始配置了.

2.Server 端配置

 NFS 启动需要的服务:
 rpc.nfsd: 管理Client是否能够登陆主机的权限,还包括登陆者的ID判别
 rpc.mountd:管理NFS的文件系统,当client端通过rpc.nfsd登陆主机后
 rpc.rquotad:磁盘配额管理

 # vi /etc/exports

 //编辑此文件增加NFS的共享内容,如果没有该文件则增加.
 exports主要参数:
 rw:可读写权限
 ro:只读权限
 no_root_squash:对于登陆NFS主机的共享目录用户如果是root的话则对该目录具有root权限。这样做极
 不安全,建议不用为好!
 root_squash:对于登陆NFS主机的共享目录用户使用者如果是root则它的权限将被压缩成匿名使用者,同
 时它的UID和GID都会变成nobody那个系统账号的身份。
 all_squash:不管登陆NFS主机用户身份如何,它的身份都会被压缩成匿名使用者,通常就是nobody
 anonuid:anonuid=xxx,制定NFS服务器/etc/passwd中匿名用户的UID
 anongid:anonuid=xxx,制定NFS服务器/etc/passwd中匿名用户的GID
 sync:数据在请求时写入共享
 async:NFS在写入数据前可响应请求
 secure:NFS通过1024以下的安全端口发送
 insecure:NFS通过1024以上端口发送
 hide:不共享NFS目录的子目录
 no_hide:共享NFS目录的子目录

 设置实例:
 /home/public 192.168.0.*(rw)   *(ro) 
 //允许192.168.0网段用户对/home/public有读写权限,其他用户只读权限

 /home/test  192.168.0.100(rw)
 //允许IP为192.168.0.100的用户访问/home/test,并且有读写权限

 /home/linux  *.linux.org(rw,all_squash,anonuid=40,anongid=40)
 //只要是linux.org域用户都可以访问,而且是读写权限,不管你是哪个用户你的身份都被改成:UID=40
 这个账号名称

 /tmp     *(rw,no_root_squash)
 //允许所有用户对tmp有可读写权限,如果是root则对该目录有root权限

 启动服务:
 #service portmap start
 #service nfs start

3.Client设置
 --启动portmap服务
 #service portmap start

 --在client上挂载NFS 共享目录
 #mount -t nfs 172.17.196.10:/home/test /mnt/share

 //把nfs上的共享目录/home/test挂载到本机的/mnt/share下(/mnt/share目录必须首先创建)
 连接成功后nfs的test目录就mount到本机share上了.

4.调试监控
 察看NFS 运行状态:
 #nfsstat
 察看RPC运行信息:
 #rpcinfo -p IP
 #rpcinfo -u hostname

 exportfs [-aruv]
 -a:全部挂载(或卸载) /etc/exports文件设定
 -r:重新挂载 /etc/exports设定,也可以同步更新/etc/exports设定
 -u:卸载某一目录
 -v:在export时,将共享目录显示在屏幕上

 在NFS Server上重新挂载exports内容(一般用在及时更改过exports但又不想重新启动机器的时候)
 #exportfs -rv

 卸载全部mount 目录 exportfs -au,这样在NFS Client上将看不到原来mount的目录
 # exportfs -au

 在NFS Server上显示已经mount上本机NFS目录的Client机器。
 # showmount -a
 All mount points on test:
 172.17.196.11:/share

 显示被mount出来的目录
 # showmount -e 172.17.196.10
 Export list for 172.17.196.10:
 /share 172.17.196.11

5.会发生的问题
 //使用者权限不符:
 # mount -t nfs 172.17.196.10:/home/test /mnt/share
 mount: 172.17.196.10:/home/test failed, reason given by server: Permission denied

 //portmap服务未启动
 # mount -t nfs localhost:/home/test /home/nfs
 mount: RPC: Port mapper failure - RPC: Unable to receive
 或mount: RPC: Program not registered

注意:如果有客户端连接,nfs服务器是不能关机的。想要解决这个问题。要在关机之前先关闭portmap服务及nfs服务。

Linux系统中,挂载文件夹有多种情况,以下是不同场景下的挂载方法: ### 挂载临时文件系统 可以通过挂载临时文件系统(如tmpfs)到指定目录来实现。操作示例如下: ```bash # 1. 创建测试目录 mkdir -p /mnt/test/A/B /mnt/test/A/C # 2. 查看原始内容 ls /mnt/test/A # 3. 挂载临时文件系统(如tmpfs)到A mount -t tmpfs none /mnt/test/A # 4. 再次查看A的内容 ls /mnt/test/A # 5. 卸载后恢复 umount /mnt/test/A ls /mnt/test/A ``` 挂载操作会“覆盖”该路径的原有内容,但不会修改磁盘数据,卸载后原有内容会重现[^1]。 ### 挂载网络共享文件夹 若要在Linux目标主机挂载网络共享文件夹,两台Linux主机需在同一个局域网内。具体步骤如下: ```bash # 创建挂载路径 sudo mkdir /mnt/share # 挂载网络共享文件夹 sudo mount -t nfs -o nolock -o tcp 192.168.1.8:/home/river/river /mnt/share ``` 此例中使用NFS协议挂载网络共享文件夹[^2]。 ### 挂载windows文件夹 mount命令用于加载文件系统到指定的加载点,常用于挂载cdrom等设备,以访问其中的数据。因为将光盘插入cdrom中,Linux不会自动挂载,需使用mount命令手动完成挂载,其语法为`mount(选项)(参数)` [^3]。 ### 永久挂载共享文件夹 若要永久挂载共享文件夹,可按以下步骤操作: 1. 选择主机中文件夹路径,并设置在虚拟机中该文件夹名称。 2. 开启虚拟机,进入终端,通过`su root`操作进入管理员权限。 3. 在`/mnt/hgfs/`文件夹下创建两个文件夹: ```bash mkdir link3 bridge_1 ``` 4. 编辑`/etc/fstab`文件: ```bash vim /etc/fstab ``` 在文件的最后写入: ```plaintext .host:/link3 /mnt/hgfs/link3 fuse.vmhgfs-fuse allow_other,defaults 0 0 .host:/bridge_1 /mnt/hgfs/bridge_1 fuse.vmhgfs-fuse allow_other,defaults 0 0 ``` 按`ESC`退出编辑模式,再输入`:wq`保存并退出。 5. 使修改的文件生效: ```bash mount -a ``` 也可以关闭虚拟机再开启。若先挂载了一个再去挂载另一个通常会出现`fuse: mountpoint is not empty fuse: if you are sure this is safe, use the ‘nonempty’ mount`的报错,可把`/etc/fstab`里的内容改成: ```plaintext .host:/link3 /mnt/hgfs/link3 fuse.vmhgfs-fuse allow_other,defaults 0 0 .host:/bridge_1 /mnt/hgfs/bridge_1 fuse.vmhgfs-fuse allow_other,nonempty,defaults 0 0 ``` 即可解决问题[^4]。 ### 挂载NFS共享文件夹 若要挂载NFS共享文件夹,需先确保已正确配置NFS共享。编辑`/etc/exports`文件,添加共享目录的配置: ```bash vim /etc/exports ``` 例如添加如下内容: ```plaintext /shared_folder B_IP(rw,sync,no_subtree_check) /shared_folder C_IP(rw,sync,no_subtree_check) ``` 之后再进行挂载操作 [^5]。
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值