{"record":{"id":"cca89a1fc0feda31","repo":"lima-vm/lima","slug":"currently-windows-guest-os-is-only-supported-on-qe-cca89a","errorCode":null,"errorMessage":"currently Windows guest OS is only supported on QEMU","messagePattern":"currently Windows guest OS is only supported on QEMU","errorType":"validation","errorClass":null,"httpStatus":null,"severity":"error","filePath":"pkg/driver/vz/vz_driver_darwin.go","lineNumber":283,"sourceCode":"\tif err != nil {\n\t\treturn err\n\t}\n\tif macOSProductVersion.LessThan(*semver.New(\"13.0.0\")) {\n\t\treturn errors.New(\"VZ driver requires macOS 13 or higher to run\")\n\t}\n\tif runtime.GOARCH == \"amd64\" && macOSProductVersion.LessThan(*semver.New(\"15.5.0\")) {\n\t\tlogrus.Warnf(\"vmType %s: On Intel Mac, macOS 15.5 or later is required to run Linux 6.12 or later. \"+\n\t\t\t\"Update macOS, or change vmType to `qemu` if the VM does not start up. (https://github.com/lima-vm/lima/issues/3334)\",\n\t\t\t*cfg.VMType)\n\t}\n\tif cfg.MountType != nil && *cfg.MountType == limatype.NINEP {\n\t\treturn fmt.Errorf(\"field `mountType` must be %#q or %#q for VZ driver , got %#q\", limatype.REVSSHFS, limatype.VIRTIOFS, *cfg.MountType)\n\t}\n\tif cfg.TPM != nil && *cfg.TPM {\n\t\treturn errors.New(\"field `tpm` is not supported on VZ driver\")\n\t}\n\tif cfg.OS != nil && *cfg.OS == limatype.WINDOWS {\n\t\treturn errors.New(\"currently Windows guest OS is only supported on QEMU\")\n\t}\n\tif *cfg.Firmware.LegacyBIOS {\n\t\tlogrus.Warnf(\"vmType %s: ignoring `firmware.legacyBIOS`\", *cfg.VMType)\n\t}\n\tfor _, f := range cfg.Firmware.Images {\n\t\tswitch f.VMType {\n\t\tcase \"\", limatype.VZ:\n\t\t\tif f.Arch == *cfg.Arch {\n\t\t\t\treturn errors.New(\"`firmware.images` configuration is not supported for VZ driver\")\n\t\t\t}\n\t\t}\n\t}\n\tif unknown := reflectutil.UnknownNonEmptyFields(cfg, knownYamlProperties...); cfg.VMType != nil && len(unknown) > 0 {\n\t\tlogrus.Warnf(\"vmType %s: ignoring %+v\", *cfg.VMType, unknown)\n\t}\n\n\tif !limatype.IsNativeArch(*cfg.Arch) {\n\t\treturn fmt.Errorf(\"unsupported arch: %#q\", *cfg.Arch)","sourceCodeStart":265,"sourceCodeEnd":301,"githubUrl":"https://github.com/lima-vm/lima/blob/dd909d0973cd84fa35f9e1693181b4585ea616c1/pkg/driver/vz/vz_driver_darwin.go#L265-L301","documentation":"Validation error from the VZ driver's validateConfig (pkg/driver/vz/vz_driver_darwin.go:283), raised when the lima.yaml sets `os: windows`. Windows guests are only supported by the QEMU driver; VZ supports Linux guests only. Fix by removing the `os: windows` setting for VZ instances, or changing vmType to `qemu` to run a Windows guest.","triggerScenarios":"Config sets os: \"windows\" (limatype.WINDOWS) while vmType is \"vz\".","commonSituations":"Attempting to boot a Windows guest via VZ on a Mac; copying a QEMU Windows-guest template and switching vmType to vz.","solutions":["Switch the instance driver to QEMU (default) for Windows guests","Use a Linux/macOS guest with VZ instead"],"exampleFix":"// before (lima.yaml)\nvmType: vz\nos: windows\n// after\nvmType: qemu\nos: windows","handlingStrategy":"validation","validationCode":"if vmType == \"vz\" && guestOS == \"windows\" {\n    vmType = \"qemu\" // Windows guests require QEMU\n}","typeGuard":null,"tryCatchPattern":"if err := start(); err != nil && strings.Contains(err.Error(), \"Windows guest OS is only supported on QEMU\") {\n    // switch vmType to qemu and retry\n}","preventionTips":["Use vmType: qemu for Windows guests","Check the os field when porting templates between drivers","Run `limactl validate` before starting instances"],"tags":["config-validation","windows-guest","vz"],"backgroundTag":"unsupported-driver-feature","analyzedSha":"dd909d0973cd84fa35f9e1693181b4585ea616c1","analyzedAt":"2026-09-01T14:24:59.842Z","contentChangedAt":null,"schemaVersion":2},"datasetVersion":"2026-09-08T10:18:20.063Z"}