[libvirt] [PATCH] qemu: treat iso images as raw

Peter Krempa pkrempa at redhat.com
Thu Oct 26 13:18:22 UTC 2017


On Thu, Oct 26, 2017 at 13:09:25 +0100, Daniel Berrange wrote:
> On Thu, Oct 26, 2017 at 03:04:08PM +0300, Nikolay Shirokovskiy wrote:
> > if image format probing is on and image format of iso file
> > is not specified qemu fail to start a domain or change disk
> > media giving errors like [1]. The problem is format is being
> > detected as 'iso' and qemu expect format to be raw for iso
> > images.
> > 
> > It makes sense to me because iso refers to filesystem format
> > in image not image format itself. Thus let's just convert
> > iso to raw in case of qemu.
> > 
> > There is a similar patch for storage pools - 0e5db762.
> > 
> > [1] Unknown driver 'iso'
> > 
> > ---
> > 
> > ISO as image format was added right at the beginning by e266ded2f
> > without any further comments. Maybe we just can drop ISO from image
> > formats entirely as it is not image format or some hypervisors
> > treat it in a special way?
> 
> Yeah, I'm inclined to say we can drop it. I don't recall either Xen or
> QEMU caring about an 'iso' disk format

The hypervisors probably don't care about this but the storage driver
may care (At least for display purposes).

> >  src/qemu/qemu_domain.c | 7 ++++++-
> >  1 file changed, 6 insertions(+), 1 deletion(-)
> > 
> > diff --git a/src/qemu/qemu_domain.c b/src/qemu/qemu_domain.c
> > index c7c9e94..3da9271 100644
> > --- a/src/qemu/qemu_domain.c
> > +++ b/src/qemu/qemu_domain.c
> > @@ -6023,8 +6023,13 @@ qemuDomainDetermineDiskChain(virQEMUDriverPtr driver,
> >      if (virStorageFileGetMetadata(disk->src,
> >                                    uid, gid,
> >                                    cfg->allowDiskFormatProbing,
> > -                                  report_broken) < 0)
> > +                                  report_broken) < 0) {
> >          ret = -1;
> > +        goto cleanup;
> > +    }
> > +
> > +    if (virDomainDiskGetFormat(disk) == VIR_STORAGE_FILE_ISO)
> > +        virDomainDiskSetFormat(disk, VIR_STORAGE_FILE_RAW);

This is not the right place and also not the correct way. We should
reject using ISO as a format if qemu will not support it as an invalid
configuration rather than silently turn it into raw.

The only acceptable place to turn ISO -> RAW is when it's comming from
the storage driver via <disk type=volume>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 833 bytes
Desc: not available
URL: <http://listman.redhat.com/archives/libvir-list/attachments/20171026/dab17499/attachment-0001.sig>


More information about the libvir-list mailing list