vm_lifecycle: drop systemd.mask=dev-{ttyS0,vdb}.device

Both masks were added when the direct-boot path first landed for
container rootfses that didn't have anything mounted on /dev/vdb. The
golden image (and any pulled OCI image running under banger's
patchRootOverlay) has an /etc/fstab entry mounting /dev/vdb at /root —
masking dev-vdb.device makes systemd wait forever for a unit that can
never become active, and the work-disk mount never completes. dev-ttyS0
is a real serial console the image needs too. Drop both.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
Thales Maciel 2026-04-18 14:58:42 -03:00
parent ab5627aec2
commit b2dcdf9757
No known key found for this signature in database
GPG key ID: 33112E6833C34679

View file

@ -156,8 +156,7 @@ func (d *Daemon) startVMLocked(ctx context.Context, vm model.VMRecord, image mod
// systemd+sshd on first boot if missing.
kernelArgs = system.BuildBootArgsWithKernelIP(
vm.Name, vm.Runtime.GuestIP, d.config.BridgeIP, d.config.DefaultDNS,
) + " init=" + imagepull.FirstBootScriptPath +
" systemd.mask=dev-ttyS0.device systemd.mask=dev-vdb.device"
) + " init=" + imagepull.FirstBootScriptPath
}
machineConfig := firecracker.MachineConfig{