Bug 1387218
Summary: | Disable support for SD disks | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Product: | Red Hat Enterprise Linux 7 | Reporter: | mxie <mxie> | ||||||||||
Component: | virt-manager | Assignee: | Pavel Hrdina <phrdina> | ||||||||||
Status: | CLOSED ERRATA | QA Contact: | Virtualization Bugs <virt-bugs> | ||||||||||
Severity: | medium | Docs Contact: | |||||||||||
Priority: | medium | ||||||||||||
Version: | 7.3 | CC: | chayang, crobinso, jsnow, juzhang, juzhou, knoel, kuwei, laine, lersek, mtessun, mxie, mzhan, phrdina, tzheng, virt-maint, xiaodwan | ||||||||||
Target Milestone: | rc | Keywords: | FutureFeature | ||||||||||
Target Release: | 7.4 | ||||||||||||
Hardware: | x86_64 | ||||||||||||
OS: | Unspecified | ||||||||||||
Whiteboard: | |||||||||||||
Fixed In Version: | virt-manager-1.4.1-1.el7 | Doc Type: | If docs needed, set a value | ||||||||||
Doc Text: | Story Points: | --- | |||||||||||
Clone Of: | Environment: | ||||||||||||
Last Closed: | 2017-08-01 21:02:03 UTC | Type: | Bug | ||||||||||
Regression: | --- | Mount Type: | --- | ||||||||||
Documentation: | --- | CRM: | |||||||||||
Verified Versions: | Category: | --- | |||||||||||
oVirt Team: | --- | RHEL 7.3 requirements from Atomic Host: | |||||||||||
Cloudforms Team: | --- | Target Upstream Version: | |||||||||||
Embargoed: | |||||||||||||
Bug Depends On: | 1430672 | ||||||||||||
Bug Blocks: | |||||||||||||
Attachments: |
|
Created attachment 1212469 [details]
screenshot2
The following <target> attribute: bus='sd' is not documented in the libvirt documentation at <http://libvirt.org/formatdomain.html>. Looking at the libvirt source code however, we can find commit commit 3730353f6300eee5a3be5ecb5b139cc532240e1b Author: Cole Robinson <crobinso> Date: Wed Jul 31 09:00:26 2013 -0400 domain_conf: Add disk bus=sd, wire it up for qemu This corresponds to '-sd' and '-drive if=sd' on the qemu command line. Needed for many ARM boards which don't provide any other way to pass in storage. Furthermore, the QEMU manual states, -sd file Use file as SecureDigital card image. To me, this device type (as boot device) seems irrelevant for x86_64 guests and aarch64 guests as well, at least in an enterprise setting. Ming Xie, what is your use case for booting off of this kind of device? Thanks. Also note that in qemu-kvm-rhev-2.6.0-17.el7, we disabled the SD card emulation: commit 0b74460678bde675e4bd65d272eece5805bb36de Author: Miroslav Rezanina <mrezanin> Date: Wed Jun 22 14:03:15 2016 +0200 Disable sd-card RH-Author: Miroslav Rezanina <mrezanin> Message-id: <2a12e11ac596c42edf03c3046bcf2b2c27df3692.1466603432.git.mrezanin> Patchwork-id: 70747 O-Subject: [RHEV-7.3 qemu-kvm-rhev PATCHv3 02/10] Disable sd-card Bugzilla: 1333282 RH-Acked-by: Thomas Huth <thuth> RH-Acked-by: Laszlo Ersek <lersek> RH-Acked-by: Laurent Vivier <lvivier> From: Miroslav Rezanina <mrezanin> We do not support sd-card device so disable it. Signed-off-by: Miroslav Rezanina <mrezanin> See bug 1333282. Furthermore, in downstream, we use a separate "default-configs/aarch64-softmmu.mak" config file, one that doesn't pull in "default-configs/arm-softmmu.mak". The consequence is that we don't enable CONFIG_SD even for aarch64: $ git grep CONFIG_SD=y default-configs/arm-softmmu.mak:CONFIG_SD=y default-configs/lm32-softmmu.mak:CONFIG_SD=y These settings are no-ops for our downstream. I'm inclined to close this BZ as NOTABUG ("works by design"), but I'd like to hear the use case first. Thanks. Hi Laszio, Although qemu-kvm-rhev already disable sd card emulation, libvirt seems still support sd bus, because SD bus could be listed in virt-manager Hi Pavel, Could you help to look at this bug, if qemu-kvm-rhev doesn't support sd card any more, how libvirt will deal with sd? could move this bug to libvirt component and change bug title as "[RFE]remove sd bus in libvirt"? (In reply to mxie from comment #4) > Hi Laszio, > > Although qemu-kvm-rhev already disable sd card emulation, libvirt seems > still support sd bus, because SD bus could be listed in virt-manager > > > > Hi Pavel, > > Could you help to look at this bug, if qemu-kvm-rhev doesn't support sd > card any more, how libvirt will deal with sd? could move this bug to libvirt > component and change bug title as "[RFE]remove sd bus in libvirt"? Moving BZ to virt-manager for further triage. Upstream commit: commit 798a2e508011512e0fe5671f222a9e49049059e3 Author: Pavel Hrdina <phrdina> Date: Fri Jan 20 16:07:53 2017 +0100 virtManager/addhardware: get supported disk bus types from libvirt I can reproduce this bug with package: virt-manager-1.4.0-2.el7.noarch Then try to verify this bug with new build: virt-manager-1.4.1-1.el7.noarch virt-manager-common-1.4.1-1.el7.noarch virt-install-1.4.1-1.el7.noarch libvirt-3.1.0-2.el7.x86_64 spice-gtk3-0.33-1.el7.x86_64 qemu-kvm-rhev-2.8.0-6.el7.x86_64 Steps: Scenario-1: Create a new vm using default Seabios. 1.1 Launch virt-manager # virt-manager 1.2 Click NEW button at the top of "Virtual Machine Manager" window. 1.3 Configure guest information in installation steps and check "Customize configuration before install" in last page, then click "Finish". 1.4 Using default Seabios: Firware: BIOS Chipset: i440FX 1.5 Select default disk and remove it. 1.6 Click "Add hardware" button, then add a new storage for vm, check supported device type and bus type, add a new disk. 1.7 Begin installation Result: For step1.6: Device type contains: Disk device (bus type: IDE/SCSI/USB/VirtIO) CDROM device (bus type: IDE/SCSI) Floppy device (bus type: fdc) LUN Passthrough (bus type:SCSI) For step1.7, in guest hardware details page, no other pci controller list, see screenshot-1. Scenario-2: Create a new vm using UEFI bios + Q35 chipset Steps as above. Result: For step2.6, get same result with default bios guest. Device type contains: Disk device (bus type: IDE/SCSI/USB/VirtIO) CDROM device (bus type: IDE/SCSI) Floppy device (bus type: fdc) LUN Passthrough (bus type:SCSI) For step2.7, in guest hardware details page, SATA controller list, see screenshot-2. As a summary: I. SD not listed as expected. II. All the bus type showed in virt-manger GUI keep consistent with command # virsh capabilities ... <disk supported='yes'> <enum name='diskDevice'> <value>disk</value> <value>cdrom</value> <value>floppy</value> <value>lun</value> </enum> <enum name='bus'> <value>ide</value> <value>fdc</value> <value>scsi</value> <value>virtio</value> <value>usb</value> </enum> </disk> @Pavel, i want to confirm 2 issue with you: Q1: IDE is not supported by uefi bios, but virt-manger will assign a ide bus for cdrom device while you add it during installation, then you start installation will get a error about "Error starting domain: unsupported configuration: IDE controllers are unsupported for this QEMU binary or machine type", then we need change scsi bus for cdrom device by hand, why not disabled it when choosing uefi bios. Q2. disk bus type "usb" shows newly in virt-manger GUI, but SATA doesn't list, why virt-manger shows "Controller SATA" in screenshot-2. Created attachment 1265349 [details]
screenshot for step1.7
Created attachment 1265350 [details]
screenshot for step2.7
CC Cole, Laine and John Snow (In reply to zhoujunqin from comment #10) > @Pavel, i want to confirm 2 issue with you: > Q1: IDE is not supported by uefi bios, This is false. OVMF supports the SATA/AHCI controller on Q35. > but virt-manger will assign a ide bus > for cdrom device while you add it during installation, then you start > installation will get a error about "Error starting domain: unsupported > configuration: IDE controllers are unsupported for this QEMU binary or > machine type", then we need change scsi bus for cdrom device by hand, why > not disabled it when choosing uefi bios. I saw the same error a few hours ago. In my opinion, the error is the following: the Q35 board has an integrated IDE controller, but virt-manager generates an explicit <controller> element, with @model='ide' (if memory serves). That translates to some kind of QEMU command line fragment that QEMU cannot satisfy, because Q35 has no IDE, it has only (built-in) AHCI/SATA. Therefore, IMO, this is either a virt-manager or a libvirt bug. It has nothing to do with OVMF itself. And, this issue is unrelated to this RHBZ -- a new one should be filed for it, IMO. Thanks Laszlo (In reply to Laszlo Ersek from comment #13) > following: the Q35 board has an integrated IDE controller, but virt-manager Sigh, that was obviously meant as "integrated *SATA* controller". Not IDE. (In reply to zhoujunqin from comment #10) > I can reproduce this bug with package: > virt-manager-1.4.0-2.el7.noarch > > Then try to verify this bug with new build: > virt-manager-1.4.1-1.el7.noarch > virt-manager-common-1.4.1-1.el7.noarch > virt-install-1.4.1-1.el7.noarch > libvirt-3.1.0-2.el7.x86_64 > spice-gtk3-0.33-1.el7.x86_64 > qemu-kvm-rhev-2.8.0-6.el7.x86_64 > > Steps: > Scenario-1: Create a new vm using default Seabios. > 1.1 > Launch virt-manager > # virt-manager > 1.2 > Click NEW button at the top of "Virtual Machine Manager" window. > 1.3 > Configure guest information in installation steps and check "Customize > configuration before install" in last page, then click "Finish". > 1.4 > Using default Seabios: > Firware: BIOS > Chipset: i440FX > > 1.5 Select default disk and remove it. > 1.6 Click "Add hardware" button, then add a new storage for vm, check > supported device type and bus type, add a new disk. > 1.7 Begin installation > > Result: > For step1.6: > Device type contains: > Disk device (bus type: IDE/SCSI/USB/VirtIO) > CDROM device (bus type: IDE/SCSI) > Floppy device (bus type: fdc) > LUN Passthrough (bus type:SCSI) > > For step1.7, in guest hardware details page, no other pci controller list, > see screenshot-1. > > Scenario-2: Create a new vm using UEFI bios + Q35 chipset > Steps as above. > Result: > For step2.6, get same result with default bios guest. > Device type contains: > Disk device (bus type: IDE/SCSI/USB/VirtIO) > CDROM device (bus type: IDE/SCSI) > Floppy device (bus type: fdc) > LUN Passthrough (bus type:SCSI) > For step2.7, in guest hardware details page, SATA controller list, see > screenshot-2. > > As a summary: > I. SD not listed as expected. > II. All the bus type showed in virt-manger GUI keep consistent with command > # virsh capabilities > ... > <disk supported='yes'> > <enum name='diskDevice'> > <value>disk</value> > <value>cdrom</value> > <value>floppy</value> > <value>lun</value> > </enum> > <enum name='bus'> > <value>ide</value> > <value>fdc</value> > <value>scsi</value> > <value>virtio</value> > <value>usb</value> > </enum> > </disk> > > @Pavel, i want to confirm 2 issue with you: > Q1: IDE is not supported by uefi bios, but virt-manger will assign a ide bus > for cdrom device while you add it during installation, then you start > installation will get a error about "Error starting domain: unsupported > configuration: IDE controllers are unsupported for this QEMU binary or > machine type", then we need change scsi bus for cdrom device by hand, why > not disabled it when choosing uefi bios. This should be fixed in libvirt to not report IDE for Q35 machine type. > Q2. disk bus type "usb" shows newly in virt-manger GUI, but SATA doesn't > list, why virt-manger shows "Controller SATA" in screenshot-2. Virt-manager switched to get the list of BUS from domain capabilities but libvirt didn't report SATA BUS. There is a Bug 1430672 to fix libvirt to report SATA BUS. Hi, Laszlo and Pavel, Thanks for all your reply. I think i'd better verify this bug again when Bug 1430672 fixed. Notice that Bug 1430672 is ON_QA now, so try to verify this bug again with new libvirt build: libvirt-3.2.0-2.el7.x86_64 virt-manager-1.4.1-1.el7.noarch libvirt-python-3.2.0-1.el7.x86_64 qemu-kvm-rhev-2.8.0-6.el7.x86_64 Steps: I. Check disk type/bus supported by libvirt: # virsh domcapabilities ... <disk supported='yes'> <enum name='diskDevice'> <value>disk</value> <value>cdrom</value> <value>floppy</value> <value>lun</value> </enum> <enum name='bus'> <value>ide</value> <value>fdc</value> <value>scsi</value> <value>virtio</value> <value>usb</value> <value>sata</value> </enum> </disk> ... Result: Report SATA bus in domain capabilities. II. Check disk type/bus display on virt-manager GUI Scenario-1: Create a new vm using default Seabios. 1.1 Launch virt-manager # virt-manager 1.2 Click NEW button at the top of "Virtual Machine Manager" window. 1.3 Configure guest information in installation steps and check "Customize configuration before install" in last page, then click "Finish". 1.4 Using default Seabios: Firware: BIOS Chipset: i440FX 1.5 Select default disk and remove it. 1.6 Click "Add hardware" button, then add a new storage for vm, check supported device type and bus type, add a new disk. 1.7 Begin installation Result: For step1.6: Device type contains: Disk device (bus type: IDE/SATA/SCSI/USB/VirtIO) CDROM device (bus type: IDE/SATA/SCSI) Floppy device (bus type: fdc) LUN Passthrough (bus type:SCSI) Result: SATA bus type added. Scenario-2: Create a new vm using UEFI bios + Q35 chipset Steps as above. Result: For step2.6, get same result with default bios guest. Device type contains: Disk device (bus type: IDE/SATA/SCSI/USB/VirtIO) CDROM device (bus type: IDE/SATA/SCSI) Floppy device (bus type: fdc) LUN Passthrough (bus type:SCSI) Result: SATA bus type added, but i think the same time, IDE bus type should hidden from virt-manager side when choose vm using UEFI bios + Q35 chipset. For we can also meet error when we assign a ide disk/cdrom for uefi guest: "Error starting domain: unsupported configuration: IDE controllers are unsupported for this QEMU binary or machine type". @Pavel, though SD has removed, i think we'd better disable ide controller for Q35 machine type. Hi Junqin, yes we should probably hide IDE for Q35, but this should be fixed in libvirt. This bug is for SD bus which is fixed. (In reply to Pavel Hrdina from comment #18) > Hi Junqin, yes we should probably hide IDE for Q35, but this should be fixed > in libvirt. This bug is for SD bus which is fixed. Yes, as you told me, i file a new Bug 1441964 to track this issue, thanks. Since SD bus has removed from bus type list, move this bug from ON_QA to VERIFIED. Since the problem described in this bug report should be resolved in a recent advisory, it has been closed with a resolution of ERRATA. For information on the advisory, and where to find the updated files, follow the link below. If the solution does not work for you, open a new bug report. https://access.redhat.com/errata/RHBA-2017:2072 |
Created attachment 1212468 [details] screenshot1 Description of problem: [RFE]Seabios/OVMF can recognize SD disk Version-Release number of selected component (if applicable): seabios:1.9.1-5.el7 OVMF-20160608-3.git988715a.el7.noarch How reproducible: 100% Steps to Reproduce: Scenario1: 1.Prepare a guest which has SD disk and default bios mode,besides,enable boot menu for guest in virt-manager # virsh dumpxml SD ..... <os> <type arch='x86_64' machine='pc-i440fx-rhel7.3.0'>hvm</type> <bootmenu enable='yes'/> </os> ....... <disk type='file' device='disk'> <driver name='qemu' type='qcow2'/> <source file='/var/lib/libvirt/images/SD.qcow2'/> <backingStore/> <target dev='sda' bus='sd'/> <boot order='2'/> <alias name='sd-disk0'/> </disk> 2.Power on the guest and press 'ESC' to enter boot menu, but found there is no SD listed in boot option, pls refer to screenshot 1 3.If try to install os on this sd disk, there will be no disk found in disk part during installation Scenario2: 1.Prepare a guest which has SD disk and uefi bios mode,besides,enable boot menu for guest in virt-manager # virsh dumpxml generic ..... <os> <type arch='x86_64' machine='pc-q35-rhel7.3.0'>hvm</type> <loader readonly='yes' type='pflash'>/usr/share/OVMF/OVMF_CODE.secboot.fd</loader> <nvram>/var/lib/libvirt/qemu/nvram/generic_VARS.fd</nvram> <bootmenu enable='yes'/> </os> ....... <disk type='file' device='disk'> <driver name='qemu' type='qcow2'/> <source file='/var/lib/libvirt/images/generic.qcow2'/> <backingStore/> <target dev='sda' bus='sd'/> <boot order='2'/> <alias name='sd-disk0'/> </disk> 2.Power on the guest and press 'ESC' to enter into boot manager option, but found there is no SD listed in boot option, pls refer to screenshot 2 3.If try to install os this sd disk, there will be no disk found in disk part during installation Actual results: As above description Expected results: Seabios/OVMF can recognize SD disk Additional info: