lima-vm/lima · error

disk format %#q not supported, use `qcow2` or `raw` instead

Error message

disk format %#q not supported, use `qcow2` or `raw` instead

What it means

`limactl disk create` was given a --format value other than qcow2 or raw. Lima disks only support these two formats, and diskCreateAction validates the format before touching the store. This is a plain argument-validation error.

Source

Thrown at cmd/limactl/disk.go:94

	size, err := cmd.Flags().GetString("size")
	if err != nil {
		return err
	}

	format, err := cmd.Flags().GetString("format")
	if err != nil {
		return err
	}

	diskSize, err := units.RAMInBytes(size)
	if err != nil {
		return err
	}

	switch format {
	case "qcow2", "raw":
	default:
		return fmt.Errorf("disk format %#q not supported, use `qcow2` or `raw` instead", format)
	}

	// only exactly one arg is allowed
	name := args[0]

	diskDir, err := store.DiskDir(name)
	if err != nil {
		return err
	}

	if _, err := os.Stat(diskDir); !errors.Is(err, fs.ErrNotExist) {
		return fmt.Errorf("disk %#q already exists (%#q)", name, diskDir)
	}

	logrus.Infof("Creating %s disk %#q with size %s", format, name, units.BytesSize(float64(diskSize)))

	if err := os.MkdirAll(diskDir, 0o700); err != nil {
		return err

View on GitHub (pinned to dd909d0973)

Solutions

  1. Pass --format qcow2 (default) or --format raw
  2. Fix casing: the switch matches exactly "qcow2" and "raw"
  3. Drop the flag entirely to use the default qcow2 format

Example fix

// before
$ limactl disk create data --format vmdk
// after
$ limactl disk create data --format qcow2
Defensive patterns

Strategy: validation

Validate before calling

const SUPPORTED = ['qcow2', 'raw']
if (!SUPPORTED.includes(format)) {
  throw new Error(`format ${format} unsupported; use qcow2 or raw`)
}

Type guard

function isSupportedFormat(f: string): f is 'qcow2' | 'raw' {
  return f === 'qcow2' || f === 'raw'
}

Try / catch

try {
  await createDisk(name, { format, size })
} catch (err) {
  if (/not supported/.test(err.message)) {
    await createDisk(name, { format: 'qcow2', size })
  } else throw err
}

Prevention

When it happens

Trigger: `limactl disk create <name> --format <x>` where <x> is anything else (e.g. vmdk, vdi, qcow, RAW with different case).

Common situations: Copy-pasting formats from other VM tools (VirtualBox/VMware); assuming case-insensitivity; typos like qcow.

Related errors


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