Start passthrough VM and its dependents by device identity, not address

Adding a PCIe card can renumber the buses behind it, so a hostpci entry
that names a PCI address can pass through the wrong device. These start
the VM only after finding each device by vendor/device/subsystem ID or
by its MAC-pinned interface, repoint its resource mapping if it moved,
and refuse to start on anything ambiguous. Its dependents then wait for
a port on it to answer before starting, so they find their shares up.
This commit is contained in:
ergosteur
2026-10-25 02:29:49 -04:00
parent 0fde1426b0
commit 0d55a6819d
7 changed files with 410 additions and 0 deletions
+16
View File
@@ -0,0 +1,16 @@
[Unit]
Description=Start the guests that depend on the passthrough VM
# If passthrough-vm-start.service fails this does not run, so nothing that needs
# the VM is started without it.
Requires=passthrough-vm-start.service
After=passthrough-vm-start.service pve-guests.service
[Service]
Type=oneshot
RemainAfterExit=true
ExecStart=/opt/ergosteur/start-dependents.sh
# Covers WAIT_SECS in conf/dependents.conf plus the starts themselves.
TimeoutStartSec=900
[Install]
WantedBy=multi-user.target