Packer: 删除软盘控制器时出错

创建于 2015-07-07  ·  71评论  ·  资料来源: hashicorp/packer

大家好,

在打包程序构建结束时,就在启动后处理器(无用)之前,打包程序无法删除软盘驱动器。

确切的错误是:

virtualbox-iso: Error removing floppy controller: VBoxManage error: VBoxMana
ge.exe: error: The machine 'packer-virtualbox-iso-1436168056' is already locked
for a session (or being unlocked)
==> virtualbox-iso: VBoxManage.exe: error: Details: code VBOX_E_INVALID_OBJECT_S
TATE (0x80bb0007), component Machine, interface IMachine, callee IUnknown
==> virtualbox-iso: VBoxManage.exe: error: Context: "LockMachine(a->session, Loc
kType_Write)" at line 1011 of file VBoxManageStorageController.cpp
==> virtualbox-iso: Unregistering and deleting virtual machine...
==> virtualbox-iso: Deleting output directory...
Build 'virtualbox-iso' errored: Error removing floppy controller: VBoxManage err
or: VBoxManage.exe: error: The machine 'packer-virtualbox-iso-1436168056' is alr
eady locked for a session (or being unlocked)
VBoxManage.exe: error: Details: code VBOX_E_INVALID_OBJECT_STATE (0x80bb0007), c
omponent Machine, interface IMachine, callee IUnknown
VBoxManage.exe: error: Context: "LockMachine(a->session, LockType_Write)" at lin
e 1011 of file VBoxManageStorageController.cpp

==> Some builds didn't complete successfully and had errors:
--> virtualbox-iso: Error removing floppy controller: VBoxManage error: VBoxMana
ge.exe: error: The machine 'packer-virtualbox-iso-1436168056' is already locked
for a session (or being unlocked)
VBoxManage.exe: error: Details: code VBOX_E_INVALID_OBJECT_STATE (0x80bb0007), c
omponent Machine, interface IMachine, callee IUnknown
VBoxManage.exe: error: Context: "LockMachine(a->session, LockType_Write)" at lin
e 1011 of file VBoxManageStorageController.cpp

==> Builds finished but no artifacts were created.

The strange thing is the error only happens about 50% of the time. Typically the first build will fail with this error and then the next build will succeed with nothing changed in between.

我的封隔器json是:

{
  "builders": [
    {
      "type": "virtualbox-iso",
      "iso_url": "http://download.microsoft.com/download/6/2/A/62A76ABB-9990-4EFC-A4FE-C7D698DAEB96/9600.16384.WINBLUE_RTM.130821-1623_X64FRE_SERVER_EVAL_EN-US-IRM_SSS_X64FREE_EN-US_DV5.ISO",
      "iso_checksum_type": "md5",
      "iso_checksum": "458ff91f8abc21b75cb544744bf92e6a",
      "headless": false,
      "boot_wait": "2m",
      "ssh_username": "vagrant",
      "ssh_password": "vagrant",
      "ssh_wait_timeout": "4h",
      "shutdown_command": "shutdown /s /t 10 /f /d p:4:1 /c \"Packer Shutdown\"",
      "guest_os_type": "Windows2012_64",
      "disk_size": 61440,
      "floppy_files": [
        "./floppy_files/Autounattend.xml",
        "./floppy_files/microsoft-updates.bat",
        "./floppy_files/win-updates.ps1",
        "./floppy_files/openssh.ps1",
        "./floppy_files/oracle-cert.cer",
        "./floppy_files/setenv.bat",
        "./floppy_files/setdnssuffix.wsf",
        "./floppy_files/hosts"
      ],
      "vboxmanage": [
        [
          "modifyvm",
          "{{.Name}}",
          "--memory",
          "2048"
        ],
        [
          "modifyvm",
          "{{.Name}}",
          "--cpus",
          "2"
        ]
      ]
    }
  ],
  "provisioners": [
    {
      "type": "shell",
      "remote_path": "/tmp/script.bat",
      "execute_command": "{{.Vars}} cmd /c C:/Windows/Temp/script.bat",
      "scripts": [
        "./packer_scripts/vm-guest-tools.bat",
        "./packer_scripts/vagrant-ssh.bat",
        "./packer_scripts/enable-rdp.bat",
        "./packer_scripts/disable-auto-logon.bat",
        "./packer_scripts/chef.bat",
        "./packer_scripts/chocolatey.bat",
        "./packer_scripts/chocopacks.bat",
        "./packer_scripts/tomcat6.bat",
        "./packer_scripts/copyHosts.bat",
        "./packer_scripts/setdnssuffix.bat",
        "./packer_scripts/setPerlPath.bat"
      ]
    },
    {
      "type": "shell",
      "inline": [
        "rm -rf /tmp/*"
      ]
    }
  ],
  "post-processors": [
    {
      "type": "vagrant",
      "keep_input_artifact": false,
      "output": "windows_2012_r2_{{.Provider}}.box",
      "vagrantfile_template": "vagrantfile-windows_2012_r2.template"
    }
  ]
}

