
On 26.10.2017 16:18, Peter Krempa wrote:
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.
But I want to fix the case when iso format is autodetected not specified exlicitly. If we still want to fail in the latter case I guess I can add check that iso comes from autodetection.
The only acceptable place to turn ISO -> RAW is when it's comming from the storage driver via <disk type=volume>