files: 0.787 semantic: 0.781 PID: 0.732 vnc: 0.702 device: 0.699 graphic: 0.626 performance: 0.581 other: 0.530 socket: 0.481 KVM: 0.407 permissions: 0.388 network: 0.388 debug: 0.321 boot: 0.312 Unable to insert cd media located on ro nfs mount When issuing a "change" command via the monitor, qemu is unable to open the iso file if it is mounted on a read-only nfs share. If I mount read-write (and make sure the file is writable by the qemu process), then the change command succeeds. Note that this doesn't affect media specified on the command line when starting qemu, only when changing via the monitor. To reproduce, mount cd images directory read only, e.g. [root@kvmhost0 ~]# grep iso /etc/fstab 10.48.50.20:/iso /srv/kvm/iso nfs4 defaults,ro 0 0 Start qemu with minimal options, just need access to the monitor: [root@kvmhost0 ~]# kvm -vnc 127.0.0.1:0 -S Connect to the monitor and issue a change command: (qemu) change ide1-cd0 /srv/kvm/iso/ubuntu-12.04-server-amd64.iso Could not open '/srv/kvm/iso/ubuntu-12.04-server-amd64.iso Re-mount the iso directory read-write and notice that the command succeeds: [root@kvmhost0 ~]# mount -o remount,rw /srv/kvm/iso (qemu) change ide1-cd0 /srv/kvm/iso/ubuntu-12.04-server-amd64.iso (qemu) [root@kvmhost0 ~]# kvm --version QEMU emulator version 1.1.1 (qemu-kvm-1.1.1), Copyright (c) 2003-2008 Fabrice Bellard [root@kvmhost0 ~]# uname -a Linux kvmhost0 3.4.5-1-ARCH #1 SMP PREEMPT Mon Jul 16 21:35:54 CEST 2012 x86_64 GNU/Linux I ran strace while running the test and I see few times: open("/srv/kvm/iso/ubuntu-12.04-server-amd64.iso", O_RDONLY|O_NONBLOCK) = 12 fstat(12, {st_mode=S_IFREG|0666, st_size=717533184, ...}) = 0 close(12) But the final open looks like this: open("/srv/kvm/iso/ubuntu-12.04-server-amd64.iso", O_RDWR|O_DSYNC|O_CLOEXEC) = -1 EROFS (Read-only file system) For some reason, the O_RDRW flag was requested. Looks like the read_only flag in the block device state never gets set. This needs to be set otherwise qmp_change_blockdev tries to open the device read only. This patch works for me. Of course, I mean "qmp_change_blockdev tries to open the device read-write". Can you still reproduce this problem with the latest version of QEMU? If so, could you please refresh your patch and send it to the qemu-devel mailing list? (we do not accept patches from the bug tracker) [Expired for QEMU because there has been no activity for 60 days.]