windows - 如何移动 Vagrant 环境?
问题描述
“vagrant init:...通过创建初始 Vagrantfile 来创建 Vagrant 环境...”
我在 Windows 中将该文件夹从 E:/ 移动到 C:/,并且在尝试执行此操作时遇到了这个愚蠢的错误vagrant snapshot restore XXX
==> default: Booting VM...
There was an error while executing `VBoxManage`, a CLI used by Vagrant
for controlling VirtualBox. The command and stderr is shown below.
Command: ["startvm", "7aff8d5d-7193-4f6d-966b-4076543c0e90", "--type", "headless"]
Stderr: VBoxManage.exe: error: RawFile#0 failed to create the raw output file E:/Proyectos/do-sf2-dev/ubuntu-xenial-16.04-cloudimg-console.log (VERR_PATH_NOT_FOUND)
VBoxManage.exe: error: Details: code E_FAIL (0x80004005), component ConsoleWrap, interface IConsole
据我了解,VirtualBox 一直在引用 E:/ 驱动器。
我尝试手动编辑从 E:/ 到 C:/ 我可以在该文件夹下找到的任何引用,以及在相关机器的 VirtualBox GUI 中,但没有运气。
解决方案
这个答案很晚,但希望能帮助下一个人遇到这个问题。该错误是因为机器配置为输出到不再存在的位置。将 Vagrant 环境移动到另一个驱动器时,除了移动 VM 文件之外,您还需要更新一些 Vagrant 元数据。您可以使用vagrant up --debug
确切地查看错误所指的内容。
如果移动 .vagrant.d 目录,则需要将环境变量设置VAGRANT_HOME
为新位置。在 Windows 上,您需要重新启动才能使其生效。如果这不起作用,请将以下内容之一添加到您的 vagrantfile 中:
v.customize [ "modifyvm", :id, "--uartmode1", "disconnected" ]
- 这将禁用串行输出到丢失的日志文件 (ubuntu-xenial-16.04-cloudimg-console.log)
或者
v.customize [ "modifyvm", :id, "--uartmode1", "file", File.join(Dir.pwd, "ubuntu-xenial-16.04-cloudimg-console.log") ]
- 这将更新日志文件的路径以指向当前目录。
对于大多数 vagrant 设置,这应该足够了,但是,我还需要重新创建错误日志文件的路径,然后vagrant up
才能成功运行。之后,我运行vagrant provision
并能够毫无问题地删除旧文件路径。
这些帖子也很有帮助(参考):
推荐阅读
- r - 如何将 ggplot 热图输出保存为栅格
- python - 使用 Python 仅从 PDF 中提取特定文本
- node.js - 我需要nodejs的帮助
- excel - 通过 excel vba 进行网页抓取
- javascript - 为什么我得到一个'?使用 useHistory().push('/') 后在链接末尾标记
- node.js - 如果字段的值在猫鼬中达到 0,则减少字段并删除整个对象
- javascript - 在共享的 NodeJS 服务器上运行应用程序
- mongodb - 在发布获取期间安装包?
- swift - Swift - 来自服务器的日期不断转换为我的本地时区
- javascript - Vue、Vuex 和远程存储