Vagrant: 装载 Windows 主机同步文件夹时,至少使用 SMBv2。

创建于 2017-09-09  ·  3评论  ·  资料来源: hashicorp/vagrant

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 。 但是,实际错误是由于使用了不受支持的协议。

重现步骤

  1. 在 Windows 10 计算机上,版本 1703(操作系统内部版本 16251.0):
    一种。 启用 Hyper-V
    湾。 安装流浪者 2.0.0
  2. 创建一个 Vagrantfile,包含前面提到的示例
  3. vagrant up

参考

这个问题似乎密切相关:

hoswindows synced-foldersmb

最有用的评论

遇到了同样的问题,解决方案就像在挂载选项中添加 smb 版本一样简单。 请参阅提供的示例:

config.vm.synced_folder '.', '/vagrant', disabled: false, type: "smb", smb_host: <hostname/ip>, mount_options: ['vers=3.0']

所有3条评论

遇到了同样的问题,解决方案就像在挂载选项中添加 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天_⏳。 这有助于我们的维护人员发现并专注于活跃的问题。

如果您发现了与此类似的问题,请打开一个新问题并完成问题模板,以便我们获取进一步调查所需的所有详细信息。

此页面是否有帮助?
0 / 5 - 0 等级

相关问题

DreadPirateShawn picture DreadPirateShawn  ·  3评论

barkingfoodog picture barkingfoodog  ·  3评论

dorinlazar picture dorinlazar  ·  3评论

StefanScherer picture StefanScherer  ·  3评论

doomnuggets picture doomnuggets  ·  3评论