如何移动无业游民的环境?

时间:2018-12-03 00:51:08

标签: windows vagrant virtualbox vagrantfile

  

“ vagrant init:...通过创建初始的Vagrant环境   Vagrantfile ...”

我在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中找到相关机器,但没有运气。

1 个答案:

答案 0 :(得分:1)

这个答案很晚,但是希望可以帮助下一个遇到这个问题的人。该错误是因为将计算机配置为输出到不再存在的位置。将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 up成功运行之前重新创建错误日志文件的路径。之后,我运行vagrant provision并能够删除旧文件路径而没有任何问题。

这些帖子也很有帮助(参考文献):