Skip to navigationSkip to content
libvirtd docs
Commands

Manual nav

Search `/` or jump with `g` / `G`.

Portal

  • Home manual
  • Command explorer
Foundations6 sections
  • Overview1
  • Installation2
  • Platform1
  • Concepts5
  • Domains2
  • Domain XML2
Subsystems9 sections
  • Identity1
  • Automation2
  • Daemons3
  • virsh3
  • Networking5
  • Storage4
  • Security3
  • Observability2
  • Remote Access1
Operations6 sections
  • Migration2
  • Backup2
  • Performance3
  • Recovery1
  • Troubleshooting2
  • References2

/ search · g top · G quickstart

mansecurityReviewed March 6, 2026

SELinux, virtd_t, and common denials

On SELinux enabled hosts, libvirt daemons run in controlled domains such as virtd t. Guest resources often carry svirt labels so the hypervisor can touch only what the policy allows. Why this breaks guest startup The gue

selinuxvirtd_tsvirtavc

On SELinux-enabled hosts, libvirt daemons run in controlled domains such as virtd_t. Guest resources often carry svirt_* labels so the hypervisor can touch only what the policy allows.

Why this breaks guest startup

The guest XML may be correct while SELinux blocks the disk path, firmware file, socket, or host device. That means the fix is usually labeling or policy, not a libvirt syntax change.

BASH
getenforce
ps -eZ | grep -E "virtqemud|libvirtd"
ausearch -m AVC,USER_AVC -ts recent

Do not normalize on permissive mode

Use permissive mode only to prove a policy hypothesis during debugging. The durable fix is relabeling, adjusting file placement, or changing the relevant boolean or policy.

Common denial patterns

  • Disk images stored in a random directory without the expected label.
  • ISO files mounted from a path that the daemon domain cannot read.
  • Shared folders or custom device nodes that never received the right context.

Fix pattern

BASH
ls -Z /var/lib/libvirt /var/lib/libvirt/images
restorecon -Rv /var/lib/libvirt
journalctl -t setroubleshoot -n 50

If the storage path is intentionally outside the default tree, document the labeling strategy instead of relying on ad hoc fixes.

Related

  • Pool and volume workflows
  • AppArmor and the sVirt isolation model
  • Troubleshooting playbook

On this page

  • Why this breaks guest startup
  • Common denial patterns
  • Fix pattern