qemu-guest-agent
| Version | 2026.149.1200 |
| Repo | superproject |
QEMU guest agent — full host↔guest control channel with an application-consistent fsfreeze snapshot hook.
Installs the qemu-guest-agent package (identical name on Arch/CachyOS
and Fedora), enables the system service, and writes
/etc/qemu/qemu-ga.conf pinning the full RPC surface (guest-exec,
guest-file-, guest-fsfreeze-, guest-set-* — the package default
blocks none). The fsfreeze hook dispatcher runs every executable in
/etc/qemu/fsfreeze-hook.d/ on freeze/thaw so the host can take
application-consistent snapshots. Every artifact — the qemu-ga
binary, the package, the config, the executable dispatcher and its
drop-in dir — is file- and command-checkable inside the built image.
The guest-side virtio-serial channel (org.qemu.guest_agent.0) is
declared on the VM ENTITY, not this candy — see the vm-libvirt
deploy’s own libvirt.devices.channels:.
Packages
Section titled “Packages”Installed on every distro:
qemu-guest-agent
Services
Section titled “Services”qemu-guest-agent
Acceptance plan
Section titled “Acceptance plan”This candy’s plan: — the runnable spec charly check executes against a live deployment. check: steps are idempotent probes; run: steps change state.
| Intent | Step |
|---|---|
run |
mkdir=/etc/qemu/fsfreeze-hook.d |
run |
write=/etc/qemu/fsfreeze-hook |
run |
write=/etc/qemu/qemu-ga.conf |
check |
the qemu-ga daemon binary is installed at /usr/bin/qemu-ga |
check |
the cross-distro qemu-guest-agent package is installed |
check |
the fsfreeze hook dispatcher is installed and references its drop-in dir |
check |
the per-application freeze/thaw drop-in directory exists |
check |
freezing filesystems with no hooks installed runs the dispatcher and exits 0 |
check |
the guest-agent config wires in the fsfreeze hook |
check |
the config documents that no guest-agent RPCs are blocked |
check |
file=/etc/qemu/qemu-ga.conf |