]> git.proxmox.com Git - pve-docs.git/blobdiff - qm.1-synopsis.adoc
totp: fix copy/paste mistake
[pve-docs.git] / qm.1-synopsis.adoc
index d77a5d3ff7ba9e49c597739db39d981bf3e1961b..adc713eb8a7f2780f6d6214f257b3ceca34a236e 100644 (file)
 *qm* `<COMMAND> [ARGS] [OPTIONS]`
 
-*qm agent* `<vmid> <command>`
+*qm agent*
 
-Execute Qemu Guest Agent commands.
+An alias for 'qm guest cmd'.
 
-`<vmid>`: `<integer> (1 - N)` ::
+*qm cleanup* `<vmid> <clean-shutdown> <guest-requested>`
+
+Cleans up resources like tap devices, vgpus, etc. Called after a vm shuts
+down, crashes, etc.
+
+`<vmid>`: `<integer> (100 - 999999999)` ::
+
+The (unique) ID of the VM.
+
+`<clean-shutdown>`: `<boolean>` ::
+
+Indicates if qemu shutdown cleanly.
+
+`<guest-requested>`: `<boolean>` ::
+
+Indicates if the shutdown was requested by the guest or via qmp.
+
+*qm clone* `<vmid> <newid>` `[OPTIONS]`
+
+Create a copy of virtual machine/template.
+
+`<vmid>`: `<integer> (100 - 999999999)` ::
+
+The (unique) ID of the VM.
+
+`<newid>`: `<integer> (100 - 999999999)` ::
+
+VMID for the clone.
+
+`--bwlimit` `<integer> (0 - N)` ('default =' `clone limit from datacenter or storage config`)::
+
+Override I/O bandwidth limit (in KiB/s).
+
+`--description` `<string>` ::
+
+Description for the new VM.
+
+`--format` `<qcow2 | raw | vmdk>` ::
+
+Target format for file storage. Only valid for full clone.
+
+`--full` `<boolean>` ::
+
+Create a full copy of all disks. This is always done when you clone a normal VM. For VM templates, we try to create a linked clone by default.
+
+`--name` `<string>` ::
+
+Set a name for the new VM.
+
+`--pool` `<string>` ::
+
+Add the new VM to the specified pool.
+
+`--snapname` `<string>` ::
+
+The name of the snapshot.
+
+`--storage` `<storage ID>` ::
+
+Target storage for full clone.
+
+`--target` `<string>` ::
+
+Target node. Only allowed if the original VM is on shared storage.
+
+*qm cloudinit dump* `<vmid> <type>`
+
+Get automatically generated cloudinit config.
+
+`<vmid>`: `<integer> (100 - 999999999)` ::
+
+The (unique) ID of the VM.
+
+`<type>`: `<meta | network | user>` ::
+
+Config type.
+
+*qm cloudinit pending* `<vmid>`
+
+Get the cloudinit configuration with both current and pending values.
+
+`<vmid>`: `<integer> (100 - 999999999)` ::
+
+The (unique) ID of the VM.
+
+*qm cloudinit update* `<vmid>`
+
+Regenerate and change cloudinit config drive.
+
+`<vmid>`: `<integer> (100 - 999999999)` ::
+
+The (unique) ID of the VM.
+
+*qm config* `<vmid>` `[OPTIONS]`
+
+Get the virtual machine configuration with pending configuration changes
+applied. Set the 'current' parameter to get the current configuration
+instead.
+
+`<vmid>`: `<integer> (100 - 999999999)` ::
+
+The (unique) ID of the VM.
+
+`--current` `<boolean>` ('default =' `0`)::
+
+Get current values (instead of pending values).
+
+`--snapshot` `<string>` ::
+
+Fetch config values from given snapshot.
+
+*qm create* `<vmid>` `[OPTIONS]`
+
+Create or restore a virtual machine.
+
+`<vmid>`: `<integer> (100 - 999999999)` ::
+
+The (unique) ID of the VM.
+
+`--acpi` `<boolean>` ('default =' `1`)::
+
+Enable/disable ACPI.
+
+`--affinity` `<string>` ::
+
+List of host cores used to execute guest processes, for example: 0,5,8-11
+
+`--agent` `[enabled=]<1|0> [,freeze-fs-on-backup=<1|0>] [,fstrim_cloned_disks=<1|0>] [,type=<virtio|isa>]` ::
+
+Enable/disable communication with the QEMU Guest Agent and its properties.
+
+`--arch` `<aarch64 | x86_64>` ::
+
+Virtual processor architecture. Defaults to the host.
+
+`--archive` `<string>` ::
+
+The backup archive. Either the file system path to a .tar or .vma file (use '-' to pipe data from stdin) or a proxmox storage backup volume identifier.
+
+`--args` `<string>` ::
+
+Arbitrary arguments passed to kvm.
+
+`--audio0` `device=<ich9-intel-hda|intel-hda|AC97> [,driver=<spice|none>]` ::
+
+Configure a audio device, useful in combination with QXL/Spice.
+
+`--autostart` `<boolean>` ('default =' `0`)::
+
+Automatic restart after crash (currently ignored).
+
+`--balloon` `<integer> (0 - N)` ::
+
+Amount of target RAM for the VM in MiB. Using zero disables the ballon driver.
+
+`--bios` `<ovmf | seabios>` ('default =' `seabios`)::
+
+Select BIOS implementation.
+
+`--boot` `[[legacy=]<[acdn]{1,4}>] [,order=<device[;device...]>]` ::
+
+Specify guest boot order. Use the 'order=' sub-property as usage with no key or 'legacy=' is deprecated.
+
+`--bootdisk` `(ide|sata|scsi|virtio)\d+` ::
+
+Enable booting from specified disk. Deprecated: Use 'boot: order=foo;bar' instead.
+
+`--bwlimit` `<integer> (0 - N)` ('default =' `restore limit from datacenter or storage config`)::
+
+Override I/O bandwidth limit (in KiB/s).
+
+`--cdrom` `<volume>` ::
+
+This is an alias for option -ide2
+
+`--cicustom` `[meta=<volume>] [,network=<volume>] [,user=<volume>] [,vendor=<volume>]` ::
+
+cloud-init: Specify custom files to replace the automatically generated ones at start.
+
+`--cipassword` `<password>` ::
+
+cloud-init: Password to assign the user. Using this is generally not recommended. Use ssh keys instead. Also note that older cloud-init versions do not support hashed passwords.
+
+`--citype` `<configdrive2 | nocloud | opennebula>` ::
+
+Specifies the cloud-init configuration format. The default depends on the configured operating system type (`ostype`. We use the `nocloud` format for Linux, and `configdrive2` for windows.
+
+`--ciupgrade` `<boolean>` ('default =' `1`)::
+
+cloud-init: do an automatic package upgrade after the first boot.
+
+`--ciuser` `<string>` ::
+
+cloud-init: User name to change ssh keys and password for instead of the image's configured default user.
+
+`--cores` `<integer> (1 - N)` ('default =' `1`)::
+
+The number of cores per socket.
+
+`--cpu` `[[cputype=]<string>] [,flags=<+FLAG[;-FLAG...]>] [,hidden=<1|0>] [,hv-vendor-id=<vendor-id>] [,phys-bits=<8-64|host>] [,reported-model=<enum>]` ::
+
+Emulated CPU type.
+
+`--cpulimit` `<number> (0 - 128)` ('default =' `0`)::
+
+Limit of CPU usage.
+
+`--cpuunits` `<integer> (1 - 262144)` ('default =' `cgroup v1: 1024, cgroup v2: 100`)::
+
+CPU weight for a VM, will be clamped to [1, 10000] in cgroup v2.
+
+`--description` `<string>` ::
+
+Description for the VM. Shown in the web-interface VM's summary. This is saved as comment inside the configuration file.
+
+`--efidisk0` `[file=]<volume> [,efitype=<2m|4m>] [,format=<enum>] [,import-from=<source volume>] [,pre-enrolled-keys=<1|0>] [,size=<DiskSize>]` ::
+
+Configure a disk for storing EFI vars. Use the special syntax STORAGE_ID:SIZE_IN_GiB to allocate a new volume. Note that SIZE_IN_GiB is ignored here and that the default EFI vars are copied to the volume instead. Use STORAGE_ID:0 and the 'import-from' parameter to import from an existing volume.
+
+`--force` `<boolean>` ::
+
+Allow to overwrite existing VM.
++
+NOTE: Requires option(s): `archive`
+
+`--freeze` `<boolean>` ::
+
+Freeze CPU at startup (use 'c' monitor command to start execution).
+
+`--hookscript` `<string>` ::
+
+Script that will be executed during various steps in the vms lifetime.
+
+`--hostpci[n]` `[[host=]<HOSTPCIID[;HOSTPCIID2...]>] [,device-id=<hex id>] [,legacy-igd=<1|0>] [,mapping=<mapping-id>] [,mdev=<string>] [,pcie=<1|0>] [,rombar=<1|0>] [,romfile=<string>] [,sub-device-id=<hex id>] [,sub-vendor-id=<hex id>] [,vendor-id=<hex id>] [,x-vga=<1|0>]` ::
+
+Map host PCI devices into guest.
+
+`--hotplug` `<string>` ('default =' `network,disk,usb`)::
+
+Selectively enable hotplug features. This is a comma separated list of hotplug features: 'network', 'disk', 'cpu', 'memory', 'usb' and 'cloudinit'. Use '0' to disable hotplug completely. Using '1' as value is an alias for the default `network,disk,usb`. USB hotplugging is possible for guests with machine version >= 7.1 and ostype l26 or windows > 7.
+
+`--hugepages` `<1024 | 2 | any>` ::
+
+Enable/disable hugepages memory.
+
+`--ide[n]` `[file=]<volume> [,aio=<native|threads|io_uring>] [,backup=<1|0>] [,bps=<bps>] [,bps_max_length=<seconds>] [,bps_rd=<bps>] [,bps_rd_max_length=<seconds>] [,bps_wr=<bps>] [,bps_wr_max_length=<seconds>] [,cache=<enum>] [,cyls=<integer>] [,detect_zeroes=<1|0>] [,discard=<ignore|on>] [,format=<enum>] [,heads=<integer>] [,import-from=<source volume>] [,iops=<iops>] [,iops_max=<iops>] [,iops_max_length=<seconds>] [,iops_rd=<iops>] [,iops_rd_max=<iops>] [,iops_rd_max_length=<seconds>] [,iops_wr=<iops>] [,iops_wr_max=<iops>] [,iops_wr_max_length=<seconds>] [,mbps=<mbps>] [,mbps_max=<mbps>] [,mbps_rd=<mbps>] [,mbps_rd_max=<mbps>] [,mbps_wr=<mbps>] [,mbps_wr_max=<mbps>] [,media=<cdrom|disk>] [,model=<model>] [,replicate=<1|0>] [,rerror=<ignore|report|stop>] [,secs=<integer>] [,serial=<serial>] [,shared=<1|0>] [,size=<DiskSize>] [,snapshot=<1|0>] [,ssd=<1|0>] [,trans=<none|lba|auto>] [,werror=<enum>] [,wwn=<wwn>]` ::
+
+Use volume as IDE hard disk or CD-ROM (n is 0 to 3). Use the special syntax STORAGE_ID:SIZE_IN_GiB to allocate a new volume. Use STORAGE_ID:0 and the 'import-from' parameter to import from an existing volume.
+
+`--ipconfig[n]` `[gw=<GatewayIPv4>] [,gw6=<GatewayIPv6>] [,ip=<IPv4Format/CIDR>] [,ip6=<IPv6Format/CIDR>]` ::
+
+cloud-init: Specify IP addresses and gateways for the corresponding interface.
++
+IP addresses use CIDR notation, gateways are optional but need an IP of the same type specified.
++
+The special string 'dhcp' can be used for IP addresses to use DHCP, in which case no explicit
+gateway should be provided.
+For IPv6 the special string 'auto' can be used to use stateless autoconfiguration. This requires
+cloud-init 19.4 or newer.
++
+If cloud-init is enabled and neither an IPv4 nor an IPv6 address is specified, it defaults to using
+dhcp on IPv4.
+
+`--ivshmem` `size=<integer> [,name=<string>]` ::
+
+Inter-VM shared memory. Useful for direct communication between VMs, or to the host.
+
+`--keephugepages` `<boolean>` ('default =' `0`)::
+
+Use together with hugepages. If enabled, hugepages will not not be deleted after VM shutdown and can be used for subsequent starts.
+
+`--keyboard` `<da | de | de-ch | en-gb | en-us | es | fi | fr | fr-be | fr-ca | fr-ch | hu | is | it | ja | lt | mk | nl | no | pl | pt | pt-br | sl | sv | tr>` ::
+
+Keyboard layout for VNC server. This option is generally not required and is often better handled from within the guest OS.
+
+`--kvm` `<boolean>` ('default =' `1`)::
+
+Enable/disable KVM hardware virtualization.
+
+`--live-restore` `<boolean>` ::
+
+Start the VM immediately while importing or restoring in the background.
+
+`--localtime` `<boolean>` ::
+
+Set the real time clock (RTC) to local time. This is enabled by default if the `ostype` indicates a Microsoft Windows OS.
+
+`--lock` `<backup | clone | create | migrate | rollback | snapshot | snapshot-delete | suspended | suspending>` ::
+
+Lock/unlock the VM.
+
+`--machine` `[[type=]<machine type>] [,viommu=<intel|virtio>]` ::
+
+Specify the QEMU machine.
+
+`--memory` `[current=]<integer>` ::
+
+Memory properties.
+
+`--migrate_downtime` `<number> (0 - N)` ('default =' `0.1`)::
+
+Set maximum tolerated downtime (in seconds) for migrations.
+
+`--migrate_speed` `<integer> (0 - N)` ('default =' `0`)::
+
+Set maximum speed (in MB/s) for migrations. Value 0 is no limit.
+
+`--name` `<string>` ::
+
+Set a name for the VM. Only used on the configuration web interface.
+
+`--nameserver` `<string>` ::
+
+cloud-init: Sets DNS server IP address for a container. Create will automatically use the setting from the host if neither searchdomain nor nameserver are set.
+
+`--net[n]` `[model=]<enum> [,bridge=<bridge>] [,firewall=<1|0>] [,link_down=<1|0>] [,macaddr=<XX:XX:XX:XX:XX:XX>] [,mtu=<integer>] [,queues=<integer>] [,rate=<number>] [,tag=<integer>] [,trunks=<vlanid[;vlanid...]>] [,<model>=<macaddr>]` ::
+
+Specify network devices.
+
+`--numa` `<boolean>` ('default =' `0`)::
+
+Enable/disable NUMA.
+
+`--numa[n]` `cpus=<id[-id];...> [,hostnodes=<id[-id];...>] [,memory=<number>] [,policy=<preferred|bind|interleave>]` ::
+
+NUMA topology.
+
+`--onboot` `<boolean>` ('default =' `0`)::
+
+Specifies whether a VM will be started during system bootup.
+
+`--ostype` `<l24 | l26 | other | solaris | w2k | w2k3 | w2k8 | win10 | win11 | win7 | win8 | wvista | wxp>` ::
+
+Specify guest operating system.
+
+`--parallel[n]` `/dev/parport\d+|/dev/usb/lp\d+` ::
+
+Map host parallel devices (n is 0 to 2).
+
+`--pool` `<string>` ::
+
+Add the VM to the specified pool.
+
+`--protection` `<boolean>` ('default =' `0`)::
+
+Sets the protection flag of the VM. This will disable the remove VM and remove disk operations.
+
+`--reboot` `<boolean>` ('default =' `1`)::
+
+Allow reboot. If set to '0' the VM exit on reboot.
+
+`--rng0` `[source=]</dev/urandom|/dev/random|/dev/hwrng> [,max_bytes=<integer>] [,period=<integer>]` ::
+
+Configure a VirtIO-based Random Number Generator.
+
+`--sata[n]` `[file=]<volume> [,aio=<native|threads|io_uring>] [,backup=<1|0>] [,bps=<bps>] [,bps_max_length=<seconds>] [,bps_rd=<bps>] [,bps_rd_max_length=<seconds>] [,bps_wr=<bps>] [,bps_wr_max_length=<seconds>] [,cache=<enum>] [,cyls=<integer>] [,detect_zeroes=<1|0>] [,discard=<ignore|on>] [,format=<enum>] [,heads=<integer>] [,import-from=<source volume>] [,iops=<iops>] [,iops_max=<iops>] [,iops_max_length=<seconds>] [,iops_rd=<iops>] [,iops_rd_max=<iops>] [,iops_rd_max_length=<seconds>] [,iops_wr=<iops>] [,iops_wr_max=<iops>] [,iops_wr_max_length=<seconds>] [,mbps=<mbps>] [,mbps_max=<mbps>] [,mbps_rd=<mbps>] [,mbps_rd_max=<mbps>] [,mbps_wr=<mbps>] [,mbps_wr_max=<mbps>] [,media=<cdrom|disk>] [,replicate=<1|0>] [,rerror=<ignore|report|stop>] [,secs=<integer>] [,serial=<serial>] [,shared=<1|0>] [,size=<DiskSize>] [,snapshot=<1|0>] [,ssd=<1|0>] [,trans=<none|lba|auto>] [,werror=<enum>] [,wwn=<wwn>]` ::
+
+Use volume as SATA hard disk or CD-ROM (n is 0 to 5). Use the special syntax STORAGE_ID:SIZE_IN_GiB to allocate a new volume. Use STORAGE_ID:0 and the 'import-from' parameter to import from an existing volume.
+
+`--scsi[n]` `[file=]<volume> [,aio=<native|threads|io_uring>] [,backup=<1|0>] [,bps=<bps>] [,bps_max_length=<seconds>] [,bps_rd=<bps>] [,bps_rd_max_length=<seconds>] [,bps_wr=<bps>] [,bps_wr_max_length=<seconds>] [,cache=<enum>] [,cyls=<integer>] [,detect_zeroes=<1|0>] [,discard=<ignore|on>] [,format=<enum>] [,heads=<integer>] [,import-from=<source volume>] [,iops=<iops>] [,iops_max=<iops>] [,iops_max_length=<seconds>] [,iops_rd=<iops>] [,iops_rd_max=<iops>] [,iops_rd_max_length=<seconds>] [,iops_wr=<iops>] [,iops_wr_max=<iops>] [,iops_wr_max_length=<seconds>] [,iothread=<1|0>] [,mbps=<mbps>] [,mbps_max=<mbps>] [,mbps_rd=<mbps>] [,mbps_rd_max=<mbps>] [,mbps_wr=<mbps>] [,mbps_wr_max=<mbps>] [,media=<cdrom|disk>] [,product=<product>] [,queues=<integer>] [,replicate=<1|0>] [,rerror=<ignore|report|stop>] [,ro=<1|0>] [,scsiblock=<1|0>] [,secs=<integer>] [,serial=<serial>] [,shared=<1|0>] [,size=<DiskSize>] [,snapshot=<1|0>] [,ssd=<1|0>] [,trans=<none|lba|auto>] [,vendor=<vendor>] [,werror=<enum>] [,wwn=<wwn>]` ::
+
+Use volume as SCSI hard disk or CD-ROM (n is 0 to 30). Use the special syntax STORAGE_ID:SIZE_IN_GiB to allocate a new volume. Use STORAGE_ID:0 and the 'import-from' parameter to import from an existing volume.
+
+`--scsihw` `<lsi | lsi53c810 | megasas | pvscsi | virtio-scsi-pci | virtio-scsi-single>` ('default =' `lsi`)::
+
+SCSI controller model
+
+`--searchdomain` `<string>` ::
+
+cloud-init: Sets DNS search domains for a container. Create will automatically use the setting from the host if neither searchdomain nor nameserver are set.
+
+`--serial[n]` `(/dev/.+|socket)` ::
+
+Create a serial device inside the VM (n is 0 to 3)
+
+`--shares` `<integer> (0 - 50000)` ('default =' `1000`)::
+
+Amount of memory shares for auto-ballooning. The larger the number is, the more memory this VM gets. Number is relative to weights of all other running VMs. Using zero disables auto-ballooning. Auto-ballooning is done by pvestatd.
+
+`--smbios1` `[base64=<1|0>] [,family=<Base64 encoded string>] [,manufacturer=<Base64 encoded string>] [,product=<Base64 encoded string>] [,serial=<Base64 encoded string>] [,sku=<Base64 encoded string>] [,uuid=<UUID>] [,version=<Base64 encoded string>]` ::
+
+Specify SMBIOS type 1 fields.
+
+`--smp` `<integer> (1 - N)` ('default =' `1`)::
+
+The number of CPUs. Please use option -sockets instead.
+
+`--sockets` `<integer> (1 - N)` ('default =' `1`)::
+
+The number of CPU sockets.
+
+`--spice_enhancements` `[foldersharing=<1|0>] [,videostreaming=<off|all|filter>]` ::
+
+Configure additional enhancements for SPICE.
+
+`--sshkeys` `<filepath>` ::
+
+cloud-init: Setup public SSH keys (one key per line, OpenSSH format).
+
+`--start` `<boolean>` ('default =' `0`)::
+
+Start VM after it was created successfully.
+
+`--startdate` `(now | YYYY-MM-DD | YYYY-MM-DDTHH:MM:SS)` ('default =' `now`)::
+
+Set the initial date of the real time clock. Valid format for date are:'now' or '2006-06-17T16:01:21' or '2006-06-17'.
+
+`--startup` `[[order=]\d+] [,up=\d+] [,down=\d+] ` ::
+
+Startup and shutdown behavior. Order is a non-negative number defining the general startup order. Shutdown in done with reverse ordering. Additionally you can set the 'up' or 'down' delay in seconds, which specifies a delay to wait before the next VM is started or stopped.
+
+`--storage` `<storage ID>` ::
+
+Default storage.
+
+`--tablet` `<boolean>` ('default =' `1`)::
+
+Enable/disable the USB tablet device.
+
+`--tags` `<string>` ::
+
+Tags of the VM. This is only meta information.
+
+`--tdf` `<boolean>` ('default =' `0`)::
+
+Enable/disable time drift fix.
+
+`--template` `<boolean>` ('default =' `0`)::
+
+Enable/disable Template.
+
+`--tpmstate0` `[file=]<volume> [,import-from=<source volume>] [,size=<DiskSize>] [,version=<v1.2|v2.0>]` ::
+
+Configure a Disk for storing TPM state. The format is fixed to 'raw'. Use the special syntax STORAGE_ID:SIZE_IN_GiB to allocate a new volume. Note that SIZE_IN_GiB is ignored here and 4 MiB will be used instead. Use STORAGE_ID:0 and the 'import-from' parameter to import from an existing volume.
+
+`--unique` `<boolean>` ::
+
+Assign a unique random ethernet address.
++
+NOTE: Requires option(s): `archive`
+
+`--unused[n]` `[file=]<volume>` ::
+
+Reference to unused volumes. This is used internally, and should not be modified manually.
+
+`--usb[n]` `[[host=]<HOSTUSBDEVICE|spice>] [,mapping=<mapping-id>] [,usb3=<1|0>]` ::
+
+Configure an USB device (n is 0 to 4, for machine version >= 7.1 and ostype l26 or windows > 7, n can be up to 14).
+
+`--vcpus` `<integer> (1 - N)` ('default =' `0`)::
+
+Number of hotplugged vcpus.
+
+`--vga` `[[type=]<enum>] [,clipboard=<vnc>] [,memory=<integer>]` ::
+
+Configure the VGA hardware.
+
+`--virtio[n]` `[file=]<volume> [,aio=<native|threads|io_uring>] [,backup=<1|0>] [,bps=<bps>] [,bps_max_length=<seconds>] [,bps_rd=<bps>] [,bps_rd_max_length=<seconds>] [,bps_wr=<bps>] [,bps_wr_max_length=<seconds>] [,cache=<enum>] [,cyls=<integer>] [,detect_zeroes=<1|0>] [,discard=<ignore|on>] [,format=<enum>] [,heads=<integer>] [,import-from=<source volume>] [,iops=<iops>] [,iops_max=<iops>] [,iops_max_length=<seconds>] [,iops_rd=<iops>] [,iops_rd_max=<iops>] [,iops_rd_max_length=<seconds>] [,iops_wr=<iops>] [,iops_wr_max=<iops>] [,iops_wr_max_length=<seconds>] [,iothread=<1|0>] [,mbps=<mbps>] [,mbps_max=<mbps>] [,mbps_rd=<mbps>] [,mbps_rd_max=<mbps>] [,mbps_wr=<mbps>] [,mbps_wr_max=<mbps>] [,media=<cdrom|disk>] [,replicate=<1|0>] [,rerror=<ignore|report|stop>] [,ro=<1|0>] [,secs=<integer>] [,serial=<serial>] [,shared=<1|0>] [,size=<DiskSize>] [,snapshot=<1|0>] [,trans=<none|lba|auto>] [,werror=<enum>]` ::
+
+Use volume as VIRTIO hard disk (n is 0 to 15). Use the special syntax STORAGE_ID:SIZE_IN_GiB to allocate a new volume. Use STORAGE_ID:0 and the 'import-from' parameter to import from an existing volume.
+
+`--vmgenid` `<UUID>` ('default =' `1 (autogenerated)`)::
+
+Set VM Generation ID. Use '1' to autogenerate on create or update, pass '0' to disable explicitly.
+
+`--vmstatestorage` `<storage ID>` ::
+
+Default storage for VM state volumes/files.
+
+`--watchdog` `[[model=]<i6300esb|ib700>] [,action=<enum>]` ::
+
+Create a virtual hardware watchdog device.
+
+*qm delsnapshot* `<vmid> <snapname>` `[OPTIONS]`
+
+Delete a VM snapshot.
+
+`<vmid>`: `<integer> (100 - 999999999)` ::
+
+The (unique) ID of the VM.
+
+`<snapname>`: `<string>` ::
+
+The name of the snapshot.
+
+`--force` `<boolean>` ::
+
+For removal from config file, even if removing disk snapshots fails.
+
+*qm destroy* `<vmid>` `[OPTIONS]`
+
+Destroy the VM and  all used/owned volumes. Removes any VM specific
+permissions and firewall rules
+
+`<vmid>`: `<integer> (100 - 999999999)` ::
+
+The (unique) ID of the VM.
+
+`--destroy-unreferenced-disks` `<boolean>` ('default =' `0`)::
+
+If set, destroy additionally all disks not referenced in the config but with a matching VMID from all enabled storages.
+
+`--purge` `<boolean>` ::
+
+Remove VMID from configurations, like backup & replication jobs and HA.
+
+`--skiplock` `<boolean>` ::
+
+Ignore locks - only root is allowed to use this option.
+
+*qm disk import* `<vmid> <source> <storage>` `[OPTIONS]`
+
+Import an external disk image as an unused disk in a VM. The
+ image format has to be supported by qemu-img(1).
+
+`<vmid>`: `<integer> (100 - 999999999)` ::
+
+The (unique) ID of the VM.
+
+`<source>`: `<string>` ::
+
+Path to the disk image to import
+
+`<storage>`: `<storage ID>` ::
+
+Target storage ID
+
+`--format` `<qcow2 | raw | vmdk>` ::
+
+Target format
+
+*qm disk move* `<vmid> <disk> [<storage>]` `[OPTIONS]`
+
+Move volume to different storage or to a different VM.
+
+`<vmid>`: `<integer> (100 - 999999999)` ::
+
+The (unique) ID of the VM.
+
+`<disk>`: `<efidisk0 | ide0 | ide1 | ide2 | ide3 | sata0 | sata1 | sata2 | sata3 | sata4 | sata5 | scsi0 | scsi1 | scsi10 | scsi11 | scsi12 | scsi13 | scsi14 | scsi15 | scsi16 | scsi17 | scsi18 | scsi19 | scsi2 | scsi20 | scsi21 | scsi22 | scsi23 | scsi24 | scsi25 | scsi26 | scsi27 | scsi28 | scsi29 | scsi3 | scsi30 | scsi4 | scsi5 | scsi6 | scsi7 | scsi8 | scsi9 | tpmstate0 | unused0 | unused1 | unused10 | unused100 | unused101 | unused102 | unused103 | unused104 | unused105 | unused106 | unused107 | unused108 | unused109 | unused11 | unused110 | unused111 | unused112 | unused113 | unused114 | unused115 | unused116 | unused117 | unused118 | unused119 | unused12 | unused120 | unused121 | unused122 | unused123 | unused124 | unused125 | unused126 | unused127 | unused128 | unused129 | unused13 | unused130 | unused131 | unused132 | unused133 | unused134 | unused135 | unused136 | unused137 | unused138 | unused139 | unused14 | unused140 | unused141 | unused142 | unused143 | unused144 | unused145 | unused146 | unused147 | unused148 | unused149 | unused15 | unused150 | unused151 | unused152 | unused153 | unused154 | unused155 | unused156 | unused157 | unused158 | unused159 | unused16 | unused160 | unused161 | unused162 | unused163 | unused164 | unused165 | unused166 | unused167 | unused168 | unused169 | unused17 | unused170 | unused171 | unused172 | unused173 | unused174 | unused175 | unused176 | unused177 | unused178 | unused179 | unused18 | unused180 | unused181 | unused182 | unused183 | unused184 | unused185 | unused186 | unused187 | unused188 | unused189 | unused19 | unused190 | unused191 | unused192 | unused193 | unused194 | unused195 | unused196 | unused197 | unused198 | unused199 | unused2 | unused20 | unused200 | unused201 | unused202 | unused203 | unused204 | unused205 | unused206 | unused207 | unused208 | unused209 | unused21 | unused210 | unused211 | unused212 | unused213 | unused214 | unused215 | unused216 | unused217 | unused218 | unused219 | unused22 | unused220 | unused221 | unused222 | unused223 | unused224 | unused225 | unused226 | unused227 | unused228 | unused229 | unused23 | unused230 | unused231 | unused232 | unused233 | unused234 | unused235 | unused236 | unused237 | unused238 | unused239 | unused24 | unused240 | unused241 | unused242 | unused243 | unused244 | unused245 | unused246 | unused247 | unused248 | unused249 | unused25 | unused250 | unused251 | unused252 | unused253 | unused254 | unused255 | unused26 | unused27 | unused28 | unused29 | unused3 | unused30 | unused31 | unused32 | unused33 | unused34 | unused35 | unused36 | unused37 | unused38 | unused39 | unused4 | unused40 | unused41 | unused42 | unused43 | unused44 | unused45 | unused46 | unused47 | unused48 | unused49 | unused5 | unused50 | unused51 | unused52 | unused53 | unused54 | unused55 | unused56 | unused57 | unused58 | unused59 | unused6 | unused60 | unused61 | unused62 | unused63 | unused64 | unused65 | unused66 | unused67 | unused68 | unused69 | unused7 | unused70 | unused71 | unused72 | unused73 | unused74 | unused75 | unused76 | unused77 | unused78 | unused79 | unused8 | unused80 | unused81 | unused82 | unused83 | unused84 | unused85 | unused86 | unused87 | unused88 | unused89 | unused9 | unused90 | unused91 | unused92 | unused93 | unused94 | unused95 | unused96 | unused97 | unused98 | unused99 | virtio0 | virtio1 | virtio10 | virtio11 | virtio12 | virtio13 | virtio14 | virtio15 | virtio2 | virtio3 | virtio4 | virtio5 | virtio6 | virtio7 | virtio8 | virtio9>` ::
+
+The disk you want to move.
+
+`<storage>`: `<storage ID>` ::
+
+Target storage.
+
+`--bwlimit` `<integer> (0 - N)` ('default =' `move limit from datacenter or storage config`)::
+
+Override I/O bandwidth limit (in KiB/s).
+
+`--delete` `<boolean>` ('default =' `0`)::
+
+Delete the original disk after successful copy. By default the original disk is kept as unused disk.
+
+`--digest` `<string>` ::
+
+Prevent changes if current configuration file has different SHA1"
+                   ." digest. This can be used to prevent concurrent modifications.
+
+`--format` `<qcow2 | raw | vmdk>` ::
+
+Target Format.
+
+`--target-digest` `<string>` ::
+
+Prevent changes if the current config file of the target VM has a"
+                   ." different SHA1 digest. This can be used to detect concurrent modifications.
+
+`--target-disk` `<efidisk0 | ide0 | ide1 | ide2 | ide3 | sata0 | sata1 | sata2 | sata3 | sata4 | sata5 | scsi0 | scsi1 | scsi10 | scsi11 | scsi12 | scsi13 | scsi14 | scsi15 | scsi16 | scsi17 | scsi18 | scsi19 | scsi2 | scsi20 | scsi21 | scsi22 | scsi23 | scsi24 | scsi25 | scsi26 | scsi27 | scsi28 | scsi29 | scsi3 | scsi30 | scsi4 | scsi5 | scsi6 | scsi7 | scsi8 | scsi9 | tpmstate0 | unused0 | unused1 | unused10 | unused100 | unused101 | unused102 | unused103 | unused104 | unused105 | unused106 | unused107 | unused108 | unused109 | unused11 | unused110 | unused111 | unused112 | unused113 | unused114 | unused115 | unused116 | unused117 | unused118 | unused119 | unused12 | unused120 | unused121 | unused122 | unused123 | unused124 | unused125 | unused126 | unused127 | unused128 | unused129 | unused13 | unused130 | unused131 | unused132 | unused133 | unused134 | unused135 | unused136 | unused137 | unused138 | unused139 | unused14 | unused140 | unused141 | unused142 | unused143 | unused144 | unused145 | unused146 | unused147 | unused148 | unused149 | unused15 | unused150 | unused151 | unused152 | unused153 | unused154 | unused155 | unused156 | unused157 | unused158 | unused159 | unused16 | unused160 | unused161 | unused162 | unused163 | unused164 | unused165 | unused166 | unused167 | unused168 | unused169 | unused17 | unused170 | unused171 | unused172 | unused173 | unused174 | unused175 | unused176 | unused177 | unused178 | unused179 | unused18 | unused180 | unused181 | unused182 | unused183 | unused184 | unused185 | unused186 | unused187 | unused188 | unused189 | unused19 | unused190 | unused191 | unused192 | unused193 | unused194 | unused195 | unused196 | unused197 | unused198 | unused199 | unused2 | unused20 | unused200 | unused201 | unused202 | unused203 | unused204 | unused205 | unused206 | unused207 | unused208 | unused209 | unused21 | unused210 | unused211 | unused212 | unused213 | unused214 | unused215 | unused216 | unused217 | unused218 | unused219 | unused22 | unused220 | unused221 | unused222 | unused223 | unused224 | unused225 | unused226 | unused227 | unused228 | unused229 | unused23 | unused230 | unused231 | unused232 | unused233 | unused234 | unused235 | unused236 | unused237 | unused238 | unused239 | unused24 | unused240 | unused241 | unused242 | unused243 | unused244 | unused245 | unused246 | unused247 | unused248 | unused249 | unused25 | unused250 | unused251 | unused252 | unused253 | unused254 | unused255 | unused26 | unused27 | unused28 | unused29 | unused3 | unused30 | unused31 | unused32 | unused33 | unused34 | unused35 | unused36 | unused37 | unused38 | unused39 | unused4 | unused40 | unused41 | unused42 | unused43 | unused44 | unused45 | unused46 | unused47 | unused48 | unused49 | unused5 | unused50 | unused51 | unused52 | unused53 | unused54 | unused55 | unused56 | unused57 | unused58 | unused59 | unused6 | unused60 | unused61 | unused62 | unused63 | unused64 | unused65 | unused66 | unused67 | unused68 | unused69 | unused7 | unused70 | unused71 | unused72 | unused73 | unused74 | unused75 | unused76 | unused77 | unused78 | unused79 | unused8 | unused80 | unused81 | unused82 | unused83 | unused84 | unused85 | unused86 | unused87 | unused88 | unused89 | unused9 | unused90 | unused91 | unused92 | unused93 | unused94 | unused95 | unused96 | unused97 | unused98 | unused99 | virtio0 | virtio1 | virtio10 | virtio11 | virtio12 | virtio13 | virtio14 | virtio15 | virtio2 | virtio3 | virtio4 | virtio5 | virtio6 | virtio7 | virtio8 | virtio9>` ::
+
+The config key the disk will be moved to on the target VM (for example, ide0 or scsi1). Default is the source disk key.
+
+`--target-vmid` `<integer> (100 - 999999999)` ::
+
+The (unique) ID of the VM.
+
+*qm disk rescan* `[OPTIONS]`
+
+Rescan all storages and update disk sizes and unused disk images.
+
+`--dryrun` `<boolean>` ('default =' `0`)::
+
+Do not actually write changes out to VM config(s).
+
+`--vmid` `<integer> (100 - 999999999)` ::
+
+The (unique) ID of the VM.
+
+*qm disk resize* `<vmid> <disk> <size>` `[OPTIONS]`
+
+Extend volume size.
+
+`<vmid>`: `<integer> (100 - 999999999)` ::
+
+The (unique) ID of the VM.
+
+`<disk>`: `<efidisk0 | ide0 | ide1 | ide2 | ide3 | sata0 | sata1 | sata2 | sata3 | sata4 | sata5 | scsi0 | scsi1 | scsi10 | scsi11 | scsi12 | scsi13 | scsi14 | scsi15 | scsi16 | scsi17 | scsi18 | scsi19 | scsi2 | scsi20 | scsi21 | scsi22 | scsi23 | scsi24 | scsi25 | scsi26 | scsi27 | scsi28 | scsi29 | scsi3 | scsi30 | scsi4 | scsi5 | scsi6 | scsi7 | scsi8 | scsi9 | tpmstate0 | virtio0 | virtio1 | virtio10 | virtio11 | virtio12 | virtio13 | virtio14 | virtio15 | virtio2 | virtio3 | virtio4 | virtio5 | virtio6 | virtio7 | virtio8 | virtio9>` ::
+
+The disk you want to resize.
+
+`<size>`: `\+?\d+(\.\d+)?[KMGT]?` ::
+
+The new size. With the `+` sign the value is added to the actual size of the volume and without it, the value is taken as an absolute one. Shrinking disk size is not supported.
+
+`--digest` `<string>` ::
+
+Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.
+
+`--skiplock` `<boolean>` ::
+
+Ignore locks - only root is allowed to use this option.
+
+*qm disk unlink* `<vmid> --idlist <string>` `[OPTIONS]`
+
+Unlink/delete disk images.
+
+`<vmid>`: `<integer> (100 - 999999999)` ::
+
+The (unique) ID of the VM.
+
+`--force` `<boolean>` ::
+
+Force physical removal. Without this, we simple remove the disk from the config file and create an additional configuration entry called 'unused[n]', which contains the volume ID. Unlink of unused[n] always cause physical removal.
+
+`--idlist` `<string>` ::
+
+A list of disk IDs you want to delete.
+
+*qm guest cmd* `<vmid> <command>`
+
+Execute QEMU Guest Agent commands.
+
+`<vmid>`: `<integer> (100 - 999999999)` ::
 
 The (unique) ID of the VM.
 
@@ -12,123 +645,147 @@ The (unique) ID of the VM.
 
 The QGA command.
 
-*qm clone* `<vmid> <newid>` `[OPTIONS]`
+*qm guest exec* `<vmid> [<extra-args>]` `[OPTIONS]`
 
-Create a copy of virtual machine/template.
+Executes the given command via the guest agent
 
-`<vmid>`: `<integer> (1 - N)` ::
+`<vmid>`: `<integer> (100 - 999999999)` ::
 
 The (unique) ID of the VM.
 
-`<newid>`: `<integer> (1 - N)` ::
+`<extra-args>`: `<array>` ::
 
-VMID for the clone.
+Extra arguments as array
 
-`--description` `<string>` ::
+`--pass-stdin` `<boolean>` ('default =' `0`)::
 
-Description for the new VM.
+When set, read STDIN until EOF and forward to guest agent via 'input-data' (usually treated as STDIN to process launched by guest agent). Allows maximal 1 MiB.
 
-`--format` `<qcow2 | raw | vmdk>` ::
+`--synchronous` `<boolean>` ('default =' `1`)::
 
-Target format for file storage. Only valid for full clone.
+If set to off, returns the pid immediately instead of waiting for the commmand to finish or the timeout.
 
-`--full` `<boolean>` ::
+`--timeout` `<integer> (0 - N)` ('default =' `30`)::
 
-Create a full copy of all disks. This is always done when you clone a normal VM. For VM templates, we try to create a linked clone by default.
+The maximum time to wait synchronously for the command to finish. If reached, the pid gets returned. Set to 0 to deactivate
 
-`--name` `<string>` ::
+*qm guest exec-status* `<vmid> <pid>`
 
-Set a name for the new VM.
+Gets the status of the given pid started by the guest-agent
 
-`--pool` `<string>` ::
+`<vmid>`: `<integer> (100 - 999999999)` ::
 
-Add the new VM to the specified pool.
+The (unique) ID of the VM.
 
-`--snapname` `<string>` ::
+`<pid>`: `<integer>` ::
 
-The name of the snapshot.
+The PID to query
 
-`--storage` `<string>` ::
+*qm guest passwd* `<vmid> <username>` `[OPTIONS]`
 
-Target storage for full clone.
+Sets the password for the given user to the given password
 
-`--target` `<string>` ::
+`<vmid>`: `<integer> (100 - 999999999)` ::
 
-Target node. Only allowed if the original VM is on shared storage.
+The (unique) ID of the VM.
 
-*qm config* `<vmid>` `[OPTIONS]`
+`<username>`: `<string>` ::
 
-Get current virtual machine configuration. This does not include pending
-configuration changes (see 'pending' API).
+The user to set the password for.
 
-`<vmid>`: `<integer> (1 - N)` ::
+`--crypted` `<boolean>` ('default =' `0`)::
 
-The (unique) ID of the VM.
+set to 1 if the password has already been passed through crypt()
 
-`--current` `<boolean>` ('default =' `0`)::
+*qm help* `[OPTIONS]`
 
-Get current values (instead of pending values).
+Get help about specified command.
 
-*qm create* `<vmid>` `[OPTIONS]`
+`--extra-args` `<array>` ::
 
-Create or restore a virtual machine.
+Shows help for a specific command
+
+`--verbose` `<boolean>` ::
+
+Verbose output format.
+
+*qm import* `<vmid> <source> --storage <string>` `[OPTIONS]`
 
-`<vmid>`: `<integer> (1 - N)` ::
+Import a foreign virtual guest from a supported import source, such as an
+ESXi storage.
+
+`<vmid>`: `<integer> (100 - 999999999)` ::
 
 The (unique) ID of the VM.
 
+`<source>`: `<string>` ::
+
+The import source volume id.
+
 `--acpi` `<boolean>` ('default =' `1`)::
 
 Enable/disable ACPI.
 
-`--agent` `<boolean>` ('default =' `0`)::
+`--affinity` `<string>` ::
 
-Enable/disable Qemu GuestAgent.
+List of host cores used to execute guest processes, for example: 0,5,8-11
 
-`--archive` `<string>` ::
+`--agent` `[enabled=]<1|0> [,freeze-fs-on-backup=<1|0>] [,fstrim_cloned_disks=<1|0>] [,type=<virtio|isa>]` ::
+
+Enable/disable communication with the QEMU Guest Agent and its properties.
 
-The backup file.
+`--arch` `<aarch64 | x86_64>` ::
+
+Virtual processor architecture. Defaults to the host.
 
 `--args` `<string>` ::
 
 Arbitrary arguments passed to kvm.
 
+`--audio0` `device=<ich9-intel-hda|intel-hda|AC97> [,driver=<spice|none>]` ::
+
+Configure a audio device, useful in combination with QXL/Spice.
+
 `--autostart` `<boolean>` ('default =' `0`)::
 
 Automatic restart after crash (currently ignored).
 
 `--balloon` `<integer> (0 - N)` ::
 
-Amount of target RAM for the VM in MB. Using zero disables the ballon driver.
+Amount of target RAM for the VM in MiB. Using zero disables the ballon driver.
 
 `--bios` `<ovmf | seabios>` ('default =' `seabios`)::
 
 Select BIOS implementation.
 
-`--boot` `[acdn]{1,4}` ('default =' `cdn`)::
+`--boot` `[[legacy=]<[acdn]{1,4}>] [,order=<device[;device...]>]` ::
 
-Boot on floppy (a), hard disk (c), CD-ROM (d), or network (n).
+Specify guest boot order. Use the 'order=' sub-property as usage with no key or 'legacy=' is deprecated.
 
 `--bootdisk` `(ide|sata|scsi|virtio)\d+` ::
 
-Enable booting from specified disk.
-
-`--bwlimit` `<integer> (0 - N)` ::
-
-Override i/o bandwidth limit (in KiB/s).
+Enable booting from specified disk. Deprecated: Use 'boot: order=foo;bar' instead.
 
 `--cdrom` `<volume>` ::
 
 This is an alias for option -ide2
 
-`--cipassword` `<password>` ::
+`--cicustom` `[meta=<volume>] [,network=<volume>] [,user=<volume>] [,vendor=<volume>]` ::
+
+cloud-init: Specify custom files to replace the automatically generated ones at start.
+
+`--cipassword` `<string>` ::
 
 cloud-init: Password to assign the user. Using this is generally not recommended. Use ssh keys instead. Also note that older cloud-init versions do not support hashed passwords.
 
-`--citype` `<configdrive2 | nocloud>` ::
+`--citype` `<configdrive2 | nocloud | opennebula>` ::
 
 Specifies the cloud-init configuration format. The default depends on the configured operating system type (`ostype`. We use the `nocloud` format for Linux, and `configdrive2` for windows.
 
+`--ciupgrade` `<boolean>` ('default =' `1`)::
+
+cloud-init: do an automatic package upgrade after the first boot.
+
 `--ciuser` `<string>` ::
 
 cloud-init: User name to change ssh keys and password for instead of the image's configured default user.
@@ -137,7 +794,7 @@ cloud-init: User name to change ssh keys and password for instead of the image's
 
 The number of cores per socket.
 
-`--cpu` `[cputype=]<enum> [,flags=<+FLAG[;-FLAG...]>] [,hidden=<1|0>]` ::
+`--cpu` `[[cputype=]<string>] [,flags=<+FLAG[;-FLAG...]>] [,hidden=<1|0>] [,hv-vendor-id=<vendor-id>] [,phys-bits=<8-64|host>] [,reported-model=<enum>]` ::
 
 Emulated CPU type.
 
@@ -145,41 +802,51 @@ Emulated CPU type.
 
 Limit of CPU usage.
 
-`--cpuunits` `<integer> (2 - 262144)` ('default =' `1024`)::
+`--cpuunits` `<integer> (1 - 262144)` ('default =' `cgroup v1: 1024, cgroup v2: 100`)::
+
+CPU weight for a VM, will be clamped to [1, 10000] in cgroup v2.
+
+`--delete` `<string>` ::
 
-CPU weight for a VM.
+A list of settings you want to delete.
 
 `--description` `<string>` ::
 
-Description for the VM. Only used on the configuration web interface. This is saved as comment inside the configuration file.
+Description for the VM. Shown in the web-interface VM's summary. This is saved as comment inside the configuration file.
 
-`--efidisk0` `[file=]<volume> [,format=<enum>] [,size=<DiskSize>]` ::
+`--dryrun` `<boolean>` ('default =' `0`)::
 
-Configure a Disk for storing EFI vars
+Show the create command and exit without doing anything.
 
-`--force` `<boolean>` ::
+`--efidisk0` `[file=]<volume> [,efitype=<2m|4m>] [,format=<enum>] [,pre-enrolled-keys=<1|0>] [,size=<DiskSize>]` ::
 
-Allow to overwrite existing VM.
-+
-NOTE: Requires option(s): `archive`
+Configure a disk for storing EFI vars.
+
+`--format` `<qcow2 | raw | vmdk>` ::
+
+Target format
 
 `--freeze` `<boolean>` ::
 
 Freeze CPU at startup (use 'c' monitor command to start execution).
 
-`--hostpci[n]` `[host=]<HOSTPCIID[;HOSTPCIID2...]> [,pcie=<1|0>] [,rombar=<1|0>] [,romfile=<string>] [,x-vga=<1|0>]` ::
+`--hookscript` `<string>` ::
+
+Script that will be executed during various steps in the vms lifetime.
+
+`--hostpci[n]` `[[host=]<HOSTPCIID[;HOSTPCIID2...]>] [,device-id=<hex id>] [,legacy-igd=<1|0>] [,mapping=<mapping-id>] [,mdev=<string>] [,pcie=<1|0>] [,rombar=<1|0>] [,romfile=<string>] [,sub-device-id=<hex id>] [,sub-vendor-id=<hex id>] [,vendor-id=<hex id>] [,x-vga=<1|0>]` ::
 
 Map host PCI devices into guest.
 
 `--hotplug` `<string>` ('default =' `network,disk,usb`)::
 
-Selectively enable hotplug features. This is a comma separated list of hotplug features: 'network', 'disk', 'cpu', 'memory' and 'usb'. Use '0' to disable hotplug completely. Value '1' is an alias for the default 'network,disk,usb'.
+Selectively enable hotplug features. This is a comma separated list of hotplug features: 'network', 'disk', 'cpu', 'memory', 'usb' and 'cloudinit'. Use '0' to disable hotplug completely. Using '1' as value is an alias for the default `network,disk,usb`. USB hotplugging is possible for guests with machine version >= 7.1 and ostype l26 or windows > 7.
 
 `--hugepages` `<1024 | 2 | any>` ::
 
 Enable/disable hugepages memory.
 
-`--ide[n]` `[file=]<volume> [,aio=<native|threads>] [,backup=<1|0>] [,bps=<bps>] [,bps_max_length=<seconds>] [,bps_rd=<bps>] [,bps_rd_max_length=<seconds>] [,bps_wr=<bps>] [,bps_wr_max_length=<seconds>] [,cache=<enum>] [,cyls=<integer>] [,detect_zeroes=<1|0>] [,discard=<ignore|on>] [,format=<enum>] [,heads=<integer>] [,iops=<iops>] [,iops_max=<iops>] [,iops_max_length=<seconds>] [,iops_rd=<iops>] [,iops_rd_max=<iops>] [,iops_rd_max_length=<seconds>] [,iops_wr=<iops>] [,iops_wr_max=<iops>] [,iops_wr_max_length=<seconds>] [,mbps=<mbps>] [,mbps_max=<mbps>] [,mbps_rd=<mbps>] [,mbps_rd_max=<mbps>] [,mbps_wr=<mbps>] [,mbps_wr_max=<mbps>] [,media=<cdrom|disk>] [,model=<model>] [,replicate=<1|0>] [,rerror=<ignore|report|stop>] [,secs=<integer>] [,serial=<serial>] [,shared=<1|0>] [,size=<DiskSize>] [,snapshot=<1|0>] [,trans=<none|lba|auto>] [,werror=<enum>]` ::
+`--ide[n]` `[file=]<volume> [,aio=<native|threads|io_uring>] [,backup=<1|0>] [,bps=<bps>] [,bps_max_length=<seconds>] [,bps_rd=<bps>] [,bps_rd_max_length=<seconds>] [,bps_wr=<bps>] [,bps_wr_max_length=<seconds>] [,cache=<enum>] [,cyls=<integer>] [,detect_zeroes=<1|0>] [,discard=<ignore|on>] [,format=<enum>] [,heads=<integer>] [,iops=<iops>] [,iops_max=<iops>] [,iops_max_length=<seconds>] [,iops_rd=<iops>] [,iops_rd_max=<iops>] [,iops_rd_max_length=<seconds>] [,iops_wr=<iops>] [,iops_wr_max=<iops>] [,iops_wr_max_length=<seconds>] [,mbps=<mbps>] [,mbps_max=<mbps>] [,mbps_rd=<mbps>] [,mbps_rd_max=<mbps>] [,mbps_wr=<mbps>] [,mbps_wr_max=<mbps>] [,media=<cdrom|disk>] [,model=<model>] [,replicate=<1|0>] [,rerror=<ignore|report|stop>] [,secs=<integer>] [,serial=<serial>] [,shared=<1|0>] [,size=<DiskSize>] [,snapshot=<1|0>] [,ssd=<1|0>] [,trans=<none|lba|auto>] [,werror=<enum>] [,wwn=<wwn>]` ::
 
 Use volume as IDE hard disk or CD-ROM (n is 0 to 3).
 
@@ -189,34 +856,49 @@ cloud-init: Specify IP addresses and gateways for the corresponding interface.
 +
 IP addresses use CIDR notation, gateways are optional but need an IP of the same type specified.
 +
-The special string 'dhcp' can be used for IP addresses to use DHCP, in which case no explicit gateway should be provided.
-For IPv6 the special string 'auto' can be used to use stateless autoconfiguration.
+The special string 'dhcp' can be used for IP addresses to use DHCP, in which case no explicit
+gateway should be provided.
+For IPv6 the special string 'auto' can be used to use stateless autoconfiguration. This requires
+cloud-init 19.4 or newer.
 +
-If cloud-init is enabled and neither an IPv4 nor an IPv6 address is specified, it defaults to using dhcp on IPv4.
+If cloud-init is enabled and neither an IPv4 nor an IPv6 address is specified, it defaults to using
+dhcp on IPv4.
+
+`--ivshmem` `size=<integer> [,name=<string>]` ::
+
+Inter-VM shared memory. Useful for direct communication between VMs, or to the host.
+
+`--keephugepages` `<boolean>` ('default =' `0`)::
+
+Use together with hugepages. If enabled, hugepages will not not be deleted after VM shutdown and can be used for subsequent starts.
 
 `--keyboard` `<da | de | de-ch | en-gb | en-us | es | fi | fr | fr-be | fr-ca | fr-ch | hu | is | it | ja | lt | mk | nl | no | pl | pt | pt-br | sl | sv | tr>` ::
 
-Keybord layout for vnc server. Default is read from the '/etc/pve/datacenter.cfg' configuration file.It should not be necessary to set it.
+Keyboard layout for VNC server. This option is generally not required and is often better handled from within the guest OS.
 
 `--kvm` `<boolean>` ('default =' `1`)::
 
 Enable/disable KVM hardware virtualization.
 
+`--live-import` `<boolean>` ('default =' `0`)::
+
+Immediately start the VM and copy the data in the background.
+
 `--localtime` `<boolean>` ::
 
-Set the real time clock to local time. This is enabled by default if ostype indicates a Microsoft OS.
+Set the real time clock (RTC) to local time. This is enabled by default if the `ostype` indicates a Microsoft Windows OS.
 
-`--lock` `<backup | migrate | rollback | snapshot>` ::
+`--lock` `<backup | clone | create | migrate | rollback | snapshot | snapshot-delete | suspended | suspending>` ::
 
 Lock/unlock the VM.
 
-`--machine` `(pc|pc(-i440fx)?-\d+\.\d+(\.pxe)?|q35|pc-q35-\d+\.\d+(\.pxe)?)` ::
+`--machine` `[[type=]<machine type>] [,viommu=<intel|virtio>]` ::
 
-Specific the Qemu machine type.
+Specify the QEMU machine.
 
-`--memory` `<integer> (16 - N)` ('default =' `512`)::
+`--memory` `[current=]<integer>` ::
 
-Amount of RAM for the VM in MB. This is the maximum available memory when you use the balloon device.
+Memory properties.
 
 `--migrate_downtime` `<number> (0 - N)` ('default =' `0.1`)::
 
@@ -234,7 +916,7 @@ Set a name for the VM. Only used on the configuration web interface.
 
 cloud-init: Sets DNS server IP address for a container. Create will automatically use the setting from the host if neither searchdomain nor nameserver are set.
 
-`--net[n]` `[model=]<enum> [,bridge=<bridge>] [,firewall=<1|0>] [,link_down=<1|0>] [,macaddr=<XX:XX:XX:XX:XX:XX>] [,queues=<integer>] [,rate=<number>] [,tag=<integer>] [,trunks=<vlanid[;vlanid...]>] [,<model>=<macaddr>]` ::
+`--net[n]` `[model=]<enum> [,bridge=<bridge>] [,firewall=<1|0>] [,link_down=<1|0>] [,macaddr=<XX:XX:XX:XX:XX:XX>] [,mtu=<integer>] [,queues=<integer>] [,rate=<number>] [,tag=<integer>] [,trunks=<vlanid[;vlanid...]>] [,<model>=<macaddr>]` ::
 
 Specify network devices.
 
@@ -250,7 +932,7 @@ NUMA topology.
 
 Specifies whether a VM will be started during system bootup.
 
-`--ostype` `<l24 | l26 | other | solaris | w2k | w2k3 | w2k8 | win10 | win7 | win8 | wvista | wxp>` ::
+`--ostype` `<l24 | l26 | other | solaris | w2k | w2k3 | w2k8 | win10 | win11 | win7 | win8 | wvista | wxp>` ::
 
 Specify guest operating system.
 
@@ -258,10 +940,6 @@ Specify guest operating system.
 
 Map host parallel devices (n is 0 to 2).
 
-`--pool` `<string>` ::
-
-Add the VM to the specified pool.
-
 `--protection` `<boolean>` ('default =' `0`)::
 
 Sets the protection flag of the VM. This will disable the remove VM and remove disk operations.
@@ -270,13 +948,17 @@ Sets the protection flag of the VM. This will disable the remove VM and remove d
 
 Allow reboot. If set to '0' the VM exit on reboot.
 
-`--sata[n]` `[file=]<volume> [,aio=<native|threads>] [,backup=<1|0>] [,bps=<bps>] [,bps_max_length=<seconds>] [,bps_rd=<bps>] [,bps_rd_max_length=<seconds>] [,bps_wr=<bps>] [,bps_wr_max_length=<seconds>] [,cache=<enum>] [,cyls=<integer>] [,detect_zeroes=<1|0>] [,discard=<ignore|on>] [,format=<enum>] [,heads=<integer>] [,iops=<iops>] [,iops_max=<iops>] [,iops_max_length=<seconds>] [,iops_rd=<iops>] [,iops_rd_max=<iops>] [,iops_rd_max_length=<seconds>] [,iops_wr=<iops>] [,iops_wr_max=<iops>] [,iops_wr_max_length=<seconds>] [,mbps=<mbps>] [,mbps_max=<mbps>] [,mbps_rd=<mbps>] [,mbps_rd_max=<mbps>] [,mbps_wr=<mbps>] [,mbps_wr_max=<mbps>] [,media=<cdrom|disk>] [,replicate=<1|0>] [,rerror=<ignore|report|stop>] [,secs=<integer>] [,serial=<serial>] [,shared=<1|0>] [,size=<DiskSize>] [,snapshot=<1|0>] [,trans=<none|lba|auto>] [,werror=<enum>]` ::
+`--rng0` `[source=]</dev/urandom|/dev/random|/dev/hwrng> [,max_bytes=<integer>] [,period=<integer>]` ::
+
+Configure a VirtIO-based Random Number Generator.
+
+`--sata[n]` `[file=]<volume> [,aio=<native|threads|io_uring>] [,backup=<1|0>] [,bps=<bps>] [,bps_max_length=<seconds>] [,bps_rd=<bps>] [,bps_rd_max_length=<seconds>] [,bps_wr=<bps>] [,bps_wr_max_length=<seconds>] [,cache=<enum>] [,cyls=<integer>] [,detect_zeroes=<1|0>] [,discard=<ignore|on>] [,format=<enum>] [,heads=<integer>] [,iops=<iops>] [,iops_max=<iops>] [,iops_max_length=<seconds>] [,iops_rd=<iops>] [,iops_rd_max=<iops>] [,iops_rd_max_length=<seconds>] [,iops_wr=<iops>] [,iops_wr_max=<iops>] [,iops_wr_max_length=<seconds>] [,mbps=<mbps>] [,mbps_max=<mbps>] [,mbps_rd=<mbps>] [,mbps_rd_max=<mbps>] [,mbps_wr=<mbps>] [,mbps_wr_max=<mbps>] [,media=<cdrom|disk>] [,replicate=<1|0>] [,rerror=<ignore|report|stop>] [,secs=<integer>] [,serial=<serial>] [,shared=<1|0>] [,size=<DiskSize>] [,snapshot=<1|0>] [,ssd=<1|0>] [,trans=<none|lba|auto>] [,werror=<enum>] [,wwn=<wwn>]` ::
 
 Use volume as SATA hard disk or CD-ROM (n is 0 to 5).
 
-`--scsi[n]` `[file=]<volume> [,aio=<native|threads>] [,backup=<1|0>] [,bps=<bps>] [,bps_max_length=<seconds>] [,bps_rd=<bps>] [,bps_rd_max_length=<seconds>] [,bps_wr=<bps>] [,bps_wr_max_length=<seconds>] [,cache=<enum>] [,cyls=<integer>] [,detect_zeroes=<1|0>] [,discard=<ignore|on>] [,format=<enum>] [,heads=<integer>] [,iops=<iops>] [,iops_max=<iops>] [,iops_max_length=<seconds>] [,iops_rd=<iops>] [,iops_rd_max=<iops>] [,iops_rd_max_length=<seconds>] [,iops_wr=<iops>] [,iops_wr_max=<iops>] [,iops_wr_max_length=<seconds>] [,iothread=<1|0>] [,mbps=<mbps>] [,mbps_max=<mbps>] [,mbps_rd=<mbps>] [,mbps_rd_max=<mbps>] [,mbps_wr=<mbps>] [,mbps_wr_max=<mbps>] [,media=<cdrom|disk>] [,queues=<integer>] [,replicate=<1|0>] [,rerror=<ignore|report|stop>] [,scsiblock=<1|0>] [,secs=<integer>] [,serial=<serial>] [,shared=<1|0>] [,size=<DiskSize>] [,snapshot=<1|0>] [,trans=<none|lba|auto>] [,werror=<enum>]` ::
+`--scsi[n]` `[file=]<volume> [,aio=<native|threads|io_uring>] [,backup=<1|0>] [,bps=<bps>] [,bps_max_length=<seconds>] [,bps_rd=<bps>] [,bps_rd_max_length=<seconds>] [,bps_wr=<bps>] [,bps_wr_max_length=<seconds>] [,cache=<enum>] [,cyls=<integer>] [,detect_zeroes=<1|0>] [,discard=<ignore|on>] [,format=<enum>] [,heads=<integer>] [,iops=<iops>] [,iops_max=<iops>] [,iops_max_length=<seconds>] [,iops_rd=<iops>] [,iops_rd_max=<iops>] [,iops_rd_max_length=<seconds>] [,iops_wr=<iops>] [,iops_wr_max=<iops>] [,iops_wr_max_length=<seconds>] [,iothread=<1|0>] [,mbps=<mbps>] [,mbps_max=<mbps>] [,mbps_rd=<mbps>] [,mbps_rd_max=<mbps>] [,mbps_wr=<mbps>] [,mbps_wr_max=<mbps>] [,media=<cdrom|disk>] [,product=<product>] [,queues=<integer>] [,replicate=<1|0>] [,rerror=<ignore|report|stop>] [,ro=<1|0>] [,scsiblock=<1|0>] [,secs=<integer>] [,serial=<serial>] [,shared=<1|0>] [,size=<DiskSize>] [,snapshot=<1|0>] [,ssd=<1|0>] [,trans=<none|lba|auto>] [,vendor=<vendor>] [,werror=<enum>] [,wwn=<wwn>]` ::
 
-Use volume as SCSI hard disk or CD-ROM (n is 0 to 13).
+Use volume as SCSI hard disk or CD-ROM (n is 0 to 30).
 
 `--scsihw` `<lsi | lsi53c810 | megasas | pvscsi | virtio-scsi-pci | virtio-scsi-single>` ('default =' `lsi`)::
 
@@ -294,7 +976,7 @@ Create a serial device inside the VM (n is 0 to 3)
 
 Amount of memory shares for auto-ballooning. The larger the number is, the more memory this VM gets. Number is relative to weights of all other running VMs. Using zero disables auto-ballooning. Auto-ballooning is done by pvestatd.
 
-`--smbios1` `[family=<string>] [,manufacturer=<string>] [,product=<string>] [,serial=<string>] [,sku=<string>] [,uuid=<UUID>] [,version=<string>]` ::
+`--smbios1` `[base64=<1|0>] [,family=<Base64 encoded string>] [,manufacturer=<Base64 encoded string>] [,product=<Base64 encoded string>] [,serial=<Base64 encoded string>] [,sku=<Base64 encoded string>] [,uuid=<UUID>] [,version=<Base64 encoded string>]` ::
 
 Specify SMBIOS type 1 fields.
 
@@ -306,23 +988,23 @@ The number of CPUs. Please use option -sockets instead.
 
 The number of CPU sockets.
 
-`--sshkeys` `<filepath>` ::
+`--spice_enhancements` `[foldersharing=<1|0>] [,videostreaming=<off|all|filter>]` ::
 
-cloud-init: Setup public SSH keys (one key per line, OpenSSH format).
+Configure additional enhancements for SPICE.
 
-`--start` `<boolean>` ('default =' `0`)::
+`--sshkeys` `<string>` ::
 
-Start VM after it was created successfully.
+cloud-init: Setup public SSH keys (one key per line, OpenSSH format).
 
 `--startdate` `(now | YYYY-MM-DD | YYYY-MM-DDTHH:MM:SS)` ('default =' `now`)::
 
-Set the initial date of the real time clock. Valid format for date are: 'now' or '2006-06-17T16:01:21' or '2006-06-17'.
+Set the initial date of the real time clock. Valid format for date are:'now' or '2006-06-17T16:01:21' or '2006-06-17'.
 
 `--startup` `[[order=]\d+] [,up=\d+] [,down=\d+] ` ::
 
 Startup and shutdown behavior. Order is a non-negative number defining the general startup order. Shutdown in done with reverse ordering. Additionally you can set the 'up' or 'down' delay in seconds, which specifies a delay to wait before the next VM is started or stopped.
 
-`--storage` `<string>` ::
+`--storage` `<storage ID>` ::
 
 Default storage.
 
@@ -330,6 +1012,10 @@ Default storage.
 
 Enable/disable the USB tablet device.
 
+`--tags` `<string>` ::
+
+Tags of the VM. This is only meta information.
+
 `--tdf` `<boolean>` ('default =' `0`)::
 
 Enable/disable time drift fix.
@@ -338,33 +1024,35 @@ Enable/disable time drift fix.
 
 Enable/disable Template.
 
-`--unique` `<boolean>` ::
+`--tpmstate0` `[file=]<volume> [,size=<DiskSize>] [,version=<v1.2|v2.0>]` ::
 
-Assign a unique random ethernet address.
-+
-NOTE: Requires option(s): `archive`
+Configure a Disk for storing TPM state. The format is fixed to 'raw'.
 
-`--unused[n]` `<string>` ::
+`--unused[n]` `[file=]<volume>` ::
 
 Reference to unused volumes. This is used internally, and should not be modified manually.
 
-`--usb[n]` `[host=]<HOSTUSBDEVICE|spice> [,usb3=<1|0>]` ::
+`--usb[n]` `[[host=]<HOSTUSBDEVICE|spice>] [,mapping=<mapping-id>] [,usb3=<1|0>]` ::
 
-Configure an USB device (n is 0 to 4).
+Configure an USB device (n is 0 to 4, for machine version >= 7.1 and ostype l26 or windows > 7, n can be up to 14).
 
 `--vcpus` `<integer> (1 - N)` ('default =' `0`)::
 
 Number of hotplugged vcpus.
 
-`--vga` `<cirrus | qxl | qxl2 | qxl3 | qxl4 | serial0 | serial1 | serial2 | serial3 | std | vmware>` ::
+`--vga` `[[type=]<enum>] [,clipboard=<vnc>] [,memory=<integer>]` ::
 
-Select the VGA type.
+Configure the VGA hardware.
 
-`--virtio[n]` `[file=]<volume> [,aio=<native|threads>] [,backup=<1|0>] [,bps=<bps>] [,bps_max_length=<seconds>] [,bps_rd=<bps>] [,bps_rd_max_length=<seconds>] [,bps_wr=<bps>] [,bps_wr_max_length=<seconds>] [,cache=<enum>] [,cyls=<integer>] [,detect_zeroes=<1|0>] [,discard=<ignore|on>] [,format=<enum>] [,heads=<integer>] [,iops=<iops>] [,iops_max=<iops>] [,iops_max_length=<seconds>] [,iops_rd=<iops>] [,iops_rd_max=<iops>] [,iops_rd_max_length=<seconds>] [,iops_wr=<iops>] [,iops_wr_max=<iops>] [,iops_wr_max_length=<seconds>] [,iothread=<1|0>] [,mbps=<mbps>] [,mbps_max=<mbps>] [,mbps_rd=<mbps>] [,mbps_rd_max=<mbps>] [,mbps_wr=<mbps>] [,mbps_wr_max=<mbps>] [,media=<cdrom|disk>] [,replicate=<1|0>] [,rerror=<ignore|report|stop>] [,secs=<integer>] [,serial=<serial>] [,shared=<1|0>] [,size=<DiskSize>] [,snapshot=<1|0>] [,trans=<none|lba|auto>] [,werror=<enum>]` ::
+`--virtio[n]` `[file=]<volume> [,aio=<native|threads|io_uring>] [,backup=<1|0>] [,bps=<bps>] [,bps_max_length=<seconds>] [,bps_rd=<bps>] [,bps_rd_max_length=<seconds>] [,bps_wr=<bps>] [,bps_wr_max_length=<seconds>] [,cache=<enum>] [,cyls=<integer>] [,detect_zeroes=<1|0>] [,discard=<ignore|on>] [,format=<enum>] [,heads=<integer>] [,iops=<iops>] [,iops_max=<iops>] [,iops_max_length=<seconds>] [,iops_rd=<iops>] [,iops_rd_max=<iops>] [,iops_rd_max_length=<seconds>] [,iops_wr=<iops>] [,iops_wr_max=<iops>] [,iops_wr_max_length=<seconds>] [,iothread=<1|0>] [,mbps=<mbps>] [,mbps_max=<mbps>] [,mbps_rd=<mbps>] [,mbps_rd_max=<mbps>] [,mbps_wr=<mbps>] [,mbps_wr_max=<mbps>] [,media=<cdrom|disk>] [,replicate=<1|0>] [,rerror=<ignore|report|stop>] [,ro=<1|0>] [,secs=<integer>] [,serial=<serial>] [,shared=<1|0>] [,size=<DiskSize>] [,snapshot=<1|0>] [,trans=<none|lba|auto>] [,werror=<enum>]` ::
 
 Use volume as VIRTIO hard disk (n is 0 to 15).
 
-`--vmstatestorage` `<string>` ::
+`--vmgenid` `<UUID>` ('default =' `1 (autogenerated)`)::
+
+Set VM Generation ID. Use '1' to autogenerate on create or update, pass '0' to disable explicitly.
+
+`--vmstatestorage` `<storage ID>` ::
 
 Default storage for VM state volumes/files.
 
@@ -372,72 +1060,15 @@ Default storage for VM state volumes/files.
 
 Create a virtual hardware watchdog device.
 
-*qm delsnapshot* `<vmid> <snapname>` `[OPTIONS]`
-
-Delete a VM snapshot.
-
-`<vmid>`: `<integer> (1 - N)` ::
-
-The (unique) ID of the VM.
-
-`<snapname>`: `<string>` ::
-
-The name of the snapshot.
-
-`--force` `<boolean>` ::
-
-For removal from config file, even if removing disk snapshots fails.
-
-*qm destroy* `<vmid>` `[OPTIONS]`
-
-Destroy the vm (also delete all used/owned volumes).
-
-`<vmid>`: `<integer> (1 - N)` ::
-
-The (unique) ID of the VM.
-
-`--skiplock` `<boolean>` ::
-
-Ignore locks - only root is allowed to use this option.
-
-*qm help* `[OPTIONS]`
-
-Get help about specified command.
-
-`--extra-args` `<array>` ::
-
-Shows help for a specific command
-
-`--verbose` `<boolean>` ::
-
-Verbose output format.
-
-*qm importdisk* `<vmid> <source> <storage>` `[OPTIONS]`
-
-Import an external disk image as an unused disk in a VM. The
- image format has to be supported by qemu-img(1).
-
-`<vmid>`: `<integer> (1 - N)` ::
-
-The (unique) ID of the VM.
-
-`<source>`: `<string>` ::
-
-Path to the disk image to import
+*qm importdisk*
 
-`<storage>`: `<string>` ::
-
-Target storage ID
-
-`--format` `<qcow2 | raw | vmdk>` ::
-
-Target format
+An alias for 'qm disk import'.
 
 *qm importovf* `<vmid> <manifest> <storage>` `[OPTIONS]`
 
 Create a new VM using parameters read from an OVF manifest
 
-`<vmid>`: `<integer> (1 - N)` ::
+`<vmid>`: `<integer> (100 - 999999999)` ::
 
 The (unique) ID of the VM.
 
@@ -445,7 +1076,7 @@ The (unique) ID of the VM.
 
 path to the ovf file
 
-`<storage>`: `<string>` ::
+`<storage>`: `<storage ID>` ::
 
 Target storage ID
 
@@ -469,7 +1100,7 @@ Determine the full status of active VMs.
 
 List all snapshots.
 
-`<vmid>`: `<integer> (1 - N)` ::
+`<vmid>`: `<integer> (100 - 999999999)` ::
 
 The (unique) ID of the VM.
 
@@ -477,7 +1108,7 @@ The (unique) ID of the VM.
 
 Migrate virtual machine. Creates a new migration task.
 
-`<vmid>`: `<integer> (1 - N)` ::
+`<vmid>`: `<integer> (100 - 999999999)` ::
 
 The (unique) ID of the VM.
 
@@ -485,6 +1116,10 @@ The (unique) ID of the VM.
 
 Target node.
 
+`--bwlimit` `<integer> (0 - N)` ('default =' `migrate limit from datacenter or storage config`)::
+
+Override I/O bandwidth limit (in KiB/s).
+
 `--force` `<boolean>` ::
 
 Allow to migrate VMs which use local devices. Only root may use this option.
@@ -499,11 +1134,11 @@ Migration traffic is encrypted using an SSH tunnel by default. On secure, comple
 
 `--online` `<boolean>` ::
 
-Use online/live migration.
+Use online/live migration if VM is running. Ignored if VM is stopped.
 
 `--targetstorage` `<string>` ::
 
-Default target storage.
+Mapping from source to target storages. Providing only a single storage ID maps all source storages to that storage. Providing the special value '1' will map each source storage to itself.
 
 `--with-local-disks` `<boolean>` ::
 
@@ -511,109 +1146,115 @@ Enable live storage migration for local disk
 
 *qm monitor* `<vmid>`
 
-Enter Qemu Monitor interface.
+Enter QEMU Monitor interface.
 
-`<vmid>`: `<integer> (1 - N)` ::
+`<vmid>`: `<integer> (100 - 999999999)` ::
 
 The (unique) ID of the VM.
 
-*qm move_disk* `<vmid> <disk> <storage>` `[OPTIONS]`
+*qm move-disk*
 
-Move volume to different storage.
+An alias for 'qm disk move'.
 
-`<vmid>`: `<integer> (1 - N)` ::
+*qm move_disk*
 
-The (unique) ID of the VM.
+An alias for 'qm disk move'.
 
-`<disk>`: `<efidisk0 | ide0 | ide1 | ide2 | ide3 | sata0 | sata1 | sata2 | sata3 | sata4 | sata5 | scsi0 | scsi1 | scsi10 | scsi11 | scsi12 | scsi13 | scsi2 | scsi3 | scsi4 | scsi5 | scsi6 | scsi7 | scsi8 | scsi9 | virtio0 | virtio1 | virtio10 | virtio11 | virtio12 | virtio13 | virtio14 | virtio15 | virtio2 | virtio3 | virtio4 | virtio5 | virtio6 | virtio7 | virtio8 | virtio9>` ::
+*qm mtunnel*
 
-The disk you want to move.
+Used by qmigrate - do not use manually.
 
-`<storage>`: `<string>` ::
+*qm nbdstop* `<vmid>`
 
-Target storage.
+Stop embedded nbd server.
 
-`--delete` `<boolean>` ('default =' `0`)::
+`<vmid>`: `<integer> (100 - 999999999)` ::
 
-Delete the original disk after successful copy. By default the original disk is kept as unused disk.
+The (unique) ID of the VM.
 
-`--digest` `<string>` ::
+*qm pending* `<vmid>`
 
-Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.
+Get the virtual machine configuration with both current and pending values.
 
-`--format` `<qcow2 | raw | vmdk>` ::
+`<vmid>`: `<integer> (100 - 999999999)` ::
 
-Target Format.
+The (unique) ID of the VM.
 
-*qm mtunnel*
+*qm reboot* `<vmid>` `[OPTIONS]`
 
-Used by qmigrate - do not use manually.
+Reboot the VM by shutting it down, and starting it again. Applies pending
+changes.
 
-*qm nbdstop* `<vmid>`
+`<vmid>`: `<integer> (100 - 999999999)` ::
 
-Stop embedded nbd server.
+The (unique) ID of the VM.
 
-`<vmid>`: `<integer> (1 - N)` ::
+`--timeout` `<integer> (0 - N)` ::
 
-The (unique) ID of the VM.
+Wait maximal timeout seconds for the shutdown.
 
-*qm pending* `<vmid>`
+*qm remote-migrate* `<vmid> [<target-vmid>] <target-endpoint> --target-bridge <string> --target-storage <string>` `[OPTIONS]`
 
-Get virtual machine configuration, including pending changes.
+Migrate virtual machine to a remote cluster. Creates a new migration task.
+EXPERIMENTAL feature!
 
-`<vmid>`: `<integer> (1 - N)` ::
+`<vmid>`: `<integer> (100 - 999999999)` ::
 
 The (unique) ID of the VM.
 
-*qm rescan* `[OPTIONS]`
+`<target-vmid>`: `<integer> (100 - 999999999)` ::
 
-Rescan all storages and update disk sizes and unused disk images.
+The (unique) ID of the VM.
 
-`--vmid` `<integer> (1 - N)` ::
+`<target-endpoint>`: `apitoken=<PVEAPIToken=user@realm!token=SECRET> ,host=<ADDRESS> [,fingerprint=<FINGERPRINT>] [,port=<PORT>]` ::
 
-The (unique) ID of the VM.
+Remote target endpoint
 
-*qm reset* `<vmid>` `[OPTIONS]`
+`--bwlimit` `<integer> (0 - N)` ('default =' `migrate limit from datacenter or storage config`)::
 
-Reset virtual machine.
+Override I/O bandwidth limit (in KiB/s).
 
-`<vmid>`: `<integer> (1 - N)` ::
+`--delete` `<boolean>` ('default =' `0`)::
 
-The (unique) ID of the VM.
+Delete the original VM and related data after successful migration. By default the original VM is kept on the source cluster in a stopped state.
 
-`--skiplock` `<boolean>` ::
+`--online` `<boolean>` ::
 
-Ignore locks - only root is allowed to use this option.
+Use online/live migration if VM is running. Ignored if VM is stopped.
 
-*qm resize* `<vmid> <disk> <size>` `[OPTIONS]`
+`--target-bridge` `<string>` ::
 
-Extend volume size.
+Mapping from source to target bridges. Providing only a single bridge ID maps all source bridges to that bridge. Providing the special value '1' will map each source bridge to itself.
 
-`<vmid>`: `<integer> (1 - N)` ::
+`--target-storage` `<string>` ::
 
-The (unique) ID of the VM.
+Mapping from source to target storages. Providing only a single storage ID maps all source storages to that storage. Providing the special value '1' will map each source storage to itself.
 
-`<disk>`: `<efidisk0 | ide0 | ide1 | ide2 | ide3 | sata0 | sata1 | sata2 | sata3 | sata4 | sata5 | scsi0 | scsi1 | scsi10 | scsi11 | scsi12 | scsi13 | scsi2 | scsi3 | scsi4 | scsi5 | scsi6 | scsi7 | scsi8 | scsi9 | virtio0 | virtio1 | virtio10 | virtio11 | virtio12 | virtio13 | virtio14 | virtio15 | virtio2 | virtio3 | virtio4 | virtio5 | virtio6 | virtio7 | virtio8 | virtio9>` ::
+*qm rescan*
 
-The disk you want to resize.
+An alias for 'qm disk rescan'.
 
-`<size>`: `\+?\d+(\.\d+)?[KMGT]?` ::
+*qm reset* `<vmid>` `[OPTIONS]`
 
-The new size. With the `+` sign the value is added to the actual size of the volume and without it, the value is taken as an absolute one. Shrinking disk size is not supported.
+Reset virtual machine.
 
-`--digest` `<string>` ::
+`<vmid>`: `<integer> (100 - 999999999)` ::
 
-Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.
+The (unique) ID of the VM.
 
 `--skiplock` `<boolean>` ::
 
 Ignore locks - only root is allowed to use this option.
 
+*qm resize*
+
+An alias for 'qm disk resize'.
+
 *qm resume* `<vmid>` `[OPTIONS]`
 
 Resume virtual machine.
 
-`<vmid>`: `<integer> (1 - N)` ::
+`<vmid>`: `<integer> (100 - 999999999)` ::
 
 The (unique) ID of the VM.
 
@@ -625,11 +1266,11 @@ no description available
 
 Ignore locks - only root is allowed to use this option.
 
-*qm rollback* `<vmid> <snapname>`
+*qm rollback* `<vmid> <snapname>` `[OPTIONS]`
 
 Rollback VM state to specified snapshot.
 
-`<vmid>`: `<integer> (1 - N)` ::
+`<vmid>`: `<integer> (100 - 999999999)` ::
 
 The (unique) ID of the VM.
 
@@ -637,11 +1278,15 @@ The (unique) ID of the VM.
 
 The name of the snapshot.
 
+`--start` `<boolean>` ('default =' `0`)::
+
+Whether the VM should get started after rolling back successfully. (Note: VMs will be automatically started if the snapshot includes RAM.)
+
 *qm sendkey* `<vmid> <key>` `[OPTIONS]`
 
 Send key event to virtual machine.
 
-`<vmid>`: `<integer> (1 - N)` ::
+`<vmid>`: `<integer> (100 - 999999999)` ::
 
 The (unique) ID of the VM.
 
@@ -659,7 +1304,7 @@ Set virtual machine options (synchrounous API) - You should consider using
 the POST method instead for any actions involving hotplug or storage
 allocation.
 
-`<vmid>`: `<integer> (1 - N)` ::
+`<vmid>`: `<integer> (100 - 999999999)` ::
 
 The (unique) ID of the VM.
 
@@ -667,46 +1312,66 @@ The (unique) ID of the VM.
 
 Enable/disable ACPI.
 
-`--agent` `<boolean>` ('default =' `0`)::
+`--affinity` `<string>` ::
+
+List of host cores used to execute guest processes, for example: 0,5,8-11
+
+`--agent` `[enabled=]<1|0> [,freeze-fs-on-backup=<1|0>] [,fstrim_cloned_disks=<1|0>] [,type=<virtio|isa>]` ::
+
+Enable/disable communication with the QEMU Guest Agent and its properties.
 
-Enable/disable Qemu GuestAgent.
+`--arch` `<aarch64 | x86_64>` ::
+
+Virtual processor architecture. Defaults to the host.
 
 `--args` `<string>` ::
 
 Arbitrary arguments passed to kvm.
 
+`--audio0` `device=<ich9-intel-hda|intel-hda|AC97> [,driver=<spice|none>]` ::
+
+Configure a audio device, useful in combination with QXL/Spice.
+
 `--autostart` `<boolean>` ('default =' `0`)::
 
 Automatic restart after crash (currently ignored).
 
 `--balloon` `<integer> (0 - N)` ::
 
-Amount of target RAM for the VM in MB. Using zero disables the ballon driver.
+Amount of target RAM for the VM in MiB. Using zero disables the ballon driver.
 
 `--bios` `<ovmf | seabios>` ('default =' `seabios`)::
 
 Select BIOS implementation.
 
-`--boot` `[acdn]{1,4}` ('default =' `cdn`)::
+`--boot` `[[legacy=]<[acdn]{1,4}>] [,order=<device[;device...]>]` ::
 
-Boot on floppy (a), hard disk (c), CD-ROM (d), or network (n).
+Specify guest boot order. Use the 'order=' sub-property as usage with no key or 'legacy=' is deprecated.
 
 `--bootdisk` `(ide|sata|scsi|virtio)\d+` ::
 
-Enable booting from specified disk.
+Enable booting from specified disk. Deprecated: Use 'boot: order=foo;bar' instead.
 
 `--cdrom` `<volume>` ::
 
 This is an alias for option -ide2
 
+`--cicustom` `[meta=<volume>] [,network=<volume>] [,user=<volume>] [,vendor=<volume>]` ::
+
+cloud-init: Specify custom files to replace the automatically generated ones at start.
+
 `--cipassword` `<password>` ::
 
 cloud-init: Password to assign the user. Using this is generally not recommended. Use ssh keys instead. Also note that older cloud-init versions do not support hashed passwords.
 
-`--citype` `<configdrive2 | nocloud>` ::
+`--citype` `<configdrive2 | nocloud | opennebula>` ::
 
 Specifies the cloud-init configuration format. The default depends on the configured operating system type (`ostype`. We use the `nocloud` format for Linux, and `configdrive2` for windows.
 
+`--ciupgrade` `<boolean>` ('default =' `1`)::
+
+cloud-init: do an automatic package upgrade after the first boot.
+
 `--ciuser` `<string>` ::
 
 cloud-init: User name to change ssh keys and password for instead of the image's configured default user.
@@ -715,7 +1380,7 @@ cloud-init: User name to change ssh keys and password for instead of the image's
 
 The number of cores per socket.
 
-`--cpu` `[cputype=]<enum> [,flags=<+FLAG[;-FLAG...]>] [,hidden=<1|0>]` ::
+`--cpu` `[[cputype=]<string>] [,flags=<+FLAG[;-FLAG...]>] [,hidden=<1|0>] [,hv-vendor-id=<vendor-id>] [,phys-bits=<8-64|host>] [,reported-model=<enum>]` ::
 
 Emulated CPU type.
 
@@ -723,9 +1388,9 @@ Emulated CPU type.
 
 Limit of CPU usage.
 
-`--cpuunits` `<integer> (2 - 262144)` ('default =' `1024`)::
+`--cpuunits` `<integer> (1 - 262144)` ('default =' `cgroup v1: 1024, cgroup v2: 100`)::
 
-CPU weight for a VM.
+CPU weight for a VM, will be clamped to [1, 10000] in cgroup v2.
 
 `--delete` `<string>` ::
 
@@ -733,15 +1398,15 @@ A list of settings you want to delete.
 
 `--description` `<string>` ::
 
-Description for the VM. Only used on the configuration web interface. This is saved as comment inside the configuration file.
+Description for the VM. Shown in the web-interface VM's summary. This is saved as comment inside the configuration file.
 
 `--digest` `<string>` ::
 
 Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.
 
-`--efidisk0` `[file=]<volume> [,format=<enum>] [,size=<DiskSize>]` ::
+`--efidisk0` `[file=]<volume> [,efitype=<2m|4m>] [,format=<enum>] [,import-from=<source volume>] [,pre-enrolled-keys=<1|0>] [,size=<DiskSize>]` ::
 
-Configure a Disk for storing EFI vars
+Configure a disk for storing EFI vars. Use the special syntax STORAGE_ID:SIZE_IN_GiB to allocate a new volume. Note that SIZE_IN_GiB is ignored here and that the default EFI vars are copied to the volume instead. Use STORAGE_ID:0 and the 'import-from' parameter to import from an existing volume.
 
 `--force` `<boolean>` ::
 
@@ -753,21 +1418,25 @@ NOTE: Requires option(s): `delete`
 
 Freeze CPU at startup (use 'c' monitor command to start execution).
 
-`--hostpci[n]` `[host=]<HOSTPCIID[;HOSTPCIID2...]> [,pcie=<1|0>] [,rombar=<1|0>] [,romfile=<string>] [,x-vga=<1|0>]` ::
+`--hookscript` `<string>` ::
+
+Script that will be executed during various steps in the vms lifetime.
+
+`--hostpci[n]` `[[host=]<HOSTPCIID[;HOSTPCIID2...]>] [,device-id=<hex id>] [,legacy-igd=<1|0>] [,mapping=<mapping-id>] [,mdev=<string>] [,pcie=<1|0>] [,rombar=<1|0>] [,romfile=<string>] [,sub-device-id=<hex id>] [,sub-vendor-id=<hex id>] [,vendor-id=<hex id>] [,x-vga=<1|0>]` ::
 
 Map host PCI devices into guest.
 
 `--hotplug` `<string>` ('default =' `network,disk,usb`)::
 
-Selectively enable hotplug features. This is a comma separated list of hotplug features: 'network', 'disk', 'cpu', 'memory' and 'usb'. Use '0' to disable hotplug completely. Value '1' is an alias for the default 'network,disk,usb'.
+Selectively enable hotplug features. This is a comma separated list of hotplug features: 'network', 'disk', 'cpu', 'memory', 'usb' and 'cloudinit'. Use '0' to disable hotplug completely. Using '1' as value is an alias for the default `network,disk,usb`. USB hotplugging is possible for guests with machine version >= 7.1 and ostype l26 or windows > 7.
 
 `--hugepages` `<1024 | 2 | any>` ::
 
 Enable/disable hugepages memory.
 
-`--ide[n]` `[file=]<volume> [,aio=<native|threads>] [,backup=<1|0>] [,bps=<bps>] [,bps_max_length=<seconds>] [,bps_rd=<bps>] [,bps_rd_max_length=<seconds>] [,bps_wr=<bps>] [,bps_wr_max_length=<seconds>] [,cache=<enum>] [,cyls=<integer>] [,detect_zeroes=<1|0>] [,discard=<ignore|on>] [,format=<enum>] [,heads=<integer>] [,iops=<iops>] [,iops_max=<iops>] [,iops_max_length=<seconds>] [,iops_rd=<iops>] [,iops_rd_max=<iops>] [,iops_rd_max_length=<seconds>] [,iops_wr=<iops>] [,iops_wr_max=<iops>] [,iops_wr_max_length=<seconds>] [,mbps=<mbps>] [,mbps_max=<mbps>] [,mbps_rd=<mbps>] [,mbps_rd_max=<mbps>] [,mbps_wr=<mbps>] [,mbps_wr_max=<mbps>] [,media=<cdrom|disk>] [,model=<model>] [,replicate=<1|0>] [,rerror=<ignore|report|stop>] [,secs=<integer>] [,serial=<serial>] [,shared=<1|0>] [,size=<DiskSize>] [,snapshot=<1|0>] [,trans=<none|lba|auto>] [,werror=<enum>]` ::
+`--ide[n]` `[file=]<volume> [,aio=<native|threads|io_uring>] [,backup=<1|0>] [,bps=<bps>] [,bps_max_length=<seconds>] [,bps_rd=<bps>] [,bps_rd_max_length=<seconds>] [,bps_wr=<bps>] [,bps_wr_max_length=<seconds>] [,cache=<enum>] [,cyls=<integer>] [,detect_zeroes=<1|0>] [,discard=<ignore|on>] [,format=<enum>] [,heads=<integer>] [,import-from=<source volume>] [,iops=<iops>] [,iops_max=<iops>] [,iops_max_length=<seconds>] [,iops_rd=<iops>] [,iops_rd_max=<iops>] [,iops_rd_max_length=<seconds>] [,iops_wr=<iops>] [,iops_wr_max=<iops>] [,iops_wr_max_length=<seconds>] [,mbps=<mbps>] [,mbps_max=<mbps>] [,mbps_rd=<mbps>] [,mbps_rd_max=<mbps>] [,mbps_wr=<mbps>] [,mbps_wr_max=<mbps>] [,media=<cdrom|disk>] [,model=<model>] [,replicate=<1|0>] [,rerror=<ignore|report|stop>] [,secs=<integer>] [,serial=<serial>] [,shared=<1|0>] [,size=<DiskSize>] [,snapshot=<1|0>] [,ssd=<1|0>] [,trans=<none|lba|auto>] [,werror=<enum>] [,wwn=<wwn>]` ::
 
-Use volume as IDE hard disk or CD-ROM (n is 0 to 3).
+Use volume as IDE hard disk or CD-ROM (n is 0 to 3). Use the special syntax STORAGE_ID:SIZE_IN_GiB to allocate a new volume. Use STORAGE_ID:0 and the 'import-from' parameter to import from an existing volume.
 
 `--ipconfig[n]` `[gw=<GatewayIPv4>] [,gw6=<GatewayIPv6>] [,ip=<IPv4Format/CIDR>] [,ip6=<IPv6Format/CIDR>]` ::
 
@@ -775,14 +1444,25 @@ cloud-init: Specify IP addresses and gateways for the corresponding interface.
 +
 IP addresses use CIDR notation, gateways are optional but need an IP of the same type specified.
 +
-The special string 'dhcp' can be used for IP addresses to use DHCP, in which case no explicit gateway should be provided.
-For IPv6 the special string 'auto' can be used to use stateless autoconfiguration.
+The special string 'dhcp' can be used for IP addresses to use DHCP, in which case no explicit
+gateway should be provided.
+For IPv6 the special string 'auto' can be used to use stateless autoconfiguration. This requires
+cloud-init 19.4 or newer.
 +
-If cloud-init is enabled and neither an IPv4 nor an IPv6 address is specified, it defaults to using dhcp on IPv4.
+If cloud-init is enabled and neither an IPv4 nor an IPv6 address is specified, it defaults to using
+dhcp on IPv4.
+
+`--ivshmem` `size=<integer> [,name=<string>]` ::
+
+Inter-VM shared memory. Useful for direct communication between VMs, or to the host.
+
+`--keephugepages` `<boolean>` ('default =' `0`)::
+
+Use together with hugepages. If enabled, hugepages will not not be deleted after VM shutdown and can be used for subsequent starts.
 
 `--keyboard` `<da | de | de-ch | en-gb | en-us | es | fi | fr | fr-be | fr-ca | fr-ch | hu | is | it | ja | lt | mk | nl | no | pl | pt | pt-br | sl | sv | tr>` ::
 
-Keybord layout for vnc server. Default is read from the '/etc/pve/datacenter.cfg' configuration file.It should not be necessary to set it.
+Keyboard layout for VNC server. This option is generally not required and is often better handled from within the guest OS.
 
 `--kvm` `<boolean>` ('default =' `1`)::
 
@@ -790,19 +1470,19 @@ Enable/disable KVM hardware virtualization.
 
 `--localtime` `<boolean>` ::
 
-Set the real time clock to local time. This is enabled by default if ostype indicates a Microsoft OS.
+Set the real time clock (RTC) to local time. This is enabled by default if the `ostype` indicates a Microsoft Windows OS.
 
-`--lock` `<backup | migrate | rollback | snapshot>` ::
+`--lock` `<backup | clone | create | migrate | rollback | snapshot | snapshot-delete | suspended | suspending>` ::
 
 Lock/unlock the VM.
 
-`--machine` `(pc|pc(-i440fx)?-\d+\.\d+(\.pxe)?|q35|pc-q35-\d+\.\d+(\.pxe)?)` ::
+`--machine` `[[type=]<machine type>] [,viommu=<intel|virtio>]` ::
 
-Specific the Qemu machine type.
+Specify the QEMU machine.
 
-`--memory` `<integer> (16 - N)` ('default =' `512`)::
+`--memory` `[current=]<integer>` ::
 
-Amount of RAM for the VM in MB. This is the maximum available memory when you use the balloon device.
+Memory properties.
 
 `--migrate_downtime` `<number> (0 - N)` ('default =' `0.1`)::
 
@@ -820,7 +1500,7 @@ Set a name for the VM. Only used on the configuration web interface.
 
 cloud-init: Sets DNS server IP address for a container. Create will automatically use the setting from the host if neither searchdomain nor nameserver are set.
 
-`--net[n]` `[model=]<enum> [,bridge=<bridge>] [,firewall=<1|0>] [,link_down=<1|0>] [,macaddr=<XX:XX:XX:XX:XX:XX>] [,queues=<integer>] [,rate=<number>] [,tag=<integer>] [,trunks=<vlanid[;vlanid...]>] [,<model>=<macaddr>]` ::
+`--net[n]` `[model=]<enum> [,bridge=<bridge>] [,firewall=<1|0>] [,link_down=<1|0>] [,macaddr=<XX:XX:XX:XX:XX:XX>] [,mtu=<integer>] [,queues=<integer>] [,rate=<number>] [,tag=<integer>] [,trunks=<vlanid[;vlanid...]>] [,<model>=<macaddr>]` ::
 
 Specify network devices.
 
@@ -836,7 +1516,7 @@ NUMA topology.
 
 Specifies whether a VM will be started during system bootup.
 
-`--ostype` `<l24 | l26 | other | solaris | w2k | w2k3 | w2k8 | win10 | win7 | win8 | wvista | wxp>` ::
+`--ostype` `<l24 | l26 | other | solaris | w2k | w2k3 | w2k8 | win10 | win11 | win7 | win8 | wvista | wxp>` ::
 
 Specify guest operating system.
 
@@ -856,13 +1536,17 @@ Allow reboot. If set to '0' the VM exit on reboot.
 
 Revert a pending change.
 
-`--sata[n]` `[file=]<volume> [,aio=<native|threads>] [,backup=<1|0>] [,bps=<bps>] [,bps_max_length=<seconds>] [,bps_rd=<bps>] [,bps_rd_max_length=<seconds>] [,bps_wr=<bps>] [,bps_wr_max_length=<seconds>] [,cache=<enum>] [,cyls=<integer>] [,detect_zeroes=<1|0>] [,discard=<ignore|on>] [,format=<enum>] [,heads=<integer>] [,iops=<iops>] [,iops_max=<iops>] [,iops_max_length=<seconds>] [,iops_rd=<iops>] [,iops_rd_max=<iops>] [,iops_rd_max_length=<seconds>] [,iops_wr=<iops>] [,iops_wr_max=<iops>] [,iops_wr_max_length=<seconds>] [,mbps=<mbps>] [,mbps_max=<mbps>] [,mbps_rd=<mbps>] [,mbps_rd_max=<mbps>] [,mbps_wr=<mbps>] [,mbps_wr_max=<mbps>] [,media=<cdrom|disk>] [,replicate=<1|0>] [,rerror=<ignore|report|stop>] [,secs=<integer>] [,serial=<serial>] [,shared=<1|0>] [,size=<DiskSize>] [,snapshot=<1|0>] [,trans=<none|lba|auto>] [,werror=<enum>]` ::
+`--rng0` `[source=]</dev/urandom|/dev/random|/dev/hwrng> [,max_bytes=<integer>] [,period=<integer>]` ::
 
-Use volume as SATA hard disk or CD-ROM (n is 0 to 5).
+Configure a VirtIO-based Random Number Generator.
+
+`--sata[n]` `[file=]<volume> [,aio=<native|threads|io_uring>] [,backup=<1|0>] [,bps=<bps>] [,bps_max_length=<seconds>] [,bps_rd=<bps>] [,bps_rd_max_length=<seconds>] [,bps_wr=<bps>] [,bps_wr_max_length=<seconds>] [,cache=<enum>] [,cyls=<integer>] [,detect_zeroes=<1|0>] [,discard=<ignore|on>] [,format=<enum>] [,heads=<integer>] [,import-from=<source volume>] [,iops=<iops>] [,iops_max=<iops>] [,iops_max_length=<seconds>] [,iops_rd=<iops>] [,iops_rd_max=<iops>] [,iops_rd_max_length=<seconds>] [,iops_wr=<iops>] [,iops_wr_max=<iops>] [,iops_wr_max_length=<seconds>] [,mbps=<mbps>] [,mbps_max=<mbps>] [,mbps_rd=<mbps>] [,mbps_rd_max=<mbps>] [,mbps_wr=<mbps>] [,mbps_wr_max=<mbps>] [,media=<cdrom|disk>] [,replicate=<1|0>] [,rerror=<ignore|report|stop>] [,secs=<integer>] [,serial=<serial>] [,shared=<1|0>] [,size=<DiskSize>] [,snapshot=<1|0>] [,ssd=<1|0>] [,trans=<none|lba|auto>] [,werror=<enum>] [,wwn=<wwn>]` ::
 
-`--scsi[n]` `[file=]<volume> [,aio=<native|threads>] [,backup=<1|0>] [,bps=<bps>] [,bps_max_length=<seconds>] [,bps_rd=<bps>] [,bps_rd_max_length=<seconds>] [,bps_wr=<bps>] [,bps_wr_max_length=<seconds>] [,cache=<enum>] [,cyls=<integer>] [,detect_zeroes=<1|0>] [,discard=<ignore|on>] [,format=<enum>] [,heads=<integer>] [,iops=<iops>] [,iops_max=<iops>] [,iops_max_length=<seconds>] [,iops_rd=<iops>] [,iops_rd_max=<iops>] [,iops_rd_max_length=<seconds>] [,iops_wr=<iops>] [,iops_wr_max=<iops>] [,iops_wr_max_length=<seconds>] [,iothread=<1|0>] [,mbps=<mbps>] [,mbps_max=<mbps>] [,mbps_rd=<mbps>] [,mbps_rd_max=<mbps>] [,mbps_wr=<mbps>] [,mbps_wr_max=<mbps>] [,media=<cdrom|disk>] [,queues=<integer>] [,replicate=<1|0>] [,rerror=<ignore|report|stop>] [,scsiblock=<1|0>] [,secs=<integer>] [,serial=<serial>] [,shared=<1|0>] [,size=<DiskSize>] [,snapshot=<1|0>] [,trans=<none|lba|auto>] [,werror=<enum>]` ::
+Use volume as SATA hard disk or CD-ROM (n is 0 to 5). Use the special syntax STORAGE_ID:SIZE_IN_GiB to allocate a new volume. Use STORAGE_ID:0 and the 'import-from' parameter to import from an existing volume.
 
-Use volume as SCSI hard disk or CD-ROM (n is 0 to 13).
+`--scsi[n]` `[file=]<volume> [,aio=<native|threads|io_uring>] [,backup=<1|0>] [,bps=<bps>] [,bps_max_length=<seconds>] [,bps_rd=<bps>] [,bps_rd_max_length=<seconds>] [,bps_wr=<bps>] [,bps_wr_max_length=<seconds>] [,cache=<enum>] [,cyls=<integer>] [,detect_zeroes=<1|0>] [,discard=<ignore|on>] [,format=<enum>] [,heads=<integer>] [,import-from=<source volume>] [,iops=<iops>] [,iops_max=<iops>] [,iops_max_length=<seconds>] [,iops_rd=<iops>] [,iops_rd_max=<iops>] [,iops_rd_max_length=<seconds>] [,iops_wr=<iops>] [,iops_wr_max=<iops>] [,iops_wr_max_length=<seconds>] [,iothread=<1|0>] [,mbps=<mbps>] [,mbps_max=<mbps>] [,mbps_rd=<mbps>] [,mbps_rd_max=<mbps>] [,mbps_wr=<mbps>] [,mbps_wr_max=<mbps>] [,media=<cdrom|disk>] [,product=<product>] [,queues=<integer>] [,replicate=<1|0>] [,rerror=<ignore|report|stop>] [,ro=<1|0>] [,scsiblock=<1|0>] [,secs=<integer>] [,serial=<serial>] [,shared=<1|0>] [,size=<DiskSize>] [,snapshot=<1|0>] [,ssd=<1|0>] [,trans=<none|lba|auto>] [,vendor=<vendor>] [,werror=<enum>] [,wwn=<wwn>]` ::
+
+Use volume as SCSI hard disk or CD-ROM (n is 0 to 30). Use the special syntax STORAGE_ID:SIZE_IN_GiB to allocate a new volume. Use STORAGE_ID:0 and the 'import-from' parameter to import from an existing volume.
 
 `--scsihw` `<lsi | lsi53c810 | megasas | pvscsi | virtio-scsi-pci | virtio-scsi-single>` ('default =' `lsi`)::
 
@@ -884,7 +1568,7 @@ Amount of memory shares for auto-ballooning. The larger the number is, the more
 
 Ignore locks - only root is allowed to use this option.
 
-`--smbios1` `[family=<string>] [,manufacturer=<string>] [,product=<string>] [,serial=<string>] [,sku=<string>] [,uuid=<UUID>] [,version=<string>]` ::
+`--smbios1` `[base64=<1|0>] [,family=<Base64 encoded string>] [,manufacturer=<Base64 encoded string>] [,product=<Base64 encoded string>] [,serial=<Base64 encoded string>] [,sku=<Base64 encoded string>] [,uuid=<UUID>] [,version=<Base64 encoded string>]` ::
 
 Specify SMBIOS type 1 fields.
 
@@ -896,13 +1580,17 @@ The number of CPUs. Please use option -sockets instead.
 
 The number of CPU sockets.
 
+`--spice_enhancements` `[foldersharing=<1|0>] [,videostreaming=<off|all|filter>]` ::
+
+Configure additional enhancements for SPICE.
+
 `--sshkeys` `<filepath>` ::
 
 cloud-init: Setup public SSH keys (one key per line, OpenSSH format).
 
 `--startdate` `(now | YYYY-MM-DD | YYYY-MM-DDTHH:MM:SS)` ('default =' `now`)::
 
-Set the initial date of the real time clock. Valid format for date are: 'now' or '2006-06-17T16:01:21' or '2006-06-17'.
+Set the initial date of the real time clock. Valid format for date are:'now' or '2006-06-17T16:01:21' or '2006-06-17'.
 
 `--startup` `[[order=]\d+] [,up=\d+] [,down=\d+] ` ::
 
@@ -912,6 +1600,10 @@ Startup and shutdown behavior. Order is a non-negative number defining the gener
 
 Enable/disable the USB tablet device.
 
+`--tags` `<string>` ::
+
+Tags of the VM. This is only meta information.
+
 `--tdf` `<boolean>` ('default =' `0`)::
 
 Enable/disable time drift fix.
@@ -920,27 +1612,35 @@ Enable/disable time drift fix.
 
 Enable/disable Template.
 
-`--unused[n]` `<string>` ::
+`--tpmstate0` `[file=]<volume> [,import-from=<source volume>] [,size=<DiskSize>] [,version=<v1.2|v2.0>]` ::
+
+Configure a Disk for storing TPM state. The format is fixed to 'raw'. Use the special syntax STORAGE_ID:SIZE_IN_GiB to allocate a new volume. Note that SIZE_IN_GiB is ignored here and 4 MiB will be used instead. Use STORAGE_ID:0 and the 'import-from' parameter to import from an existing volume.
+
+`--unused[n]` `[file=]<volume>` ::
 
 Reference to unused volumes. This is used internally, and should not be modified manually.
 
-`--usb[n]` `[host=]<HOSTUSBDEVICE|spice> [,usb3=<1|0>]` ::
+`--usb[n]` `[[host=]<HOSTUSBDEVICE|spice>] [,mapping=<mapping-id>] [,usb3=<1|0>]` ::
 
-Configure an USB device (n is 0 to 4).
+Configure an USB device (n is 0 to 4, for machine version >= 7.1 and ostype l26 or windows > 7, n can be up to 14).
 
 `--vcpus` `<integer> (1 - N)` ('default =' `0`)::
 
 Number of hotplugged vcpus.
 
-`--vga` `<cirrus | qxl | qxl2 | qxl3 | qxl4 | serial0 | serial1 | serial2 | serial3 | std | vmware>` ::
+`--vga` `[[type=]<enum>] [,clipboard=<vnc>] [,memory=<integer>]` ::
 
-Select the VGA type.
+Configure the VGA hardware.
 
-`--virtio[n]` `[file=]<volume> [,aio=<native|threads>] [,backup=<1|0>] [,bps=<bps>] [,bps_max_length=<seconds>] [,bps_rd=<bps>] [,bps_rd_max_length=<seconds>] [,bps_wr=<bps>] [,bps_wr_max_length=<seconds>] [,cache=<enum>] [,cyls=<integer>] [,detect_zeroes=<1|0>] [,discard=<ignore|on>] [,format=<enum>] [,heads=<integer>] [,iops=<iops>] [,iops_max=<iops>] [,iops_max_length=<seconds>] [,iops_rd=<iops>] [,iops_rd_max=<iops>] [,iops_rd_max_length=<seconds>] [,iops_wr=<iops>] [,iops_wr_max=<iops>] [,iops_wr_max_length=<seconds>] [,iothread=<1|0>] [,mbps=<mbps>] [,mbps_max=<mbps>] [,mbps_rd=<mbps>] [,mbps_rd_max=<mbps>] [,mbps_wr=<mbps>] [,mbps_wr_max=<mbps>] [,media=<cdrom|disk>] [,replicate=<1|0>] [,rerror=<ignore|report|stop>] [,secs=<integer>] [,serial=<serial>] [,shared=<1|0>] [,size=<DiskSize>] [,snapshot=<1|0>] [,trans=<none|lba|auto>] [,werror=<enum>]` ::
+`--virtio[n]` `[file=]<volume> [,aio=<native|threads|io_uring>] [,backup=<1|0>] [,bps=<bps>] [,bps_max_length=<seconds>] [,bps_rd=<bps>] [,bps_rd_max_length=<seconds>] [,bps_wr=<bps>] [,bps_wr_max_length=<seconds>] [,cache=<enum>] [,cyls=<integer>] [,detect_zeroes=<1|0>] [,discard=<ignore|on>] [,format=<enum>] [,heads=<integer>] [,import-from=<source volume>] [,iops=<iops>] [,iops_max=<iops>] [,iops_max_length=<seconds>] [,iops_rd=<iops>] [,iops_rd_max=<iops>] [,iops_rd_max_length=<seconds>] [,iops_wr=<iops>] [,iops_wr_max=<iops>] [,iops_wr_max_length=<seconds>] [,iothread=<1|0>] [,mbps=<mbps>] [,mbps_max=<mbps>] [,mbps_rd=<mbps>] [,mbps_rd_max=<mbps>] [,mbps_wr=<mbps>] [,mbps_wr_max=<mbps>] [,media=<cdrom|disk>] [,replicate=<1|0>] [,rerror=<ignore|report|stop>] [,ro=<1|0>] [,secs=<integer>] [,serial=<serial>] [,shared=<1|0>] [,size=<DiskSize>] [,snapshot=<1|0>] [,trans=<none|lba|auto>] [,werror=<enum>]` ::
 
-Use volume as VIRTIO hard disk (n is 0 to 15).
+Use volume as VIRTIO hard disk (n is 0 to 15). Use the special syntax STORAGE_ID:SIZE_IN_GiB to allocate a new volume. Use STORAGE_ID:0 and the 'import-from' parameter to import from an existing volume.
 
-`--vmstatestorage` `<string>` ::
+`--vmgenid` `<UUID>` ('default =' `1 (autogenerated)`)::
+
+Set VM Generation ID. Use '1' to autogenerate on create or update, pass '0' to disable explicitly.
+
+`--vmstatestorage` `<storage ID>` ::
 
 Default storage for VM state volumes/files.
 
@@ -952,7 +1652,7 @@ Create a virtual hardware watchdog device.
 
 Show command line which is used to start the VM (debug info).
 
-`<vmid>`: `<integer> (1 - N)` ::
+`<vmid>`: `<integer> (100 - 999999999)` ::
 
 The (unique) ID of the VM.
 
@@ -960,13 +1660,17 @@ The (unique) ID of the VM.
 
 Puts each option on a new line to enhance human readability
 
+`--snapshot` `<string>` ::
+
+Fetch config values from given snapshot.
+
 *qm shutdown* `<vmid>` `[OPTIONS]`
 
 Shutdown virtual machine. This is similar to pressing the power button on a
-physical machine.This will send an ACPI event for the guest OS, which
+physical machine. This will send an ACPI event for the guest OS, which
 should then proceed to a clean shutdown.
 
-`<vmid>`: `<integer> (1 - N)` ::
+`<vmid>`: `<integer> (100 - 999999999)` ::
 
 The (unique) ID of the VM.
 
@@ -990,7 +1694,7 @@ Wait maximal timeout seconds.
 
 Snapshot a VM.
 
-`<vmid>`: `<integer> (1 - N)` ::
+`<vmid>`: `<integer> (100 - 999999999)` ::
 
 The (unique) ID of the VM.
 
@@ -1010,13 +1714,17 @@ Save the vmstate
 
 Start virtual machine.
 
-`<vmid>`: `<integer> (1 - N)` ::
+`<vmid>`: `<integer> (100 - 999999999)` ::
 
 The (unique) ID of the VM.
 
-`--machine` `(pc|pc(-i440fx)?-\d+\.\d+(\.pxe)?|q35|pc-q35-\d+\.\d+(\.pxe)?)` ::
+`--force-cpu` `<string>` ::
 
-Specific the Qemu machine type.
+Override QEMU's -cpu argument with the given string.
+
+`--machine` `[[type=]<machine type>] [,viommu=<intel|virtio>]` ::
+
+Specify the QEMU machine.
 
 `--migratedfrom` `<string>` ::
 
@@ -1040,13 +1748,17 @@ Some command save/restore state from this location.
 
 `--targetstorage` `<string>` ::
 
-Target storage for the migration. (Can be '1' to use the same storage id as on the source node.)
+Mapping from source to target storages. Providing only a single storage ID maps all source storages to that storage. Providing the special value '1' will map each source storage to itself.
+
+`--timeout` `<integer> (0 - N)` ('default =' `max(30, vm memory in GiB)`)::
+
+Wait maximal timeout seconds.
 
 *qm status* `<vmid>` `[OPTIONS]`
 
 Show VM status.
 
-`<vmid>`: `<integer> (1 - N)` ::
+`<vmid>`: `<integer> (100 - 999999999)` ::
 
 The (unique) ID of the VM.
 
@@ -1056,10 +1768,10 @@ Verbose output format
 
 *qm stop* `<vmid>` `[OPTIONS]`
 
-Stop virtual machine. The qemu process will exit immediately. Thisis akin
-to pulling the power plug of a running computer and may damage the VM data
+Stop virtual machine. The qemu process will exit immediately. This is akin
+to pulling the power plug of a running computer and may damage the VM data.
 
-`<vmid>`: `<integer> (1 - N)` ::
+`<vmid>`: `<integer> (100 - 999999999)` ::
 
 The (unique) ID of the VM.
 
@@ -1071,6 +1783,10 @@ Do not deactivate storage volumes.
 
 The cluster node name.
 
+`--overrule-shutdown` `<boolean>` ('default =' `0`)::
+
+Try to abort active 'qmshutdown' tasks before stopping.
+
 `--skiplock` `<boolean>` ::
 
 Ignore locks - only root is allowed to use this option.
@@ -1083,7 +1799,7 @@ Wait maximal timeout seconds.
 
 Suspend virtual machine.
 
-`<vmid>`: `<integer> (1 - N)` ::
+`<vmid>`: `<integer> (100 - 999999999)` ::
 
 The (unique) ID of the VM.
 
@@ -1091,15 +1807,25 @@ The (unique) ID of the VM.
 
 Ignore locks - only root is allowed to use this option.
 
+`--statestorage` `<storage ID>` ::
+
+The storage for the VM state
++
+NOTE: Requires option(s): `todisk`
+
+`--todisk` `<boolean>` ('default =' `0`)::
+
+If set, suspends the VM to disk. Will be resumed on next VM start.
+
 *qm template* `<vmid>` `[OPTIONS]`
 
 Create a Template.
 
-`<vmid>`: `<integer> (1 - N)` ::
+`<vmid>`: `<integer> (100 - 999999999)` ::
 
 The (unique) ID of the VM.
 
-`--disk` `<efidisk0 | ide0 | ide1 | ide2 | ide3 | sata0 | sata1 | sata2 | sata3 | sata4 | sata5 | scsi0 | scsi1 | scsi10 | scsi11 | scsi12 | scsi13 | scsi2 | scsi3 | scsi4 | scsi5 | scsi6 | scsi7 | scsi8 | scsi9 | virtio0 | virtio1 | virtio10 | virtio11 | virtio12 | virtio13 | virtio14 | virtio15 | virtio2 | virtio3 | virtio4 | virtio5 | virtio6 | virtio7 | virtio8 | virtio9>` ::
+`--disk` `<efidisk0 | ide0 | ide1 | ide2 | ide3 | sata0 | sata1 | sata2 | sata3 | sata4 | sata5 | scsi0 | scsi1 | scsi10 | scsi11 | scsi12 | scsi13 | scsi14 | scsi15 | scsi16 | scsi17 | scsi18 | scsi19 | scsi2 | scsi20 | scsi21 | scsi22 | scsi23 | scsi24 | scsi25 | scsi26 | scsi27 | scsi28 | scsi29 | scsi3 | scsi30 | scsi4 | scsi5 | scsi6 | scsi7 | scsi8 | scsi9 | tpmstate0 | virtio0 | virtio1 | virtio10 | virtio11 | virtio12 | virtio13 | virtio14 | virtio15 | virtio2 | virtio3 | virtio4 | virtio5 | virtio6 | virtio7 | virtio8 | virtio9>` ::
 
 If you want to convert only 1 disk to base image.
 
@@ -1108,7 +1834,7 @@ If you want to convert only 1 disk to base image.
 Open a terminal using a serial device (The VM need to have a serial device
 configured, for example 'serial0: socket')
 
-`<vmid>`: `<integer> (1 - N)` ::
+`<vmid>`: `<integer> (100 - 999999999)` ::
 
 The (unique) ID of the VM.
 
@@ -1120,27 +1846,15 @@ Escape character.
 
 Select the serial device. By default we simply use the first suitable device.
 
-*qm unlink* `<vmid> --idlist <string>` `[OPTIONS]`
-
-Unlink/delete disk images.
-
-`<vmid>`: `<integer> (1 - N)` ::
-
-The (unique) ID of the VM.
-
-`--force` `<boolean>` ::
-
-Force physical removal. Without this, we simple remove the disk from the config file and create an additional configuration entry called 'unused[n]', which contains the volume ID. Unlink of unused[n] always cause physical removal.
-
-`--idlist` `<string>` ::
+*qm unlink*
 
-A list of disk IDs you want to delete.
+An alias for 'qm disk unlink'.
 
 *qm unlock* `<vmid>`
 
 Unlock the VM.
 
-`<vmid>`: `<integer> (1 - N)` ::
+`<vmid>`: `<integer> (100 - 999999999)` ::
 
 The (unique) ID of the VM.
 
@@ -1148,7 +1862,7 @@ The (unique) ID of the VM.
 
 Proxy VM VNC traffic to stdin/stdout
 
-`<vmid>`: `<integer> (1 - N)` ::
+`<vmid>`: `<integer> (100 - 999999999)` ::
 
 The (unique) ID of the VM.
 
@@ -1156,7 +1870,7 @@ The (unique) ID of the VM.
 
 Wait until the VM is stopped.
 
-`<vmid>`: `<integer> (1 - N)` ::
+`<vmid>`: `<integer> (100 - 999999999)` ::
 
 The (unique) ID of the VM.