Missing drive handling during restore: Currently, the configuration line for a drive that is marked for backup (i.e. 'backup' flag not explicitly set to 0), but missing from the restore map will be added verbatim to the restored configuration.
As reported in the community forum [0], this can cause issues with a VM with a configured EFI disk, but not using OVMF BIOS. In such a case, the EFI disk is not backed up, see the get_backup_volumes() helper in QemuConfig.pm. Writing out references to non-existent volumes to the restored config will lead to issues starting the VM. Write such references as comments instead, like is already done for volumes explicitly excluded from backup. But add a warning since this is not expected, and info for the EFI disk case. Owned CD-ROM handling: Currently, all volumes with a 'media=cdrom' marker are excluded from backup. For owned volumes, this is very surprising. Treat owned CD-ROM volumes like other volumes and consider the 'backup' marker instead. Cloud-init volumes are owned, but still skipped, because they are generated from the configuration/snippets. Add a reminder to start removing owned CD-ROMs with PVE 9 when destroying a VM. The first 5 qemu-server patches are improvements that make sense even if we don't go for the rest. The get_backup_volumes() patches belong together and are a prerequisite for qemu-server patch "backup: include owned CD-ROM volumes". No hard dependency bumps, but optionally pve-manager -> pve-guest-common -> qemu-server,pve-container for the get_backup_volumes() signature change and to make the change from "backup: include owned CD-ROM volumes" take effect. guest-common: Fiona Ebner (1): abstract config: make get_backup_volumes() method more flexible src/PVE/AbstractConfig.pm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) manager: Fiona Ebner (1): api: backup: adapt to new get_backup_volumes() signature PVE/API2/Backup.pm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) qemu-server: Fiona Ebner (9): cloudinit: avoid undefined value warning when no searchdomain is defined drive: move vm_is_volid_owner() and try_deallocate_drive() helpers to Drive module test: restore config: use diff to make failure human-readable test: restore config: add config with missing disks test: restore config: test behavior for disks with absolute paths backup restore: improve missing drive handling backup: adapt to new get_backup_volumes() signature backup: include owned CD-ROM volumes destroy vm: add reminder to also remove owned CD-ROMs starting with PVE 9 PVE/API2/Qemu.pm | 8 +++- PVE/QemuConfig.pm | 12 +++++- PVE/QemuServer.pm | 55 ++++++++------------------- PVE/QemuServer/Cloudinit.pm | 2 +- PVE/QemuServer/Drive.pm | 38 ++++++++++++++++++ PVE/VZDump/QemuServer.pm | 2 +- test/restore-config-expected/110.conf | 16 ++++++++ test/restore-config-expected/140.conf | 17 +++++++++ test/restore-config-input/110.conf | 18 +++++++++ test/restore-config-input/140.conf | 18 +++++++++ test/run_qemu_restore_config_tests.pl | 13 +++++-- 11 files changed, 149 insertions(+), 50 deletions(-) create mode 100644 test/restore-config-expected/110.conf create mode 100644 test/restore-config-expected/140.conf create mode 100644 test/restore-config-input/110.conf create mode 100644 test/restore-config-input/140.conf container: Fiona Ebner (1): backup: adapt to new get_backup_volumes() signature src/PVE/LXC/Config.pm | 2 +- src/PVE/VZDump/LXC.pm | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) Summary over all repositories: 15 files changed, 154 insertions(+), 55 deletions(-) -- Generated by git-murpp 0.5.0 _______________________________________________ pve-devel mailing list pve-devel@lists.proxmox.com https://lists.proxmox.com/cgi-bin/mailman/listinfo/pve-devel