Packer 和 Qemu - Qemu 在 SIGKILL 期间挂起 - 请求重新启动

Packer 和 Qemu - Qemu 在 SIGKILL 期间挂起 - 请求重新启动

我正在尝试使用打包程序构建 Ubuntu 19.04 服务器映像。我已成功启动并运行安装,经过一个小时的更改后,Qemu 显示安装已完成,有时SIGINTSIGKILL发送和,并请求重新启动,但最终打包程序超时,因为 Qemu 从不重新启动操作系统以让打包程序 SSH 进入并完成其工作。我尝试了一些方法让 Qemu 输出有关其无法重新启动的原因的信息:

-serial stdio

-serial mon:stdio

-serial telnet:127.0.0.1:4444,server,nowait

一切都无济于事。我没有从 Qemu 得到任何反馈。我还尝试找到配置跟踪和-append console=ttyS0内核的好例子。我是 Qemu 和 Packer 新手,所以如果我遗漏了一些显而易见的东西,请原谅我。我做了很多搜索,试图找到调试 qemu 的方法,以找出它在重启时挂起的原因。

Ubuntu 19.04 桌面版本:

打包程序:1.4.1

Qemu:3.1.0(apt 安装)

macOS 10.14.5 构建环境:

打包程序:1.4.0

Qemu:4.0.0(brew 安装)

在这两种环境中,qemu 似乎在重启时挂起。我说似乎,因为虽然我确实-display gtk在 Ubuntu 桌面上看到它挂起的位置,但有一个错误(?)并且-display sdl在 Mac 上损坏,并且 gtk 不起作用。我也在 Mac 上尝试了 curses,但那也不起作用。所以据我所知,两者都在同一个地方中断。如果需要,我可以提供我的 preseed.cfg。

这是我的ubuntu.json

{
    "builders": [
        {
            "type": "qemu",
            "boot_command": [
                "<enter><wait2><esc><wait2><enter>",
                "<wait>",
                "/install/vmlinuz",
                " initrd=/install/initrd.gz quiet",
                " vga=788",
                " auto=true",
                " priority=critical",
                " reboot=pci",
                " url=http://{{ .HTTPIP }}:{{ .HTTPPort }}/preseed.cfg",
                " --- <enter>"
            ],
            "qemuargs": [
                ["-display", "gtk"],
                ["-serial", "stdio"]
            ],
            "boot_wait": "5s",
            "disk_size": 20000,
            "headless": false,
            "http_directory": "http",
            "iso_url": "http://cdimage.ubuntu.com/releases/19.04/release/ubuntu-19.04-server-amd64.iso",
            "iso_checksum_type": "sha256",
            "iso_checksum_url": "http://cdimage.ubuntu.com/releases/19.04/release/SHA256SUMS",
            "communicator": "ssh",
            "ssh_username": "ubuntu",
            "ssh_password": "ubuntu",
            "ssh_port": 22,
            "ssh_wait_timeout": "120m",
            "shutdown_command": "echo 'ubuntu' | sudo shutdown -P now",
            "vm_name": "ubuntu-19.04-amd64.qcow2"
        }
    ]
}

答案1

看起来我受到竞争条件的影响。在 Qemu 4 上构建解决了这个问题,一旦我修复了 macOS 上的配置文件,我就可以进行构建了。

相关内容