任何想法如何解决这个问题?

谢谢

buildevirtualbox upstream-bug

最有用的评论

顺便说一句:如果有办法告诉打包程序在发生错误时不要删除工件,那就太好了。 当我看到此错误时,是经过数小时的图像构建,然后我必须重新开始。 如果可以保留图像,则至少可以进行一些手动修复。

所有71条评论

@mealingr我认为这是与#1193类似的计时问题。 我们很可能可以通过重试在打包程序中修复它。

我忘了提到我正在运行0.8.0版本,听说它可能在更高版本中得到修复(也许是因为packer会按照您的建议进行更多重试?)。

这似乎已在版本0.8.1中修复。

我刚遇到0.8.1的相同错误。 它肯定是断断续续的。 我已经成功构建了大约10次,这是我第一次实现这一目标。

我使用版本0.8.2间歇性地遇到此问题。 我已经使用此模板https://github.com/joefitzgerald/packer-windows/blob/master/windows_2012_r2.json创建了5到6次Windows Server 2012 R2映像(仅修改是我将headless设置为false),并且错误两次。

我使用Windows 7 Pro作为VirtualBox的主机。 我可以做些什么来帮助诊断问题?

顺便说一句:如果有办法告诉打包程序在发生错误时不要删除工件,那就太好了。 当我看到此错误时,是经过数小时的图像构建,然后我必须重新开始。 如果可以保留图像,则至少可以进行一些手动修复。

我遇到的计时问题似乎很相似,但就我而言,问题是与分离OS安装iso有关。 万一它对将来的谷歌用户有帮助,这是我偶尔看到的错误输出:

// [...snip...]
==> mybox-vbox: Connected to SSH!
==> mybox-vbox: Uploading VirtualBox version info (5.0.2)
==> mybox-vbox: Uploading VirtualBox guest additions ISO...
==> mybox-vbox: Provisioning with shell script: provisioners/shell/virtualbox-guest-additions-install.sh
// [...snip provisioner script output...]
==> mybox-vbox: Gracefully halting virtual machine...
    mybox-vbox: [sudo] password for vagrant:
==> mybox-vbox: Error detaching ISO: VBoxManage error: VBoxManage: error: Failed to get a console object from the direct session (VBOX_E_INVALID_OBJECT_STATE)
==> mybox-vbox: VBoxManage: error: Details: code VBOX_E_VM_ERROR (0x80bb0003), component MachineWrap, interface IMachine, callee nsISupports
==> mybox-vbox: VBoxManage: error: Context: "LockMachine(a->session, LockType_Shared)" at line 325 of file VBoxManageStorageController.cpp
==> mybox-vbox: Unregistering and deleting virtual machine...
==> mybox-vbox: Deleting output directory...

Build 'mybox-vbox' errored: Error detaching ISO: VBoxManage error: VBoxManage: error: Failed to get a console object from the direct session (VBOX_E_INVALID_OBJECT_STATE)
VBoxManage: error: Details: code VBOX_E_VM_ERROR (0x80bb0003), component MachineWrap, interface IMachine, callee nsISupports
VBoxManage: error: Context: "LockMachine(a->session, LockType_Shared)" at line 325 of file VBoxManageStorageController.cpp

