From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from firstgate.proxmox.com (firstgate.proxmox.com [IPv6:2a01:7e0:0:424::9]) by lore.proxmox.com (Postfix) with ESMTPS id BA3961FF16B for ; Tue, 12 Aug 2025 15:13:17 +0200 (CEST) Received: from firstgate.proxmox.com (localhost [127.0.0.1]) by firstgate.proxmox.com (Proxmox) with ESMTP id 870E8D9DD; Tue, 12 Aug 2025 15:14:53 +0200 (CEST) Date: Tue, 12 Aug 2025 15:14:45 +0200 From: Fabian =?iso-8859-1?q?Gr=FCnbichler?= To: Proxmox VE development discussion References: <20250812130427.102436-1-f.ebner@proxmox.com> In-Reply-To: <20250812130427.102436-1-f.ebner@proxmox.com> MIME-Version: 1.0 User-Agent: astroid/0.17.0 (https://github.com/astroidmail/astroid) Message-Id: <1755004452.bvcuv1yh4s.astroid@yuna.none> X-Bm-Milter-Handled: 55990f41-d878-4baa-be0a-ee34c49e34d2 X-Bm-Transport-Timestamp: 1755004457723 X-SPAM-LEVEL: Spam detection results: 0 AWL -0.077 Adjusted score from AWL reputation of From: address BAYES_00 -1.9 Bayes spam probability is 0 to 1% DMARC_MISSING 0.1 Missing DMARC policy KAM_DMARC_STATUS 0.01 Test Rule for DKIM or SPF Failure with Strict Alignment KAM_LOTSOFHASH 0.25 Emails with lots of hash-like gibberish RCVD_IN_VALIDITY_CERTIFIED_BLOCKED 0.001 ADMINISTRATOR NOTICE: The query to Validity was blocked. See https://knowledge.validity.com/hc/en-us/articles/20961730681243 for more information. RCVD_IN_VALIDITY_RPBL_BLOCKED 0.001 ADMINISTRATOR NOTICE: The query to Validity was blocked. See https://knowledge.validity.com/hc/en-us/articles/20961730681243 for more information. RCVD_IN_VALIDITY_SAFE_BLOCKED 0.001 ADMINISTRATOR NOTICE: The query to Validity was blocked. See https://knowledge.validity.com/hc/en-us/articles/20961730681243 for more information. SPF_HELO_NONE 0.001 SPF: HELO does not publish an SPF Record SPF_PASS -0.001 SPF: sender matches SPF record URIBL_BLOCKED 0.001 ADMINISTRATOR NOTICE: The query to URIBL was blocked. See http://wiki.apache.org/spamassassin/DnsBlocklists#dnsbl-block for more information. [8006.pid, proxmox.com, qemuserver.pm] Subject: Re: [pve-devel] [PATCH qemu-server] template backup: work around regression with IDE/SATA and blockdev X-BeenThere: pve-devel@lists.proxmox.com X-Mailman-Version: 2.1.29 Precedence: list List-Id: Proxmox VE development discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: Proxmox VE development discussion Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Errors-To: pve-devel-bounces@lists.proxmox.com Sender: "pve-devel" On August 12, 2025 3:03 pm, Fiona Ebner wrote: > IDE/SATA do not support being configured as read-only, so the inserted > block node needs to be marked as writable too, but -blockdev will > complain if it's marked as writable but the actual backing device is > read-only (e.g. read-only LV). > > To cleanly solve this, 'ide-hd', which is used by both IDE and SATA, > should not be used as the front-end, but disks be attached differently > for template backup. > > For now, use a stop-gap fix, setting the machine version to pre-10.0 > in the temporary config used to start the template VM in pre-launch > mode for backup. With -drive, it seems that the check for the actual > device being the same r/rw mode is not done. > > Reported in the community forum: > https://forum.proxmox.com/threads/169638/ > > Signed-off-by: Fiona Ebner > --- > src/PVE/QemuServer.pm | 7 +++++++ > src/test/cfg2cmd/efi-raw-template.conf.cmd | 7 +++---- > .../cfg2cmd/q35-linux-hostpci-template.conf.cmd | 12 +++++------- > src/test/cfg2cmd/simple1-template.conf.cmd | 15 +++++++-------- > 4 files changed, 22 insertions(+), 19 deletions(-) > > diff --git a/src/PVE/QemuServer.pm b/src/PVE/QemuServer.pm > index cfc54568..6781311e 100644 > --- a/src/PVE/QemuServer.pm > +++ b/src/PVE/QemuServer.pm > @@ -3212,6 +3212,13 @@ sub config_to_command { > template => 1, # in case below code checks that > kvm => 0, # to prevent an error on hosts without virtualization extensions > vga => 'none', # to not start a vnc server > + # FIXME machine version is set to pre-10.0, because IDE/SATA do not support being > + # configured as read-only, so the inserted block node needs to be marked as writable > + # too, but -blockdev will complain if it's marked as writable but the actual backing > + # device is read-only (e.g. read-only LV). > + # To cleanly solve this, ide-hd should not be used as the front-end, but disks be > + # attached differently for template backup. > + machine => 'pc-i440fx-9.2+pve1', this should be conditionalized on not using snapshot-as-volume-chain qcow2 images and/or IDE devices being present to avoid regressing not yet broken setups.. > scsihw => $conf->{scsihw}, # so that the scsi disks are correctly added > bios => $conf->{bios}, # so efidisk gets included if it exists > name => $conf->{name}, # so it's correct in the process list > diff --git a/src/test/cfg2cmd/efi-raw-template.conf.cmd b/src/test/cfg2cmd/efi-raw-template.conf.cmd > index d027d776..3a6c1b04 100644 > --- a/src/test/cfg2cmd/efi-raw-template.conf.cmd > +++ b/src/test/cfg2cmd/efi-raw-template.conf.cmd > @@ -8,9 +8,8 @@ > -mon 'chardev=qmp-event,mode=control' \ > -pidfile /var/run/qemu-server/8006.pid \ > -daemonize \ > - -object '{"id":"throttle-drive-efidisk0","limits":{},"qom-type":"throttle-group"}' \ > - -blockdev '{"driver":"raw","file":{"driver":"file","filename":"/usr/share/pve-edk2-firmware//OVMF_CODE.fd"},"node-name":"pflash0","read-only":true}' \ > - -blockdev '{"detect-zeroes":"on","discard":"ignore","driver":"throttle","file":{"cache":{"direct":false,"no-flush":false},"detect-zeroes":"on","discard":"ignore","driver":"raw","file":{"aio":"io_uring","cache":{"direct":false,"no-flush":false},"detect-zeroes":"on","discard":"ignore","driver":"file","filename":"/var/lib/vz/images/100/base-100-disk-0.raw","node-name":"e2ab65c8ec567acbeb645244f6c4982","read-only":true},"node-name":"f2ab65c8ec567acbeb645244f6c4982","read-only":true,"size":131072},"node-name":"drive-efidisk0","read-only":true,"throttle-group":"throttle-drive-efidisk0"}' \ > + -drive 'if=pflash,unit=0,format=raw,readonly=on,file=/usr/share/pve-edk2-firmware//OVMF_CODE.fd' \ > + -drive 'if=pflash,unit=1,id=drive-efidisk0,format=raw,file=/var/lib/vz/images/100/base-100-disk-0.raw,size=131072,readonly=on' \ > -smp '1,sockets=1,cores=1,maxcpus=1' \ > -nodefaults \ > -boot 'menu=on,strict=on,reboot-timeout=1000,splash=/usr/share/qemu-server/bootsplash.jpg' \ > @@ -26,5 +25,5 @@ > -device 'usb-tablet,id=tablet,bus=uhci.0,port=1' \ > -device 'virtio-balloon-pci,id=balloon0,bus=pci.0,addr=0x3,free-page-reporting=on' \ > -iscsi 'initiator-name=iqn.1993-08.org.debian:01:aabbccddeeff' \ > - -machine 'pflash0=pflash0,pflash1=drive-efidisk0,accel=tcg,type=pc+pve0' \ > + -machine 'accel=tcg,type=pc-i440fx-9.2+pve1' \ > -snapshot > diff --git a/src/test/cfg2cmd/q35-linux-hostpci-template.conf.cmd b/src/test/cfg2cmd/q35-linux-hostpci-template.conf.cmd > index 20e3c81d..7172fb4c 100644 > --- a/src/test/cfg2cmd/q35-linux-hostpci-template.conf.cmd > +++ b/src/test/cfg2cmd/q35-linux-hostpci-template.conf.cmd > @@ -8,9 +8,8 @@ > -mon 'chardev=qmp-event,mode=control' \ > -pidfile /var/run/qemu-server/8006.pid \ > -daemonize \ > - -object '{"id":"throttle-drive-efidisk0","limits":{},"qom-type":"throttle-group"}' \ > - -blockdev '{"driver":"raw","file":{"driver":"file","filename":"/usr/share/pve-edk2-firmware//OVMF_CODE.fd"},"node-name":"pflash0","read-only":true}' \ > - -blockdev '{"detect-zeroes":"on","discard":"ignore","driver":"throttle","file":{"cache":{"direct":false,"no-flush":false},"detect-zeroes":"on","discard":"ignore","driver":"qcow2","file":{"aio":"io_uring","cache":{"direct":false,"no-flush":false},"detect-zeroes":"on","discard":"ignore","driver":"file","filename":"/var/lib/vz/images/100/base-100-disk-1.qcow2","node-name":"eb6bec0e3c391fabb7fb7dd73ced9bf","read-only":true},"node-name":"fb6bec0e3c391fabb7fb7dd73ced9bf","read-only":true},"node-name":"drive-efidisk0","read-only":true,"throttle-group":"throttle-drive-efidisk0"}' \ > + -drive 'if=pflash,unit=0,format=raw,readonly=on,file=/usr/share/pve-edk2-firmware//OVMF_CODE.fd' \ > + -drive 'if=pflash,unit=1,id=drive-efidisk0,format=qcow2,file=/var/lib/vz/images/100/base-100-disk-1.qcow2,readonly=on' \ > -smp '1,sockets=1,cores=1,maxcpus=1' \ > -nodefaults \ > -boot 'menu=on,strict=on,reboot-timeout=1000,splash=/usr/share/qemu-server/bootsplash.jpg' \ > @@ -18,7 +17,6 @@ > -nographic \ > -cpu qemu64 \ > -m 512 \ > - -object '{"id":"throttle-drive-scsi0","limits":{},"qom-type":"throttle-group"}' \ > -global 'PIIX4_PM.disable_s3=1' \ > -global 'PIIX4_PM.disable_s4=1' \ > -device 'pci-bridge,id=pci.1,chassis_nr=1,bus=pci.0,addr=0x1e' \ > @@ -28,7 +26,7 @@ > -device 'virtio-balloon-pci,id=balloon0,bus=pci.0,addr=0x3,free-page-reporting=on' \ > -iscsi 'initiator-name=iqn.1993-08.org.debian:01:aabbccddeeff' \ > -device 'virtio-scsi-pci,id=scsihw0,bus=pci.0,addr=0x5' \ > - -blockdev '{"detect-zeroes":"on","discard":"ignore","driver":"throttle","file":{"cache":{"direct":true,"no-flush":false},"detect-zeroes":"on","discard":"ignore","driver":"raw","file":{"aio":"io_uring","cache":{"direct":true,"no-flush":false},"detect-zeroes":"on","discard":"ignore","driver":"file","filename":"/var/lib/vz/images/100/base-100-disk-2.raw","node-name":"e24dfe239201bb9924fc4cfb899ca70","read-only":true},"node-name":"f24dfe239201bb9924fc4cfb899ca70","read-only":true},"node-name":"drive-scsi0","read-only":true,"throttle-group":"throttle-drive-scsi0"}' \ > - -device 'scsi-hd,bus=scsihw0.0,channel=0,scsi-id=0,lun=0,drive=drive-scsi0,id=scsi0,device_id=drive-scsi0,write-cache=on' \ > - -machine 'pflash0=pflash0,pflash1=drive-efidisk0,accel=tcg,type=pc+pve0' \ > + -drive 'file=/var/lib/vz/images/100/base-100-disk-2.raw,if=none,id=drive-scsi0,format=raw,cache=none,aio=io_uring,detect-zeroes=on,readonly=on' \ > + -device 'scsi-hd,bus=scsihw0.0,channel=0,scsi-id=0,lun=0,drive=drive-scsi0,id=scsi0' \ > + -machine 'accel=tcg,type=pc-i440fx-9.2+pve1' \ > -snapshot > diff --git a/src/test/cfg2cmd/simple1-template.conf.cmd b/src/test/cfg2cmd/simple1-template.conf.cmd > index df51a4a5..5bde9fd6 100644 > --- a/src/test/cfg2cmd/simple1-template.conf.cmd > +++ b/src/test/cfg2cmd/simple1-template.conf.cmd > @@ -15,8 +15,6 @@ > -nographic \ > -cpu qemu64 \ > -m 512 \ > - -object '{"id":"throttle-drive-scsi0","limits":{},"qom-type":"throttle-group"}' \ > - -object '{"id":"throttle-drive-sata0","limits":{},"qom-type":"throttle-group"}' \ > -global 'PIIX4_PM.disable_s3=1' \ > -global 'PIIX4_PM.disable_s4=1' \ > -device 'pci-bridge,id=pci.1,chassis_nr=1,bus=pci.0,addr=0x1e' \ > @@ -25,12 +23,13 @@ > -device 'usb-tablet,id=tablet,bus=uhci.0,port=1' \ > -device 'virtio-balloon-pci,id=balloon0,bus=pci.0,addr=0x3,free-page-reporting=on' \ > -iscsi 'initiator-name=iqn.1993-08.org.debian:01:aabbccddeeff' \ > - -device 'ide-cd,bus=ide.1,unit=0,id=ide2,bootindex=200' \ > + -drive 'if=none,id=drive-ide2,media=cdrom,aio=io_uring' \ > + -device 'ide-cd,bus=ide.1,unit=0,drive=drive-ide2,id=ide2,bootindex=200' \ > -device 'virtio-scsi-pci,id=scsihw0,bus=pci.0,addr=0x5' \ > - -blockdev '{"detect-zeroes":"unmap","discard":"unmap","driver":"throttle","file":{"cache":{"direct":true,"no-flush":false},"detect-zeroes":"unmap","discard":"unmap","driver":"qcow2","file":{"aio":"io_uring","cache":{"direct":true,"no-flush":false},"detect-zeroes":"unmap","discard":"unmap","driver":"file","filename":"/var/lib/vz/images/8006/base-8006-disk-1.qcow2","node-name":"e1085774206ae4a6b6bf8426ff08f16","read-only":true},"node-name":"f1085774206ae4a6b6bf8426ff08f16","read-only":true},"node-name":"drive-scsi0","read-only":true,"throttle-group":"throttle-drive-scsi0"}' \ > - -device 'scsi-hd,bus=scsihw0.0,channel=0,scsi-id=0,lun=0,drive=drive-scsi0,id=scsi0,device_id=drive-scsi0,write-cache=on' \ > + -drive 'file=/var/lib/vz/images/8006/base-8006-disk-1.qcow2,if=none,id=drive-scsi0,discard=on,format=qcow2,cache=none,aio=io_uring,detect-zeroes=unmap,readonly=on' \ > + -device 'scsi-hd,bus=scsihw0.0,channel=0,scsi-id=0,lun=0,drive=drive-scsi0,id=scsi0' \ > -device 'ahci,id=ahci0,multifunction=on,bus=pci.0,addr=0x7' \ > - -blockdev '{"detect-zeroes":"unmap","discard":"unmap","driver":"throttle","file":{"cache":{"direct":true,"no-flush":false},"detect-zeroes":"unmap","discard":"unmap","driver":"qcow2","file":{"aio":"io_uring","cache":{"direct":true,"no-flush":false},"detect-zeroes":"unmap","discard":"unmap","driver":"file","filename":"/var/lib/vz/images/8006/base-8006-disk-0.qcow2","node-name":"eab334c2e07734480f33dd80d89871b","read-only":false},"node-name":"fab334c2e07734480f33dd80d89871b","read-only":false},"node-name":"drive-sata0","read-only":false,"throttle-group":"throttle-drive-sata0"}' \ > - -device 'ide-hd,bus=ahci0.0,drive=drive-sata0,id=sata0,write-cache=on' \ > - -machine 'accel=tcg,smm=off,type=pc+pve0' \ > + -drive 'file=/var/lib/vz/images/8006/base-8006-disk-0.qcow2,if=none,id=drive-sata0,discard=on,format=qcow2,cache=none,aio=io_uring,detect-zeroes=unmap' \ > + -device 'ide-hd,bus=ahci0.0,drive=drive-sata0,id=sata0' \ > + -machine 'accel=tcg,smm=off,type=pc-i440fx-9.2+pve1' \ > -snapshot > -- > 2.47.2 > > > > _______________________________________________ > pve-devel mailing list > pve-devel@lists.proxmox.com > https://lists.proxmox.com/cgi-bin/mailman/listinfo/pve-devel > > > _______________________________________________ pve-devel mailing list pve-devel@lists.proxmox.com https://lists.proxmox.com/cgi-bin/mailman/listinfo/pve-devel