Community Solution

ZVM Extras for ZimaOS: Autostart, Snapshots, USB/PCIe Passthrough, and VM Backup

A May-August 2026 community project that adds operational controls beside ZimaOS's built-in ZVM: autostart, snapshots, USB and PCIe passthrough, VM backup/export, remote storage, metrics, NIC switching, power controls, and a VNC console. IceWhale staff praised the work but it remains a community add-on.

ZVM Extras is a community extension built to fill operational gaps around ZimaOS's built-in ZVM manager without replacing ZVM itself. The official ZVM remains responsible for creating and editing virtual machines; ZVM Extras sits beside it as a separate systemd-sysext module and talks to the same libvirt backend.

The project started in May 2026 on ZimaOS 1.6.1 with autostart, snapshots, USB passthrough, remote storage, backups, watchdogs, and metrics. It then evolved rapidly through community testing. The current public repository documents v0.7.0 verified on ZimaOS 1.7.0-beta1, with several bugs from v0.6.3 already fixed.

It Extends ZVM Instead of Replacing It

The source author deliberately avoided building a second VM manager. ZVM Extras reads the same VM inventory and works through libvirt/virsh, while the normal ZVM interface stays authoritative for VM creation and ordinary editing.

That design reduces conflict with the built-in virtualization layer, but it does not eliminate compatibility risk. A ZimaOS or ZVM update can still change libvirt behavior, VM XML, networking, or device handling underneath the extension.

Autostart Adds Per-VM Order and Delay

The extension can mark selected VMs to start automatically after the ZimaOS host boots. Unlike a simple “autostart everything” switch, it supports ordering and delays between VMs so infrastructure services can come up in sequence.

A watchdog can also restart selected VMs if they stop unexpectedly. By v0.7.0, the same area gained start, stop, reboot, and force-off controls, with warnings when a watchdog would immediately restart a VM that the user is trying to stop.

Snapshots Handle Running and Stopped VMs Differently

ZVM Extras Snapshots tab showing a running Linux VM with snapshot creation, storage target, revert, and delete controls
The extension provides a GUI for creating, reverting, and deleting snapshots rather than requiring users to manage them manually with virsh.

The original design used internal libvirt snapshots for stopped VMs and external snapshots with memory state for running VMs. That distinction matters because a live, revertable snapshot is more complex and can consume substantial storage.

Remote NFS or SMB storage can also be used as a snapshot target, reducing pressure on the local NVMe device.

USB Passthrough Became a GUI Workflow

ZVM Extras USB passthrough tab listing host USB devices with persistent attach and detach controls
The source project exposes host USB devices and allows persistent attachment to a selected VM without editing libvirt XML by hand.

The extension also reconciles persistent USB attachments if the normal ZVM UI later rewrites the guest configuration and strips the host-device entry.

PCIe Passthrough Uses VFIO and IOMMU Groups

By v0.4.0, ZVM Extras added PCIe passthrough. The interface shows IOMMU grouping and the host driver, blocks obviously unsuitable bridge devices, and uses VFIO for assignment.

This remains a higher-risk feature than passing through an ordinary USB device. The chosen hardware must be isolated safely, the host must not depend on it, and a bad assignment can affect host stability or networking.

Remote Storage Can Hold Snapshots and Backups

ZVM Extras Remote storage tab for adding NFS or SMB shares as snapshot and backup destinations
NFS and SMB mounts can be configured as remote targets for VM snapshots and backup exports.

This is especially useful for large QCOW2 virtual disks. Keeping every snapshot on the same physical device as the active VM provides little protection against local drive failure and can rapidly consume space.

VM Backup Exports XML and Disk Images

The project can export VM configuration and disk images as a standalone backup artifact. Later versions remember the selected backup target, making repeated operations easier.

A VM snapshot and a VM backup are not equivalent. A snapshot is primarily a rollback mechanism. A separate backup stored on another device protects against loss of the host storage itself.

Live Metrics Turn ZVM into a More Operational Dashboard

ZVM Extras reads CPU, memory, disk, and network metrics from libvirt. Community users confirmed those measurements worked on test VMs. In v0.6.3, one user reported every VM showing 100% memory; the author traced the calculation problem and fixed it in v0.7.0, which also added short history sparklines.

NIC Switching Is Intentionally Limited to Existing Networks

The extension can change a guest NIC's libvirt network and model. The author intentionally refused to automate creation of a new host bridge by enslaving the live ZimaOS Ethernet interface, because a failed bridge migration could take the NAS offline.

This cautious boundary is important. Selecting an existing network is far safer than rewriting the host's primary network stack from a VM-management add-on.

VM ↔ Host Communication Can Still Hit macvtap Limits

One community user could reach a Home Assistant VM from the LAN but not from a reverse-proxy container on the ZimaOS host when both used the same physical NIC. The source author suspected the classic macvtap host-isolation behavior and suggested checking the guest XML.

He clearly labeled that explanation as a hypothesis because he could not reproduce the exact setup. Do not turn it into a confirmed ZimaOS root cause without inspecting the actual interface type.

The Project Added a Real Test Suite, but Not Every Hardware Path Is Covered

For v0.4.0, the author reported 63 test cases passing, including static analysis, race testing, CSRF/origin controls, argument/path injection guards, snapshots, backup export, NIC changes, and metrics. Real power-cycle and live PCIe attach cases were intentionally outside that automated test scope.

A second community user independently installed v0.4.0, confirmed the sysext loaded, detected a Debian VM, showed metrics, and created a stopped-VM snapshot successfully.

IceWhale Praised the Project, but It Is Still Community Software

Zima-Jerry later replied that the project appeared to address current ZVM shortcomings. That is positive official feedback, not an announcement that ZVM Extras has become part of ZimaOS or is supported like a built-in module.

Before installation, review the current ZVM Extras repository and release status. The repository currently identifies v0.7.0 as verified on ZimaOS 1.7.0-beta1.

Back Up VM Data Before Testing Community Virtualization Extensions

Snapshots, passthrough, and XML reconciliation all operate close to the VM storage and device configuration. Test first with a disposable guest, keep a copy of important QCOW2 disks, and make sure you can restore without the extension installed.

ZVM Extras FAQ

Does ZVM Extras replace the official ZVM app?

No. It is designed as a companion extension and uses the same libvirt backend.

Can it pass USB and PCIe devices through from the GUI?

Yes. USB passthrough and VFIO-based PCIe passthrough are core features of the project.

Can it back up a VM to another NAS?

It can mount NFS or SMB storage and use remote paths for snapshots or backup exports.

Is ZVM Extras officially supported by IceWhale?

No. IceWhale staff praised it, but the source and current repository describe it as a community add-on.