我刚刚将Packer从0.6.1升级到0.8.5,并将Virtualbox从4.3.28升级到5.0.2。 相同的构建会立即(至少一次)运行,并在随后的尝试中再次使用升级的工具。 处理操作的速度似乎是可变的。

Windows 8.1 x64上的打包程序0.8.6和VirtualBox 5.0.4也是我作为主机部署Windows Server 2012 R2作为来宾的主机的方式。

Packer 0.8.6上的相同错误

还有一个数据点要离开这里。 我只在Windows主机上遇到此问题。 我从未在ubuntu 14主机上看到它。 当我使用这个win7模板时,我开始100%地遇到了这种情况,并且从未在ubuntu上进行复制。 因此,如果您要重现使用Windows主机的重要性,除非有人可以报告在非Windows上遇到了这种情况。

我使用的是Mac OS X 10.10.5

好的,很高兴知道。 我从未使用过Mac。 由于我的ubuntu框在没有桌面的服务器上运行,因此这里甚至可能没有图形元素。

在Windows 7 x64上作为主机部署Windows Server 2008 R2作为来宾的主机上,包装器0.8.6,VirtualBox 5.0.8上也存在问题。 "headless": false会系统地发生,而"headless": true不会。

“无头”问题仍然存在:在0.8.6上为true

Windows 10 x64主机上的Packer 0.8.6仍以“ headless”:“ false”的身份作为来宾部署Windows Server 2008 R2时,仍然发生相同的问题。

我遇到了同样的问题,Windows 7 x64主机部署Windows Server 2012 R2来宾。 Packer 0.8.6。,在Cygwin,Virtual Box 5.0.10中运行make。 我第二个@mwrock的建议是不要删除错误时的工件。

只是更新,在这里进行了更改即可使它正常工作。 我将超时设置为非常高的值(例如1500m),并且最终成功了(不知道实际上花了多长时间,我才是AFK)。

运行Linux Mint 17.2(又名Ubuntu 14.04LTS)时,在构建Windows 7时遇到了相同的问题。 FWIW,我正在使用来自@mwrock的模板,这是我的错误:

==> virtualbox-iso: Gracefully halting virtual machine...
    virtualbox-iso: Removing floppy drive...
==> virtualbox-iso: Error removing floppy: VBoxManage error: VBoxManage: error: Failed to get a console object from the direct session (VBOX_E_INVALID_OBJECT_STATE)
==> virtualbox-iso: VBoxManage: error: Details: code VBOX_E_VM_ERROR (0x80bb0003), component MachineWrap, interface IMachine, callee nsISupports
==> virtualbox-iso: VBoxManage: error: Context: "LockMachine(a->session, LockType_Shared)" at line 326 of file VBoxManageStorageController.cpp
==> virtualbox-iso: Unregistering and deleting virtual machine...
==> virtualbox-iso: Deleting output directory...
Build 'virtualbox-iso' errored: Error removing floppy: VBoxManage error: VBoxManage: error: Failed to get a console object from the direct session (VBOX_E_INVALID_OBJECT_STATE)
VBoxManage: error: Details: code VBOX_E_VM_ERROR (0x80bb0003), component MachineWrap, interface IMachine, callee nsISupports
VBoxManage: error: Context: "LockMachine(a->session, LockType_Shared)" at line 326 of file VBoxManageStorageController.cpp

==> Some builds didn't complete successfully and had errors:
--> virtualbox-iso: Error removing floppy: VBoxManage error: VBoxManage: error: Failed to get a console object from the direct session (VBOX_E_INVALID_OBJECT_STATE)
VBoxManage: error: Details: code VBOX_E_VM_ERROR (0x80bb0003), component MachineWrap, interface IMachine, callee nsISupports
VBoxManage: error: Context: "LockMachine(a->session, LockType_Shared)" at line 326 of file VBoxManageStorageController.cpp

我遇到与OP尝试从Win 7主机构建Win 7 VM完全相同的问题。

这里或链接的答案中建议的解决方法都没有帮助。 困在这里。
还有其他指针/建议吗?

有时会在Windows 10构建Windows框上出现此问题。 重新启动打包程序任务会有所帮助。

