restore-test: neutralize source bind-mount mountpoints for scratch restore
A slice-10 enrolled guest's data drive is a host bind-mount mp0 that the privsep
token can't vzrestore ("bind mount is only possible for root") — so the restore-test
failed for every enrolled guest regardless of backup tier. The restore-test now reads
the source guest config (vmid from the archive volid) and passes RestoreLXC mp
overrides converting each bind-mount mpN to a throwaway 1G volume on the restore
storage (no root needed; boot-verify doesn't need the data). proxmox.RestoreLXC gains
MountOverrides. + unit tests (archiveVMID, bindMountOverrides).
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -32,6 +32,18 @@ intent actually gates future remounts. New `ExecutorChain` lets the signed-jobs
|
||||
`felhom-opsign` builds decommission params from `-durable-id`. No controller/customer UI — the operator
|
||||
path is hub jobs-queue → signed-jobs runner.
|
||||
|
||||
**Restore-test now boot-verifies slice-10 enrolled guests (bind-mount mountpoints).** A guest whose
|
||||
data drive is a host BIND mount (slice-10 P2 `mp0`) could not be vzrestore'd by the privsep token
|
||||
("restoring 'mpN' to bind mount is only possible for root") — so the restore-test failed for every
|
||||
enrolled guest, regardless of backup tier (surfaced during the felhom-pbs live validation). The
|
||||
restore-test now reads the SOURCE guest config (vmid parsed from the archive volid — PBS `ct/<vmid>/`
|
||||
and vzdump `vzdump-lxc-<vmid>-` forms) and passes `RestoreLXCOptions.MountOverrides` that neutralize
|
||||
each bind-mount `mpN` to a throwaway 1G volume on the restore storage (needs no root; the boot-verify
|
||||
doesn't need the drive's data, and the host paths would otherwise collide). Storage-backed mountpoints
|
||||
are restored normally; best-effort (an unreadable source config restores as-is). `proxmox.RestoreLXC`
|
||||
gained `MountOverrides`. Verified live: restore-test from felhom-pbs of bind-mounted guest 9201 →
|
||||
boot+running PASS.
|
||||
|
||||
## v0.27.0 — slice 10 P3: self-heal watchdog reconcile + 4-state intent model (2026-06-12)
|
||||
|
||||
The storage watchdog goes from detect-only → detect-and-reconcile: the agent autonomously re-mounts an
|
||||
|
||||
Reference in New Issue
Block a user