流浪汉"虚拟机未创建".尝试从现有VM创建框时

Kik*_*ksy 49 virtual-machine vagrant

我导入了precision32框,然后在VM上安装了一些软件包和其他数据.我的计划是将其重新打包成一个盒子,以便在共享时节省复杂的配置.

然而.

vagrant package --base dev-vm --output /box/vm.box
Run Code Online (Sandbox Code Playgroud)

总是回来

[dev-vm] VM not created . Moving on
Run Code Online (Sandbox Code Playgroud)

我的目录结构是:

-dev-vm
    --.vagrant
    --Logs
    --box.ovf
    --box-disk1.vmdk
    --dev-vm_13345342.vbpx
    --metadata.json
    --Vagrantfile
Run Code Online (Sandbox Code Playgroud)

我有

 set VAGRANT_LOG=debug
Run Code Online (Sandbox Code Playgroud)

这显示没有关于最新情况的额外信息.

Windows 7使用Cygwin

更新:

 export VAGRANT_LOG=debug
Run Code Online (Sandbox Code Playgroud)

为Cygwin设置调试日志.

然后我得到了

 DEBUG subprocess: Waiting for process to exit. Remaining to timeout: 32000
 DEBUG subprocess: Exit status: 0
 INFO warden: Calling action: #<Vagrant::Action::Builtin::Call:0x2abb800>
 INFO runner: Running action: #<Vagrant::Action::Builder:0x2695920>
 INFO warden: Calling action: #<VagrantPlugins::ProviderVirtualBox::Action::Created:0x267c078>
 INFO runner: Running action: #<Vagrant::Action::Warden:0x2ac6c48>
 INFO warden: Calling action: #<VagrantPlugins::ProviderVirtualBox::Action::MessageNotCreated:0x2ac6c00>
 INFO interface: info: VM not created. Moving on...
Run Code Online (Sandbox Code Playgroud)

小智 77

当您打包一个盒子时,盒子名称必须是您可以从VirtualBox获得的特定机器名称(例如lucid_1372711888).只需在cmd中执行以下命令:

vboxmanage list vms
Run Code Online (Sandbox Code Playgroud)

请注意,应先将"vboxmanage"添加到PATH变量中.看到这里如何做到这一点.

另请注意,虚拟机器名称不得包含空格.否则,"vagrant package"命令将无法识别它.例如:

vagrant package --base win7_vbox_base --output win7_base.box #CORRECT
------------------------------------------------------------------------
vagrant package --base win7 vbox base --output win7_base.box #INCORRECT
Run Code Online (Sandbox Code Playgroud)

  • 您可以通过以下方式找到方框名称:`$ VBoxManage list vms`.另请注意,这在Vagrant 1.4.2中已被破解:https://groups.google.com/forum/#!msg/vagrant-up/HNXKTBv0-Jw/-yIbhNHCz10J (15认同)
  • 注意框名区分大小写 (2认同)

Mar*_*eri 8

如果您位于包含Vagrantfile的文件夹中,您还可以运行:

vagrant package --output your-box-name.box
Run Code Online (Sandbox Code Playgroud)

下图显示了使用此命令创建的.box文件的内容:

Unpacket .box