lima-vm/lima · error

vmOpts.vz.diskImageFormat=%#q requires macOS 26 or higher to

Error message

vmOpts.vz.diskImageFormat=%#q requires macOS 26 or higher to run, got %#q

What it means

The ASIF (Apple Sparse Image Format) disk image format is only supported by Virtualization.framework on macOS 26 (Tahoe) or later. validateConfig checks the running macOS product version and refuses a `vmOpts.vz.diskImageFormat: asif` configuration on older macOS releases.

Source

Thrown at pkg/driver/vz/vz_driver_darwin.go:353

	case "vz", "default", "none":
	default:
		logrus.Warnf("field `audio.device` must be `vz`, `default`, or `none` for VZ driver, got %#q", audioDevice)
	}

	switch videoDisplay := *cfg.Video.Display; videoDisplay {
	case "vz", "default", "none":
	default:
		logrus.Warnf("field `video.display` must be `vz`, `default`, or `none` for VZ driver , got %#q", videoDisplay)
	}
	var vzOpts limatype.VZOpts
	if err := limayaml.Convert(cfg.VMOpts[limatype.VZ], &vzOpts, "vmOpts.vz"); err != nil {
		logrus.WithError(err).Warnf("Couldn't convert %#q", cfg.VMOpts[limatype.VZ])
	}
	switch *vzOpts.DiskImageFormat {
	case raw.Type:
	case asif.Type:
		if macOSProductVersion.LessThan(*semver.New("26.0.0")) {
			return fmt.Errorf("vmOpts.vz.diskImageFormat=%#q requires macOS 26 or higher to run, got %#q", asif.Type, macOSProductVersion)
		}
	default:
		return fmt.Errorf("field `vmOpts.vz.diskImageFormat` must be %#q or %#q, got %#q", raw.Type, asif.Type, *vzOpts.DiskImageFormat)
	}
	return nil
}

func (l *LimaVzDriver) Create(_ context.Context) error {
	identifierFile := filepath.Join(l.Instance.Dir, filenames.VzIdentifier)
	if *l.Instance.Config.OS == limatype.DARWIN {
		_, err := getMacMachineIdentifier(identifierFile)
		return err
	}
	_, err := getGenericMachineIdentifier(identifierFile)
	return err
}

func (l *LimaVzDriver) CreateDisk(ctx context.Context) error {

View on GitHub (pinned to dd909d0973)

Solutions

  1. Upgrade the host to macOS 26 or later
  2. Remove the diskImageFormat option (defaults to raw)
  3. Set `vmOpts.vz.diskImageFormat: raw`

Example fix

# before
vmOpts:
  vz:
    diskImageFormat: asif
# after
vmOpts:
  vz:
    diskImageFormat: raw
Defensive patterns

Strategy: validation

Validate before calling

v, err := osutil.ProductVersion() // or sw_vers on the host
if err == nil && v.LessThan(*semver.New("26.0.0")) {
    // ensure vmOpts.vz.diskImageFormat != "asif" before starting
}

Type guard

func asifSupported(macVer string) bool {
    v := semver.MustParse(macVer)
    return !v.LessThan(semver.MustParse("26.0.0"))
}

Prevention

When it happens

Trigger: Setting `vmOpts: vz: diskImageFormat: asif` in the instance config and running `limactl start` (or validate) on macOS < 26, where `osutil.ProductVersion()` is less than 26.0.0.

Common situations: Adopting the new asif format recommended for newer Limas while still running macOS 13-15; sharing a lima.yaml from a macOS 26 machine to an older Mac.

Related errors


AI-assisted analysis of lima-vm/lima@dd909d0973 (2026-09-01). Data as JSON: /api/errors/f12ec41bd51de317. Report an issue: GitHub.