Packer и Qemu - Qemu зависает во время SIGKILL - требуется перезагрузка

Packer и Qemu - Qemu зависает во время SIGKILL - требуется перезагрузка

Я пытаюсь собрать образ сервера Ubuntu 19.04 с помощью упаковщика. Он загружается и установка вроде бы проходит нормально, а через час с небольшим Qemu показывает, что установка завершена, и SIGINTиногда SIGKILLотправляются и запрашивается перезагрузка, но в конечном итоге упаковщик отключается, потому что 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 Desktop:

Упаковщик: 1.4.1

Qemu: 3.1.0 (установка apt)

Среда сборки macOS 10.14.5:

Упаковщик: 1.4.0

Qemu: 4.0.0 (установка brew)

В обеих средах qemu, похоже, зависает на этапе перезагрузки. Я говорю «кажется», потому что, хотя у меня есть -display gtkрабочий стол Ubuntu и я вижу, где он зависает, на Mac есть ошибка (?), и -display sdlон сломан, а gtk не работает. Я также пробовал curses на Mac, но он тоже не работает. Так что, насколько я могу судить, оба ломаются в одном и том же месте. Я могу предоставить свой 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, мне удалось получить сборку.

Связанный контент