You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Vmware-iso builder创建VM失败且未生成vmware.log文件求助

问题

尝试通过基础Packer模板基于现有Ubuntu ISO镜像创建VMware专属镜像时,Packer构建失败,报错Error starting VM: VMware error: Error: The operation was canceled。输出目录已生成vmdk、vmx等文件,但未生成用于排查的vmware.log文件(此前该文件会自动生成)。已安装vmware-workstation 16.1.0.17198959,相关信息如下:

构建命令及输出

$ packer build -on-error=ask ubuntu_vmware.json
vmware-iso: output will be in this color.

==> vmware-iso: Retrieving ISO
==> vmware-iso: Trying ../ubuntu-20.04.6-desktop-amd64.iso
==> vmware-iso: Trying ../ubuntu-20.04.6-desktop-amd64.iso?checksum=md5%3Aeeabb7996e94b2f0a6eaf73f8943d19f
==> vmware-iso: ../ubuntu-20.04.6-desktop-amd64.iso?checksum=md5%3Aeeabb7996e94b2f0a6eaf73f8943d19f => /home/user/ubuntu-20.04.6-desktop-amd64.iso
==> vmware-iso: Configuring output and export directories...
==> vmware-iso: Creating required virtual machine disks
==> vmware-iso: Building and writing VMX file
==> vmware-iso: Starting virtual machine...
    vmware-iso: The VM will be run headless, without a GUI. If you want to
    vmware-iso: view the screen of the VM, connect via VNC with the password "yqPTl0YR" to
    vmware-iso: vnc://127.0.0.1:5974
==> vmware-iso: Error starting VM: VMware error: Error: The operation was canceled
==> vmware-iso: Error starting VM: VMware error: Error: The operation was canceled
==> vmware-iso: Step "StepRun" failed
==> vmware-iso: [c] Clean up and exit, [a] abort without cleanup, or [r] retry step (build may fail even if retry succeeds)?

输出目录文件列表

$ ls ubuntu-vware-new/
disk-s001.vmdk  disk-s003.vmdk  disk-s005.vmdk  disk-s007.vmdk  disk-s009.vmdk  disk.vmdk                   packer-vmware-example.vmx
disk-s002.vmdk  disk-s004.vmdk  disk-s006.vmdk  disk-s008.vmdk  disk-s010.vmdk  packer-vmware-example.vmsd  packer-vmware-example.vmxf

Packer模板配置

{
  "builders": [
    {
      "type": "vmware-iso",
      "iso_url": "../ubuntu-20.04.6-desktop-amd64.iso",
      "iso_checksum": "md5:eeabb7996e94b2f0a6eaf73f8943d19f",
      "guest_os_type": "ubuntu-64",
      "headless": "true",
      "communicator": "ssh",
      "ssh_username": "packer",
      "ssh_password": "packer",
      "ssh_wait_timeout": "20m",
      "output_directory": "ubuntu-vware-new",
      "shutdown_command": "echo 'packer' | sudo -S shutdown -P now",
      "vm_name": "packer-vmware-example",
      "vmx_data": {
        "memsize": "2048",
        "numvcpus": "2"
      }
    }
  ],
  "provisioners": [
    {
      "type": "shell",
      "inline": [
        "echo 'Hello, Packer!'"
      ]
    }
  ]
}
排查与解决建议

你当前的模板缺少关键配置,同时存在导致VM启动失败的核心问题,具体调整方案如下:

1. 添加Ubuntu自动安装应答配置

Ubuntu Desktop ISO默认需要手动交互完成安装,Packer无法自动处理,这是VM启动后无法继续、最终被取消的核心原因。必须在builder配置中添加**boot_command**及对应HTTP目录配置来自动完成安装流程:

"boot_command": [
  "<esc><wait>",
  "install <wait>",
  "preseed/url=http://{{ .HTTPIP }}:{{ .HTTPPort }}/preseed.cfg <wait>",
  "debian-installer=en_US <wait>",
  "auto <wait>",
  "locale=en_US <wait>",
  "kbd-chooser/method=us <wait>",
  "netcfg/get_hostname={{ .Name }} <wait>",
  "netcfg/get_domain=local <wait>",
  "fb=false <wait>",
  "debconf/frontend=noninteractive <wait>",
  "console-setup/ask_detect=false <wait>",
  "console-keymaps-at/keymap=us <wait>",
  "keyboard-configuration/xkb-keymap=us <wait>",
  "<enter><wait>"
],
"http_directory": "./http"

同时在当前目录创建http文件夹,里面放置preseed.cfg文件,内容需包含创建packer用户、设置密码、开启SSH、自动分区等关键步骤(可参考Ubuntu官方自动安装模板)。

2. 强制启用VMware日志生成

在vmx_data中添加日志配置,确保VM启动时生成vmware.log:

"vmx_data": {
  "memsize": "2048",
  "numvcpus": "2",
  "log.fileName": "vmware.log",
  "log.append": "true"
}

3. 优化Guest OS类型

对于Ubuntu 20.04,VMware Workstation 16可使用更精确的guest_os_type值,提升兼容性:

"guest_os_type": "ubuntu64-2004"

4. 环境权限检查

  • 确保当前用户已加入vmware用户组,拥有VMware运行权限
  • 关闭其他占用虚拟化资源的程序(如VirtualBox、WSL2的Hyper-V)
  • 尝试手动启动生成的packer-vmware-example.vmx文件,查看VMware弹出的具体错误提示

内容的提问来源于stack exchange,提问作者user3462473

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.16 23:27:40