virtualbox-iso: Removing floppy drive...
==> virtualbox-iso: Error removing floppy: VBoxManage error: VBoxManage.exe: error: Failed to get a console object from the direct session (VBOX_E_INVALID_OBJECT_STATE)
==> virtualbox-iso: VBoxManage.exe: error: Details: code VBOX_E_VM_ERROR (0x80bb0003), component MachineWrap, interface IMachine, callee IUnknown
==> virtualbox-iso: VBoxManage.exe: error: Context: "LockMachine(a->session, LockType_Shared)" at line 326 of file VBoxManageStorageController.cpp

是否有针对此的修复程序? 因此,Packer对我来说100%无法使用。 自从去年夏天我发现Packer并尝试了大约3天以来,我一直在尝试不停地构建vbox-2012r2.json(或任何Windows VM),然后在几个月后再次尝试,现在才尝试再次失败100%的时间。 它确实在该过程的早期失败并出现另一个错误,但是现在它在通过构建并正在清理之后因该错误而失败。

如果有解决方法,或者其他人具有可修复此问题的Packer版本,请让我知道,因为我真的很想使用Packer来构建我的VM,但我不知道其他人如何使用它,因为它失败了对我来说100%的时间。

我最终构建了一个模板映像,并手工对其进行了系统准备。 自动化非常重要...

不确定原因,但将shutdown_timeout1h似乎对我有用

@chocolatewheelchair这是一个很好的提示。 推测一下,但是由于这仅在Windows guest虚拟机上发生,可能是Windows确实关闭很慢,并且没有在默认的5m关闭超时内完成。 然后,VirtualBox尝试在正确关闭计算机之前取出软盘。

如果获得此问题分配的人可以验证增加shutdown_timeout1h可以解决此问题,那将是非常棒的

我非常怀疑更长的shutdown_timeout确实会影响到它,除非@chocolatewheelchair可以在多次尝试中确认持续影响到它。 还应注意,它不仅限于Windows,mac和linux用户均已报告此情况。 我发现唯一能够持续解决此问题的方法是无头运行(无论操作系统如何)。

我有一个shutdown_timeout = 15m。 OS关机时间为20-30秒,最长1m。 无论如何,大约10%的尝试都会出现问题。 最令人沮丧的是,此错误会在建筑物末端触发,因此仅需几秒钟即可取消3-4个小时的工作=)

@ rickard-von-essen @mwrock我已经运行了大约六次,它似乎可以工作。 不可思议的是小样本集。

@anuriq您提到了最令人沮丧的部分...一切运行良好,但是如果您单击它,它将撤消已经完成的所有操作。

@mwrock仅报告Windows guest

这里没有什么可做的,原始作者认为此问题已在0.8.1中修复。 如果其他人现在看到了这个,我建议尝试将shutdown_timeout增加到较大的值( 1h ),然后重试。 如果您仍然可以重现此内容,请添加以下详细信息:主机操作系统,打包程序版本,来宾操作系统,VirtualBox版本,要点(最小化)模板和重新运行构建所必需的脚本以及要在带有env var PACKER_LOG=1打包程序时运行日志的要点

正确@ rickard-von-essen我指的是主持人。 抱歉让您感到困惑。 它绝对不是在0.8.1中固定的

仅供参考:我的经验是使用Linux来宾操作系统,而不是Windows。

@beporter有趣的是,您是否有Linux构建的模板和脚本,可以在这种情况下共享? Linux往往可以更快地构建/测试。

@ rickard-von-essen FWIW,将shutdown_timeout更改为1h后,我的任何构建都不再因此特定错误而失败

由于我最近遇到此问题,因此我想补充一下自己的看法。

这是我多次发生的:

  • 打包机v0.8.6
  • Windows 7专业版主机

发生的客户机操作系统是Debian Jessie,但是鉴于我观察到的情况,这可能无关紧要。

在错误开始发生之前,这个模板已经工作了一个小时左右。 然后,它连续多次失败,并出现相同的错误。 在发生此错误的同一时间段内,基于Jessie的其他模板的构建也没有错误。 其他基于CentOS 6,CentOS 7和Ubuntu 14.04的模板也同时构建,没有错误。

