我使用以下命令创建了 Windows Server 2012 共享:
PS C:\Windows\system32> nfsshare testshare2=C:\testshare2 -o anon=yes anonuid=0 anongid=0 rw=uuu.uuu.uuu.uuu
testshare2 was shared successfully
在哪里啊啊啊啊啊啊啊啊啊啊是我的 Ubuntu 系统的 IP。
接下来,我从 Ubuntu 机器上挂载了 Windows NFS 共享,如下所示:
sudo mount -t nfs xxx.xxx.xxx.xxx:/testshare2 /mnt/testshare2
在哪里xxx.xxx.xxx.xxx是 Windows Server 2012 机器的 IP。
挂载时没有显示任何错误,但是当我ls
挂载目录时,出现以下内容:
ls: cannot open directory /mnt/testshare2/: Input/output error
我没有在 Ubuntu 的系统日志中显示任何错误。
编辑1:尝试从 RHEL7 计算机挂载 Server 2012 NFS 共享时,我收到相同的输入/输出错误。挂载工作正常,但无法 ls 目录或 touch 文件。
编辑2:在 Server 2012 中,NFS 日志显示已成功挂载到 Ubuntu 和 RHEL 机器。
答案1
这个问题已经解决了。服务器 2012:
已打开
Server Manager -> Shares
删除了现有的共享
删除了之前的共享文件夹
- 选择
NFS Share - Quick
后单击下一步。 - 选择要共享的新文件夹,
Type a custom path
然后单击“下一步”。 - 确认后
Share name
,点击下一步。local path
remote paths
- 在身份验证窗口中,我选择了
No server authentication (AUTH_SYS)
,然后选择Enable unmapped user access by UID/GID
并确保Allow unmapped user acess by UID/GID
选择了单选按钮。然后单击下一步。 在共享权限窗口中,我单击了
Add
。Add Permissions
弹出一个窗口。在这里,在 旁边Host
,我输入了要挂载的远程 Linux 计算机的 IP,Language encoding
在左侧输入ANSI
,并设置Share permissions
为Read/Write
。然后点击Add
底部的 ,关闭Add Permissions
窗口。
- 在共享权限窗口中,我确认了上一步输入的设置,然后单击下一步。
- 在“指定权限”窗口中,我单击了“下一步”,没有做任何更改。
- 我在
Confirm selections
窗口中确认了设置然后单击了Create
按钮。
然后从我的RHEL7系统我发布:
mount -t nfs sss.sss.sss.sss:/somedata /mnt/somedata/
sss.sss.sss.sss
Server 2012系统的IP在哪里。
来自RHEL7机器,我确认了写入权限,方法是发出
date >> /mnt/somedata/date.txt
然后检查文件是否存在服务器 2012。
答案2
从 Windows Server 2016 创建 NFS 共享时,上述说明很有帮助。一个重要部分是还要安装文件服务器资源管理器角色。在此之前,我只收到输入/输出错误,并且 Linux 报告挂载为 nfs 版本 3。之后,Linux 报告 nfs 版本 4.1,挂载成功。