Red Hat Bugzilla – Bug 625319
Failed to update the media in floppy device
Last modified: 2013-01-09 18:02:38 EST
Description of problem: Failed to update the media in floppy device Version-Release number of selected component (if applicable): kernel-2.6.32-63.el6.x86_64 libvirt-0.8.1-25.el6.x86_64 qemu-kvm-0.12.1.2-2.111.el6.x86_64 How reproducible: everytime Steps to Reproduce: 1. Make two floppy disk image file # dd if=/dev/zero of=/var/lib/libvirt/images/fd1.img count=1024 bs=1024 # mkfs.ext3 /var/lib/libvirt/images/fd1.img # dd if=/dev/zero of=/var/lib/libvirt/images/fd2.img count=1024 bs=1024 # mkfs.ext3 /var/lib/libvirt/images/fd2.img 2. Define a domain with floppy device connected with in config xml file <disk type='file' device='floppy'> <driver name='qemu' type='raw'/> <source file='/var/lib/libvirt/images/fd1.img'/> <target dev='fda' bus='fdc'/> </disk> 3.Start the domain # virsh start rhel6 Domain rhel6 started 4. In guest, mount floppy device, do some write opertion to floppy device. # modprobe floppy # mount /dev/fd0 /media 5. Prepare a xml as flollowing: # cat floppy.xml <disk type='file' device='floppy'> <driver name='qemu' type='raw'/> <source file='/var/lib/libvirt/images/fd2.img'/> <target dev='fda' bus='fdc'/> </disk> 6. Try to update the media int floppy device # virsh update-device rhel6 floppy.xml error: Failed to update device from floppy.xml error: internal error unable to execute QEMU command 'change': Device 'drive-fdc0-0-0' is not removable Actual results: After step 6, Failed to update the media int floppy device and error occures. Expected results: After step 6, the floppy device should be updated successfully. Additional info:
QEMU seems to be confused, thinking the floppy is a fixed disk device. It is obviously removable.
1.start VM with -drive file=/virtio-win-1.1.12-0.vfd,if=none,id=drive-fdc0-0-0,format=raw -global isa-fdc.driveA=drive-fdc0-0-0 2.(qemu)info block drive-fdc-0-0-0:type=hd removable=0 file=/virtio-win-1.1.12.0.vfd ro=0 drv=raw encrypted=0. This will hit the issue described in comment #0. Addtional: 1.start VM with -fda /virtio-win.vfd 2.(qemu)info block floppy0:type=floppy removable=1 locked =0 file=/virtio-vin.vfd ro=0 drv=raw encrypted=0 In this way floppy can be changed.
Reproduce this bug with qemu-kvm-0.12.1.2-2.113.el6.x86_64.rpm # virsh update-device RHEL6 floppy.xml error: Failed to update device from floppy.xml error: internal error unable to execute QEMU command 'change': Device 'drive-fdc0-0-0' is not removable Verify this bug with qemu-kvm-0.12.1.2-2.128.el6.x86_64.rpm #virsh update-device RHEL6 floppy.xml Device updated successfully so this bug has been fixed.
Technical note added. If any revisions are required, please edit the "Technical Notes" field accordingly. All revisions will be proofread by the Engineering Content Services team. New Contents: Cause: bugs in the 'removable' check for virtual media change for 'if=none' devices in qemu-kvm. Consequence: it was not possible to change the media for virtual floppy devices. Fix: added code to support virtual media change for if=none devices too. Result: changing of media of virtual floppy devices now works.
An advisory has been issued which should help the problem described in this bug report. This report is therefore being closed with a resolution of ERRATA. For more information on therefore solution and/or where to find the updated files, please follow the link below. You may reopen this bug report if the solution does not work for you. http://rhn.redhat.com/errata/RHSA-2011-0534.html