Pre-flight check for Hyper-V / compatibility

Expected behavior

The installer itself should pre-flight check and verify various Hyper-V compatibility settings from the CPU feature suitability to services running to boot options set properly (many people previously ran VirtualBox so have Hyper-V disabled!). Let’s be kind to people’s time and first impressions.

Actual behavior

You’re allowed to install and then when the MobyVM fails to start there’s a cryptic error message. Eventually I went down the rabbit hole and realized that Hyper-V itself wasn’t running due to missing SLAT feature.

Thanks for reporting - we’ve attempted various prototypes that detect this, but it’s difficult to do reliably (for example to also cover nested virtualization)

cc @ebriney

Yes, we did many tests but there is always false positive even on a small subset of machines and vms so it’s hard to have reliable way to detect if everything is ok, especially bios flags detection, some softwares can detect it but they run in kernel space.

For now, we mainly check that hyperv services are ready.

Running as Administrator would be worthwhile to do the BIOS and CPU checks IMO.

The checks can mention that detection can be unreliable if in a nested VM (which is a rarer case than someone simply having an incompatible CPU).

Perhaps if the VM fails to load have some guidance or a checklist to verify manually if needed to at least point people in a direction.