Commit Graph
17 Commits
Author SHA1 Message Date
upstream a6c6b6e0f2 Upstream proxmox-git/qemu-server state of the touched files before 07b2af3b17 2026-10-08 01:24:03 +02:00
dualfroz 5f10cfd754 fix #7525: vga: allow setting the number of outputs for VirtIO GPU
With SPICE and QXL, Linux guests get 'max_outputs=4' on the display
device, so they can use up to four displays with a single device. For
the VirtIO GPU, there is no way to change QEMU's default of a single
output, so using multiple displays requires passing the whole device
via custom arguments.

Add a 'max-outputs' option to the 'vga' property, which sets the
'max_outputs' property of the VirtIO GPU, for both 'virtio' and
'virtio-gl'. QEMU supports up to 16 outputs. Other display types
reject the option, as QXL handles multiple displays on its own.

Signed-off-by: Michal Fox <me@dualfroz.com>
2026-10-03 01:53:20 +02:00
upstream 1b6f27e716 Upstream proxmox-git/qemu-server state of the touched files before b3ce7ed62d 2026-10-03 01:53:20 +02:00
dualfroz fdb92fde7d fix #5858: tpmstate: allow excluding the TPM state from backups
Disks can be excluded from backups with the 'backup' flag, but the TPM
state does not support it. Guests can keep secrets in the TPM, like
the key to automatically unlock disk encryption, so a backup that
includes the TPM state can be enough to get at the data. Users might
want to keep the TPM state out of the backup and rely on a recovery
key after restoring instead.

Add the 'backup' flag to the TPM state, like for other disks. Backups
already honor it for all volumes of the configuration, so a TPM state
with 'backup=0' is skipped and logged as excluded in the backup task
log, and on restore, its line is commented out like for other excluded
disks.

Signed-off-by: Michal Fox <me@dualfroz.com>
2026-10-03 01:49:04 +02:00
upstream 9e5e8d273f Upstream proxmox-git/qemu-server state of the touched files before 107557cfdc 2026-10-03 01:49:04 +02:00
dualfroz fed54ce52a fix #4012: migrate: mention snapshots referencing a local ISO image
When a VM has no local ISO image attached anymore, but one of its
snapshots still references it, migration fails with:

  can't migrate local disk 'local:iso/debian.iso': local cdrom image

which does not tell where the image is coming from, since it is not
visible in the current configuration of the VM.

Add the names of the snapshots referencing the image to the error in
that case, like it is already done for a physical CD/DVD drive. The
check for the physical drive now reuses the same hint.

Signed-off-by: Michal Fox <me@dualfroz.com>
2026-10-03 01:44:51 +02:00
upstream 5fa8c46714 Upstream proxmox-git/qemu-server state of the touched files before eb22d44aeb 2026-10-03 01:44:51 +02:00
dualfroz 5ef4888910 fix #6391: restore: fall back to automatic VM state storage if unavailable
Restoring a backup keeps the 'vmstatestorage' option of the backed up
VM. When the backup is restored on another node or cluster, that
storage might not exist there or not be enabled for the node, so that
hibernating the VM or taking a snapshot including RAM fails later on,
for example with "storage 'local-zfs-pve1' does not exist".

If the configured VM state storage is not available on the node the
backup is restored to, drop the option, so that the storage is
selected automatically, like for VMs without it, and log that in the
restore task log.

A 'vmstatestorage' passed explicitly when restoring is applied after
this and is not affected.

Signed-off-by: Michal Fox <me@dualfroz.com>
2026-10-03 01:40:02 +02:00
upstream b2fcf5405f Upstream proxmox-git/qemu-server state of the touched files before 7e62afd562 2026-10-03 01:40:02 +02:00
dualfroz 5bbb9a8f1d fix #7036: cloud-init: configdrive2: fix DNS settings
The network configuration for configdrive2 is in the format of
/etc/network/interfaces, where the DNS settings are configured with the
'dns-nameservers' and 'dns-search' options in an interface stanza.

But they were written with an underscore instead of a dash, and right
after the stanza of the loopback interface, so cloud-init ignored them
and the configured nameservers and search domains never ended up in the
guest. Just using the correct option names would not be enough, as
cloud-init does not apply the DNS settings of the loopback interface
when rendering the configuration with netplan, for example.

Write the options with a dash and add them to the stanzas of the
statically configured interfaces, like it is already done for the
cloudbase-init configuration.

Signed-off-by: Michal Fox <me@dualfroz.com>
2026-10-02 16:37:36 +02:00
upstream 2c458b3b43 Upstream proxmox-git/qemu-server state of the touched files before a9257fd90b 2026-10-02 16:37:36 +02:00
dualfroz b8ae251afe fix #7173: write config: drop empty tag list
When the last tag of a VM gets removed, for example in the web UI, the
API gets an empty 'tags' value, which then ends up as an empty 'tags:'
line in the config and in the output of 'qm config'. As the config
parser reads that line back as a single space, it also gets written out
again on every following config change.

Skip a tag list without any tag when writing the config, which also
cleans up existing configs with such a line on their next change. The
pending section still needs to keep it, otherwise the removal of all
tags would get lost between writing the pending change and applying it.

Signed-off-by: Michal Fox <me@dualfroz.com>
2026-10-02 16:11:58 +02:00
upstream 91f98b77f4 Upstream proxmox-git/qemu-server state of the touched files before e84bce8d0f 2026-10-02 16:11:58 +02:00
dualfroz c5a01a4a75 fix #6907: memory: allow multi-digit host nodes with hugepages
When hugepages are enabled, each custom NUMA node must be bound to a
single host node. This was checked with a regex that only accepts a
single digit, so any host node from 10 upwards was rejected with a
misleading "more than 1 hostnode value" error, making hugepages
unusable on hosts with more than ten NUMA nodes.

Accept any single node number instead. Ranges and lists are still
rejected as before.

Signed-off-by: Michal Fox <me@dualfroz.com>
Reviewed-by: Max R. Carrara <m.carrara@proxmox.com>
Tested-by: Max R. Carrara <m.carrara@proxmox.com>
Link: https://lore.proxmox.com/20260926084115.7-1-me@dualfroz.com
[TL: add a multi-digit host node case to the memory tests]
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2026-10-14 14:06:30 +02:00
upstream 0e162cc4f4 Upstream proxmox-git/qemu-server state of the touched files before 167f3d70a5 2026-09-26 08:41:15 +00:00
dualfroz 5021bad460 fix #6907: memory: allow multi-digit host nodes with hugepages
When hugepages are enabled, each custom NUMA node must be bound to a
single host node. This was checked with a regex that only accepts a
single digit, so any host node from 10 upwards was rejected with a
misleading "more than 1 hostnode value" error, making hugepages
unusable on hosts with more than ten NUMA nodes.

Accept any single node number instead. Ranges and lists are still
rejected as before.

Signed-off-by: Michal Fox <me@dualfroz.com>
2026-09-25 11:27:21 +02:00
upstream d4b21684d1 Upstream proxmox-git/qemu-server state of the touched files before 8966f4416d 2026-09-25 11:27:21 +02:00