What is in this article
NB These instructions are out of date since the release of Debian 11 (Bullseye). Some parts of these guide will need to be updated to the new Debian release.
- Create an UEFI (newish) ARM hardfloat (32-bit) virtual machine for Libvirt/KVM using automated image build using Packer.
- See Four ARMs for Libvirt/KVM virtualisation for prerequisites, why, and other alternatives.
Get the Installer Images
NB Instead of vmlinuz and initrd.gz as the filenames you should use filenames that include the debian version and architecture (e.g. call vmlinuz debian-10.6.0-armhf-vmlinuz).
Get [Debian Buster armhf kernel](
Get [Debian Buster armhf initrd](
Get [Debian Buster armhf CD#1 image](Buster is no longer available for download; for the current version of Debian see https://cdimage.debian.org/debian-cd/current/armhf/iso-cd/. The instructions in this article have not yet been updated for Bullseye, however.
Subsequent instructions assume you have the renamed files in /home/user/Downloads.
Create and Use the Images
Boot at Will
Your UEFI ARM Hard Float Virtual Machine is now ready for use.