【PE系列】mount+nfs:虚拟机通过nfs服务将虚拟机上的目录挂在到本地目录

本文介绍了如何通过NFS服务将本地目录挂载到虚拟机Ubuntu系统上,包括遇到的挂载错误分析及解决方案。在挂载过程中,通过编辑exports文件设置共享目录,并使用mount命令进行挂载。当遇到挂载错误时,通过安装smbfs和nfs-common来解决问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Date:   2017-12-11

Author:  SoaringLee

===================================================================================

1、要点:

     本地电脑作为NFS服务器,虚拟机中的Ubuntu系统作为NFS客户机。

将本地电脑上目录作为共享目录挂载到虚拟机Ubuntu系统的挂载点上。

通过SSH远程登录虚拟机的方法 参考:  【PE】通过SecureCRT远程登录telnet连接虚拟机的linux系统

2、问题:

mount -t nfs -o tcp 192.168.177.1:e:/work/share  /home/nfs

当前挂载时报错:mount.nfs: mounting 192.168.177.1:e:/work/share failed, reason given by server: No such file or directory

推测应该是exports文件设置有问题?
 

3、解决方案:

exports文件格式:

e:\Work\share  -name:test_nfs  -public -alldirs

此处没有指定IP,就是说所有IP的客户端都可以访问共享的目录(e:\Work\share),并且此处使用选项-name,给共享的目录指定了别名。

注意:所有对输出表文件的修改必须在服务器重启后才生效!

 

mount挂载:

       mount -t nfs -o nolock,tcp 192.168.177.1:/test_nfs /share

其中192.168.177.1是NFS客户端IP地址,/test_nfs是NFS客户端上的共享目录,/share是NFS服务器上的挂载点 。

 

umount卸载:

       umount /share

 

4、实战:

Updated at 2019.6.9


重新安装虚拟机后遇到如下问题:

root@ubuntu:~# mount -t nfs -o nolock,tcp 192.168.126.1:/nfs_dir   /share
mount: wrong fs type, bad option, bad superblock on 192.168.126.1:/nfs_dir,
       missing codepage or helper program, or other error
       (for several filesystems (e.g. nfs, cifs) you might
       need a /sbin/mount.<type> helper program)
       In some cases useful info is found in syslog - try
       dmesg | tail  or so

经过分析:

(1)安装smbfs(解决cifs及ntfs报错):

$ sudo apt-get intall smbfs

(2)安装nfs-common(解决nfs报错):

$ sudo apt-get install nfs-common

问题解决!


THE END!

NFS(Network File System)是一种分布式文件系统协议,允许客户端通过网络访问服务器上的文件,如同访问本地文件一样。在使用ECS实例挂载NFS时,如果遇到`Connection refused`错误,这通常表明NFS服务器未响应请求或存在网络问题。 ### 排查与解决方法 #### 检查NFS服务状态 确保NFS服务器正在运行。在Ubuntu上,可以通过以下命令检查和启动NFS服务: ```bash sudo systemctl status nfs-kernel-server sudo systemctl start nfs-kernel-server ``` 如果服务未运行,启动它并尝试重新挂载。[^1] #### 验证NFS配置 检查NFS服务器的`/etc/exports`文件,确认已正确配置共享目录及其权限。例如: ```bash /root/heop_devel_kit/volume 192.168.1.0/24(rw,sync,no_subtree_check) ``` 确保IP地址范围匹配客户端的IP地址,并且权限设置为可读写。 #### 重启NFS及相关服务 有时需要重启NFS服务以应用更改。此外,可能还需要重启portmapper服务。 ```bash sudo systemctl restart nfs-kernel-server sudo systemctl restart rpcbind ``` 这些步骤有助于刷新服务状态并解决潜在的问题。 #### 检查防火墙设置 确认服务器和客户端的防火墙设置不会阻止NFS通信。NFS通常使用TCP/UDP端口2049,而NFSv4仅使用TCP端口2049。可以临时禁用防火墙进行测试。 ```bash sudo ufw disable ``` 注意:这只是临时解决方案,生产环境中应配置适当的规则而不是完全禁用防火墙。 #### 测试NFS服务器可达性 从客户端执行`ping`命令来验证是否能够到达NFS服务器。 ```bash ping 192.168.1.123 ``` 如果无法ping通,则问题可能出在网络连接或路由上,而不是NFS本身。 #### 检查NFS客户端支持 确保客户端支持NFS挂载,并且安装了必要的软件包。对于Ubuntu系统,安装`nfs-common`包。 ```bash sudo apt-get update sudo apt-get install nfs-common ``` #### 使用正确的挂载选项 当执行挂载操作时,确保使用了正确的选项。例如,使用`nolock`选项可以避免某些锁定问题。 ```bash sudo mount -t nfs -o nolock 192.168.1.123:/root/heop_devel_kit/volume /userdata ``` #### 查看挂载点 如果挂载成功,但似乎没有数据,或者切换目录后发现内容为空,请检查是否已经正确挂载以及挂载点是否正确。 ```bash df -h cat /proc/mounts ``` #### 取消挂载 如果需要取消挂载,请确保不在挂载目录内,否则会提示`Device or resource busy`。 ```bash cd .. sudo umount /userdata ``` #### 网络配置 如果是虚拟机环境,比如VMware,需要确保网络配置正确,允许内外网通信。检查网络接口配置文件如`/etc/netplan/`下的YAML文件,确保配置正确。 ```yaml network: ethernets: ens33: dhcp4: true version: 2 ``` 应用新的网络配置。 ```bash sudo netplan apply ``` ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

飞翔的鲲

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值