Microsoft 正在从 Windows 中删除对 SMBv1 的支持。
目前,尽管 Vagrant 只会尝试使用 SMBv1 进行挂载,因为这是mount -t cifs
的默认行为。 展望未来,在较新版本的 Windows 上,默认情况下这将始终失败。
修复是在安装时指定最低协议版本 2.0。 Windows Vista Service Pack 1 和 Windows Server 2008 或更高版本支持 SMBv2。 如果与早期版本的 Windows 向后兼容很重要,Vagrant 可以先尝试使用 2.0 协议进行挂载,如果不支持,则回退到 1.0。
流浪者 2.0.0
Windows 10 - 版本 1703(操作系统内部版本 16251.0)
Debian Stretch (通用/debian9)
Vagrant.configure("2") do |config|
config.vm.box = "generic/debian9"
config.vm.synced_folder ".", "/vagrant"
# Note: A successful mount can be achieved by specifying:
# config.vm.synced_folder ".", "/vagrant", mount_options: ["vers=2.0"]
end
https://gist.github.com/rhencke/5e58e291607d0f0bf6544342ba349cb8
(为了比较,这里有一个日志显示如何使用上述附加挂载选项实现成功挂载:https://gist.github.com/rhencke/11f8dff86d719e9386941dd653e8a117)
运行mount -t cifs
时成功实现挂载。
运行mount -t cifs
时挂载失败,声称mount error(112): Host is down
。 但是,实际错误是由于使用了不受支持的协议。
vagrant up
这个问题似乎密切相关:
遇到了同样的问题,解决方案就像在挂载选项中添加 smb 版本一样简单。 请参阅提供的示例:
config.vm.synced_folder '.', '/vagrant', disabled: false, type: "smb", smb_host: <hostname/ip>, mount_options: ['vers=3.0']
感谢@ghousseyn ,您添加vers=3.0
的解决方案使我们的工作正常。 我们不再看到随机的Host is down
问题。
我要锁定这个问题,因为它已经关闭了_30天_⏳。 这有助于我们的维护人员发现并专注于活跃的问题。
如果您发现了与此类似的问题,请打开一个新问题并完成问题模板,以便我们获取进一步调查所需的所有详细信息。
最有用的评论
遇到了同样的问题,解决方案就像在挂载选项中添加 smb 版本一样简单。 请参阅提供的示例:
config.vm.synced_folder '.', '/vagrant', disabled: false, type: "smb", smb_host: <hostname/ip>, mount_options: ['vers=3.0']