Adding QEMU Guest Agent to an ISO Image and Automating Startup with Virt-Customize
A

Lead Engineer @ Packetware

Adding QEMU Guest Agent to an ISO Image and Automating Startup with Virt-Customize

The QEMU Guest Agent is a useful tool for managing virtual machines, enabling communication between the host and the guest system. In this article, we'll go through the steps to add the QEMU Guest Agent to an ISO image and configure it to start automatically using virt-customize.

Prerequisites

Before you begin, ensure you have the following installed:

  • Libguestfs-tools: Provides virt-customize and other tools.
  • A compatible guest OS ISO: This guide assumes you are working with a Linux-based guest OS.

Steps to Add QEMU Guest Agent

Step 1: Install Libguestfs tools

On your host system, install libguestfs-tools. On a Debian-based distribution, you can do this with:

sudo apt update
sudo apt install libguestfs-tools

For Red Hat-based systems:

sudo yum install libguestfs-tools

Step 2: Download the Guest Agent ISO

Download the ISO image of the Linux distribution that you want to customize (e.g., Ubuntu, CentOS).

Step 3: Identify the appropriate package for QEMU Guest Agent

You need to identify the package name for the QEMU Guest Agent for your guest OS. Here are some common packages:

  • Ubuntu/Debian: qemu-guest-agent
  • CentOS/RHEL: qemu-guest-agent

Step 4: Use virt-customize to Modify the ISO

Now, we will use virt-customize to install the guest agent package and configure it to start on boot.

virt-customize -a /path/to/your-iso-file.iso \
    --install qemu-guest-agent \
    --run-command 'systemctl enable qemu-guest-agent.service'

Breakdown of the Command

  • -a /path/to/your-iso-file.iso: This specifies the ISO file you want to modify.
  • --install qemu-guest-agent: This installs the QEMU Guest Agent package within the ISO.
  • --run-command 'systemctl enable qemu-guest-agent.service': This enables the QEMU Guest Agent service to start automatically on boot.

Step 5: Check the Result

You can verify that the QEMU Guest Agent service has been added and is configured to start:

virt-filesystems -a /path/to/your-iso-file.iso --all

Step 6: Create a New ISO

To make sure that changes are applied, you may want to create a new bootable ISO from the modified files. You can use the following command to create an ISO image:

sudo genisoimage -o /path/to/new-iso-file.iso -b isolinux/isolinux.bin -c isolinux/boot.cat -no-emul-boot -boot-load-size 4 -boot-info-table -R -J -v -T /path/to/extracted-iso-directory/

Ensure the paths are correct for your case.

Feel free to customize further based on your specific needs! Happy virtualizing!