在同时运行多个并发Packer构建时发生错误。 使用相同模板的后续构建(未运行任何其他构建)导致该构建成功完成。

我的模板未指定shutdown_timeout

我的猜测是,在关闭过程中,某些情况下Virtualbox在Packer继续其操作之前尚未完成其与I / O相关的操作。 我将尝试在运行多个并行Packer构建的情况下对此进行测试; 不论是否有shutdown_timeout可以查看是否可以重新创建。

以下是完整的错误输出:

==> virtualbox-iso: Gracefully halting virtual machine...
==> virtualbox-iso: Error detaching ISO: VBoxManage error: VBoxManage.exe: error: Failed to get a console object from the direct session (VBOX_E_INVALID_OBJECT_STATE)
==> virtualbox-iso: VBoxManage.exe: error: Details: code VBOX_E_VM_ERROR (0x80bb0003), component MachineWrap, interface IMachine, callee IUnknown
==> virtualbox-iso: VBoxManage.exe: error: Context: "LockMachine(a->session, LockType_Shared)" at line 326 of file VBoxManageStorageController.cpp
==> virtualbox-iso: Unregistering and deleting virtual machine...
==> virtualbox-iso: Deleting output directory...
Build 'virtualbox-iso' errored: Error detaching ISO: VBoxManage error: VBoxManage.exe: error: Failed to get a console object from the direct session (VBOX_E_INVALID_OBJECT_STATE)
VBoxManage.exe: error: Details: code VBOX_E_VM_ERROR (0x80bb0003), component MachineWrap, interface IMachine, callee IUnknown
VBoxManage.exe: error: Context: "LockMachine(a->session, LockType_Shared)" at line 326 of file VBoxManageStorageController.cpp

==> Some builds didn't complete successfully and had errors:
--> virtualbox-iso: Error detaching ISO: VBoxManage error: VBoxManage.exe: error: Failed to get a console object from the direct session (VBOX_E_INVALID_OBJECT_STATE)
VBoxManage.exe: error: Details: code VBOX_E_VM_ERROR (0x80bb0003), component MachineWrap, interface IMachine, callee IUnknown
VBoxManage.exe: error: Context: "LockMachine(a->session, LockType_Shared)" at line 326 of file VBoxManageStorageController.cpp

==> Builds finished but no artifacts were created.

关于我之前的评论的更新。

我上面的假设可能是错误的。

我花了几个小时运行一堆并发的测试版本。 无论是否设置了shutdown_timeout ,都会发生该错误,这是有道理的,因为我忘记了默认值已经为5m

我认为,在这种情况下,问题不在于Packer,而仅仅是Messenger,因此,从Packer的角度来看,没有任何可修复的东西,除非有一种方法可以优雅地处理此VBox错误,例如捕获并重试。 我没有检查是否有可能。

我也没有深入研究Virtualbox代码以查看为什么抛出此错误,因为它只是间歇性发生。

如果这个错误将来对我造成麻烦,那么我可能会花更多的时间进行调查。

我仍然遇到此错误,因此我想添加更多细节。

首先,这似乎是VirtualBox的问题; Packer只是这里的使者。

报告的错误在此文件中: https :

我的错误发生在326行。其他人报告了325行。有问题的代码块是:

    // find the machine, lock it, get the mutable session machine
    CHECK_ERROR_RET(a->virtualBox, FindMachine(Bstr(a->argv[0]).raw(),
                                               machine.asOutParam()), RTEXITCODE_FAILURE);
    CHECK_ERROR_RET(machine, LockMachine(a->session, LockType_Shared), RTEXITCODE_FAILURE);
    SessionType_T st;
    CHECK_ERROR_RET(a->session, COMGETTER(Type)(&st), RTEXITCODE_FAILURE);
    a->session->COMGETTER(Machine)(machine.asOutParam());

L325是第一个CHECK_ERROR_RET ,这是查找机器时的错误。
L325是第二个CHECK_ERROR_RET ,这是锁定机器的错误。

报告的原始错误是在L1011上,这是VirtualBox获取存储控制器的状态。 与该错误消息一致。

