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 errView on GitHub (pinned to dd909d0973)
Solutions
- Pass --format qcow2 (default) or --format raw
- Fix casing: the switch matches exactly "qcow2" and "raw"
- 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
- Only pass --format qcow2 or raw; omit the flag for the default
- Never copy format names from VirtualBox/VMware tooling
- Lowercase the format value before passing it
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
- the YAML is invalid, attempted to save the buffer as %#q but
- the YAML is invalid, saved the buffer as %#q: %w
- invalid port forward format %#q, expected HOST:GUEST or HOST
- invalid port forward format %#q, expected HOST:GUEST
- invalid value for number of cpus, must be >= 0
AI-assisted analysis of lima-vm/lima@dd909d0973 (2026-09-01).
Data as JSON: /api/errors/5aa236b51657976e.
Report an issue: GitHub.