Build VMs stopped starting after a reboot into a new kernel: vmmon/vmnet
were left unloaded and vmnet1/vmnet8 (DHCP/NAT) never came up, so
vmware-vmx died (status=237/KEYRING) and clones got no IP. Root cause:
the LSB->systemd sysv-generated vmware.service intermittently fails to
generate at early boot ("systemd-sysv-generator: Cannot find unit
vmware.service"), and the existing module-rebuild guard only builds the
modules -- it never loads them or starts vmnet networking.
Add a native vmware-host.service that runs `/etc/init.d/vmware start`
(loads vmmon/vmci + brings up vmnet), ordered after the rebuild guard,
and mask the flaky sysv vmware.service so the native unit is the sole
owner. Provisioned by scripts/install-vmware-host-services.sh and wired
into setup-host-linux.sh (new step 8/9). VMware ships no native unit and
no kernel postinst hook, so this native wrapper around VMware's own
tools is the reliable boot path.
Verified: linked clone boots and gets a vmnet8 DHCP IP.
18 lines
523 B
Desktop File
18 lines
523 B
Desktop File
[Unit]
|
|
Description=Rebuild VMware host modules (vmmon/vmnet) for running kernel if missing
|
|
Documentation=man:vmware-modconfig(1)
|
|
# VMware modules are not DKMS-managed; ensure they exist before vmware-host starts.
|
|
After=local-fs.target
|
|
Before=vmware-host.service
|
|
ConditionPathExists=/usr/bin/vmware-modconfig
|
|
|
|
[Service]
|
|
Type=oneshot
|
|
RemainAfterExit=yes
|
|
ExecStart=/usr/local/sbin/vmware-modules-rebuild.sh
|
|
# Building modules can take a little while on a cold kernel.
|
|
TimeoutStartSec=600
|
|
|
|
[Install]
|
|
WantedBy=multi-user.target
|