对于最后一个错误,我想知道是否存在引起此问题的并发问题,即另一个go例程已将其锁定。 请注意,这是一个推测性问题。

啊。 只是使用最新一轮的Windows图像再次击中了这一点,并找到了有关我的关机解决方法的参考。 显然仍处于打开状态,主机osx优胜美地,guest boxcutter Windows 2012r2数据中心,打包程序0.9.0,VBoxManage 5.0.14r105127。 我将关闭超时时间再次设置为15m,然后这次建立良好(或者,计时没有遇到错误,并且工作正常)。

只是另一句话说这也发生在我身上。 在Win 7 Professional上构建Windows Server 2012 R2。
我更改为headless = true和shutdown_timeout = 60m
然后它起作用了。

我也偶尔看到这个问题。 我正在尝试headless=true看看是否有帮助。

主机:Windows 2012 R2
VM:Windows 2012 R2
封隔器0.8.6
VirtualBox 5.0.8

FWIW,我使用mwrock / packer-templates @ eea6e05fa27b5089222de0194ba3fc444be1a117以100%的一致性体验了此问题

但是,如果我设置headless=true ,我的构建将顺利通过。 扩展shutdown_timeout的值对我没有积极影响。

为了繁荣,这是我的构建规格:

主持人:Linux Mint 17.3 Rosa(x64)
VM: mwrock / packer-模板:Windows 2012R2
封隔器:0.10.0
的VirtualBox:5.0.8

害怕我必须参加聚会。 不要认为shutdown_timeout在这里起作用,因为似乎打包程序认为过早关闭已经完成。

是的,无论超时时间长短,一旦打包程序认为来宾已关闭,它将开始删除。 处理了很多错误后,我充满信心,无头运行有助于降低发生这种情况的可能性,但不能保证。

@mwrock是否可以无头运行此虚拟机以生成VM,然后将headless设置为false?

您始终可以使用模板变量,通过CLI构建命令将默认值设置为true,并将其覆盖为false。

我遇到了这个问题,并将shutdown_timeout1h 。 问题为我解决。 保证会为我发生此问题,因此希望可以解决该问题,而我不再看到它。 花几个小时来构建图像并销毁所有工件确实令人沮丧。

情侣笔记;
打包机v0.8.6
virtualbox v5.1.4r110228

也有问题。

同样的沮丧。

封隔器:0.10.1
主持人:Linux Mint 17.3
来宾:Windows 2012R2。

我也有这个问题,而且似乎经常发生。

打包机v0.10.1
主持人:Windows 10专业版
访客:Windows 2012R2

我将尝试无头奔跑

刚完成更改为无头...

尝试了shutdown_timeout技巧,没有骰子。

尝试从Windows 10 Pro,Packer v0.10.1,VirtualBox 5.1.6构建@mwrockNano盒时遇到同样的问题。

在Windows上,创建Windows Server映像时,我遇到过六次此问题,从来没有一次让@mwrock packer-templates正常工作。 我提高了超时时间,将其更改为无头,并且当前正在导出ovf。

似乎已经完成了as俩,因为我从未如此了解。

到目前为止,我只有负面的证明,但是我刚刚创建的请求请求似乎有所帮助。 我一直在构建修改后的@mwrock模板。 上周我一直看到该错误,并且自从本周末构建了此修复程序并运行了修改后的代码以来,我没有看到该错误。 到目前为止,仅在OSX上进行了测试。 如果时间允许,将尝试Ubuntu。

我偶然发现了相同的问题,这仅在VirtualBox Builder中发生,而Qemu一切正常。 我在构建Windows 8的NixOS Linux主机上,如果headless = false ,Packer无法100%地删除Floppy控制器,而将headless = true可以成功删除软盘控制器,并且一切正常。 这确实很烦人,我们应该尽快解决。

使用VirtualBox 5.1.6

请测试#3952

大家好

我要添加一些东西,希望对大家有帮助:o)

昨天,我成功地将VirtualBox映像重建了3到4次,然后进行了一些调整,最后才出现此“错误删除软盘”问题。 我撤消了所有我认为最近的更改,但没有任何帮助。 我什至卸载了VirtualBox,Packer和Chocolatey,然后重新安装了它们,但是下一个版本仍然失败。

