Rocky Linux 9 is out, therefore it’s time to build new Packer images.
The Problem
When trying to create a Rocky Linux 9 VM with Packer and Qemu builder running on Rocky Linux 8.6, the installer fails due to kernel panic.
It turns out that direct invocation of qemu-kvm is not supported in RHEL 9. Notes taken from RHEL 9 documentation:
While Qemu is an essential component of the architecture, it is not intended to be used directly on RHEL 9 systems, due to security concerns. Therefore, using qemu-* commands is not supported by Red Hat, and it is highly recommended to interact with Qemu using libvirt.
The Workaround
We need to update qemu-kvm args to pass the flag “-cpu host”.
This is how our Rocky Linux 8 Packer template looks like:
"qemuargs": [
[
"-m",
"{{user `ram`}}M"
],
[
"-smp",
"{{user `cpu`}}"
]
],
And this is an updated Packer template for Rocky Linux 9:
"qemuargs": [
[
"-m",
"{{user `ram`}}M"
],
[
"-smp",
"{{user `cpu`}}"
],
[
"-cpu",
"host"
]
],
Build Rocky Linux 9 image using the updated template:
$ PACKER_LOG=1 packer build ./rocky9.json
References
https://github.com/hashicorp/packer-plugin-qemu/issues/76
