gpt4 book ai didi

windows - VBoxManage 仅在不存在时添加共享文件夹?

转载 作者:可可西里 更新时间:2023-11-01 10:44:31 25 4
gpt4 key购买 nike

我在 Virtualbox 中使用 Vagrant。我正在我的 Vagrant 文件中配置一个共享文件夹。但是,如果已创建共享文件夹,则尝试 vagrant up VM 时出现错误。

config.vm.provider "virtualbox" do |v|
v.customize ["sharedfolder", "add", :id, "--name", "vagrant", "--hostpath", (("//?/" + File.dirname(__FILE__)).gsub("/","\\"))]
v.customize ["setextradata", :id, "VBoxInternal2/SharedFoldersEnableSymlinksCreate/vagrant", "1"]
end

config.vm.provision :shell, inline: "mkdir -p /vagrant", run: "always"
config.vm.provision :shell, inline: "mount -t vboxsf -o uid=`id -u vagrant`,gid=`getent group vagrant | cut -d: -f3` vagrant /vagrant", run: "always"

所以在这个 Vagrantfile 中,您可以看到我使用 Virtualbox 的 VBoxManage 命令创建了共享文件夹。但是,如果我创建 VM,启动它,然后关闭它,然后再次 vagrant up,然后它会尝试再次创建共享文件夹,但它已经存在,因此 Vagrant 会抛出错误。

是否可以判断共享文件夹是否已存在?或者是否可以在第一次提供时只创建共享文件夹?

注意:我像这样手动创建共享文件夹(而不是使用 Vagrants 共享文件夹命令)的唯一原因是因为 Windows 主机的 Vagrant 中存在一个错误,该错误将共享文件夹中的文件夹路径限制为 260长字符。上面的手动共享文件夹设置使用 UNC 路径绕过了这个问题。

最佳答案

您可以在添加共享文件夹之前添加以下行。基本上它会杀死共享文件夹并在每次运行 VM 时重新创建它

v.customize ["sharedfolder", "remove", :id, "--name", "vagrant"]

关于windows - VBoxManage 仅在不存在时添加共享文件夹?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32002164/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com