今天早上,我意识到从工作构建更改为失败状态的另一件事是……Packer为VM映像分配的内存量!

我本来可以使用2048MB(2GB)正常工作,但决定将其提高到6144MB(6GB),看看是否工作更快/更好。 今天早上,我将其降到了2GB,并且...该构建现在可以像以前一样工作了!

看看你们中是否有人可以做出类似的改变并从中获得积极的结果,将是一件很有趣的事情。

希望这有助于解决问题(除非它实际上是VirtualBox而不是Packer :))

安迪

这绝对是VirtualBox问题,请参阅https://www.virtualbox.org/ticket/16063

感谢您检查上游。 阅读VirtualBox票证后,听起来像@mwhooker建议重试https://github.com/mitchellh/packer/pull/3952#issuecomment -251197612将是解决此问题的更好方法。 如果这个周末我能抽出足够的时间,我会看看是否可以建造它。

今天,运行在macOS 10.11(El Cap)上的Packer 0.12.0和Win 2012 R2服务器客户机上运行VirtualBox 5.1.10的Packer 0.12.0达到了三倍。 第四次尝试成功了。

@bsberry您是否尝试增加post_shutdown_delay ? 如果是,请重新发行一期

感谢您的快速回复。 在另一个线程中的讨论中没有发现,即使运行0.12.0,也必须调整参数才能使其正常工作。 会将post_shutdown_delay到Windows访客的任何将来的VirtualBox包装器版本中。

默认值为30秒,可能需要增加

听起来值得重新尝试重试的想法。
我会看看是否可以在年底之前解决。

在2016年11月30日,星期三,1:19 PM,Matthew Hooker [email protected]
写道:

默认值为30秒,可能需要增加

-
您收到此邮件是因为您发表了评论。
直接回复此电子邮件,在GitHub上查看
https://github.com/mitchellh/packer/issues/2401#issuecomment-263967537
或使线程静音
https://github.com/notifications/unsubscribe-auth/AAE4_ri6iSgiuKdj4aPX6jJ0DSdzUTPPks5rDcw5gaJpZM4FTWsV

-

最好,迈克

博客http://mikestankavich.com
领英http://linkedin.com/in/mikestankavich
脸书http://facebook.com/mike.stankavich
Twitter的http://twitter.com/#!/mikestankavich
* Sk​​ype * MikeStankavich

再次在Windows Server 2016主机和Win10 guest虚拟机上达到此目的。

      "post_shutdown_delay": "180s",
      "shutdown_timeout": "1h",

virtualbox-iso构建器中没有帮助。

我也看到了这个问题。 这是Arch Linux上的Packer 0.12.1和VirtualBox 5.1.12。

==> virtualbox-iso: Gracefully halting virtual machine...
    virtualbox-iso: Removing floppy drive...
==> virtualbox-iso: Error removing floppy controller: VBoxManage error: VBoxManage: error: The machine 'packer-virtualbox-iso-1484873439' is already locked for a session (or being unlocked)
==> virtualbox-iso: VBoxManage: error: Details: code VBOX_E_INVALID_OBJECT_STATE (0x80bb0007), component MachineWrap, interface IMachine, callee nsISupports
==> virtualbox-iso: VBoxManage: error: Context: "LockMachine(a->session, LockType_Write)" at line 1038 of file VBoxManageStorageController.cpp
==> virtualbox-iso: Unregistering and deleting virtual machine...
==> virtualbox-iso: Deleting output directory...
Build 'virtualbox-iso' errored: Error removing floppy controller: VBoxManage error: VBoxManage: error: The machine 'packer-virtualbox-iso-1484873439' is already locked for a session (or being unlocked)
VBoxManage: error: Details: code VBOX_E_INVALID_OBJECT_STATE (0x80bb0007), component MachineWrap, interface IMachine, callee nsISupports
VBoxManage: error: Context: "LockMachine(a->session, LockType_Write)" at line 1038 of file VBoxManageStorageController.cpp

==> Some builds didn't complete successfully and had errors:
--> virtualbox-iso: Error removing floppy controller: VBoxManage error: VBoxManage: error: The machine 'packer-virtualbox-iso-1484873439' is already locked for a session (or being unlocked)
VBoxManage: error: Details: code VBOX_E_INVALID_OBJECT_STATE (0x80bb0007), component MachineWrap, interface IMachine, callee nsISupports
VBoxManage: error: Context: "LockMachine(a->session, LockType_Write)" at line 1038 of file VBoxManageStorageController.cpp

==> Builds finished but no artifacts were created.

我打开了一个新期刊来跟踪这些错误。 参见#4432

在这里看到完全相同的错误,有人修复了吗?

我在OSX 10.12.3上运行
dude1 $打包程序-v
0.12.2

dude $ packer build -force -only virtualbox-iso

Oracle VM VirtualBox管理器5.1.14

今天,我遇到了同样的问题,而这个问题仍然是最高的结果。 从我的测试中可以看出,延迟并不是人们所希望的魔术,但是使用-var 'headless=true'确实可以使延迟工作更可靠。

下面是我尝试调试来自boxcutter / windows的windows / win10x86-enterprise&windows / win2012r2-standard框的构建失败时的调试步骤的摘要

  • Ubuntu 16.10
  • VirtualBox 5.1.16
  • 封隔器0.12.2

决定尝试上述与headless模式有关并具有post_shutdown_delay的每个建议之一。

Win2012:超时测试:将-var "post_shutdown_delay=30s添加到Makefile -失败-无法将软盘炸掉。

胜利10:无头测试: HEADLESS=true make virtualbox/eval-win10x86-enterprise -失败-删除了软盘驱动器,然后炸毁了导出虚拟机的操作。

爆炸促使进行了更多搜索,我发现一个ubuntu用户报告了流氓虚拟盒子进程的导出问题。

关闭我所有的virtualbox内容,并检查是否还有任何进程仍在徘徊: ps -Aef | grep virtualbox -在那里,因此杀死了它们,然后又回到Win2012组合测试:30秒无头无头。

Win2012:无头测试: HEADLESS=true make virtualbox/eval-win2012r2-standard -起作用-无头模式导致我第一次成功安装Windows VM的打包程序。

完成这项工作后,我决定返回Windows 10,并且没有任何特殊的延迟,并且在显示模式下,是我最初尝试的默认设置,但是通过预验证步骤,在开始构建之前,没有恶意的虚拟箱进程正在运行。

胜利10:干净环境的默认测试: make virtualbox/eval-win10x86-enterprise -失败

所以我退后一步,再次赢得了胜利10

10场:无头,无延迟: HEADLESS=true make virtualbox/eval-win10x86-enterprise -工作

在调试此代码时,我遇到了@matthodge撰写的有关打包程序和Windows的优秀博客


@mwhooker要求将显示模式的延迟从30s延长到2m,

Win 10: -var "post_shutdown_delay=2m"默认模式: make virtualbox/eval-win10x86-enterprise -起作用

@dayne感谢您提供信息,这很有趣。 我想知道,如果您想再测试一次,是否可以设置post_shutdown_delay=2m并以headless = false运行。 我也将尝试使用Boxcutter盒,看看是否可以复制。 我本周正在为此工作,并在此处跟踪#4432

@mwhooker-我回过头来尝试了post_shutdown_delay=2mheadless=true post_shutdown_delay=2m ,它确实起作用了。 超过30秒的延迟确实使其起作用。 感谢您仔细检查-较长的延迟对于出现在Linux上的优先安装是一个可行的选择。

只是想确认此问题仍然存在,其中packer 1.4.6vagrant 2.2.6virtualbox 6.0-r14

通过关闭headless:false可以复制我。 添加post_shutdown_delay:2m可修复此问题,而无头模式仍处于关闭状态。

使用headless:true确实可以解决问题,而无需任何其他参数。

构建主机是32GB,i7,nvme SSD主机,因此在这方面没有什么“太慢”的。

这是一个很老的问题。 如果您面临的症状相似,则很有可能是新产品。 您能否以完整的步骤重开新刊?

我将锁定此问题,因为它已关闭_30天_⏳。 这有助于我们的维护者发现并关注当前的问题。

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

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