From d1ca9aee3911f54248513b454ee3d9684fb0099a Mon Sep 17 00:00:00 2001
From: Pierre HUBERT <pierre.git@communiquons.org>
Date: Sat, 31 May 2025 11:24:01 +0200
Subject: [PATCH] Fix bad qemu-img conversions

---
 virtweb_backend/src/utils/file_disks_utils.rs | 18 ++++++++++++++++--
 1 file changed, 16 insertions(+), 2 deletions(-)

diff --git a/virtweb_backend/src/utils/file_disks_utils.rs b/virtweb_backend/src/utils/file_disks_utils.rs
index 7c081d7..228f011 100644
--- a/virtweb_backend/src/utils/file_disks_utils.rs
+++ b/virtweb_backend/src/utils/file_disks_utils.rs
@@ -183,7 +183,13 @@ impl DiskFileInfo {
             // Convert QCow2 to Raw file
             (DiskFileFormat::QCow2 { .. }, DiskFileFormat::Raw { is_sparse }) => {
                 let mut cmd = Command::new(constants::QEMU_IMAGE_PROGRAM);
-                cmd.arg("convert").arg(&self.file_path).arg(&temp_file);
+                cmd.arg("convert")
+                    .arg("-f")
+                    .arg("qcow2")
+                    .arg("-O")
+                    .arg("raw")
+                    .arg(&self.file_path)
+                    .arg(&temp_file);
 
                 if !is_sparse {
                     cmd.args(["-S", "0"]);
@@ -197,6 +203,8 @@ impl DiskFileInfo {
             (DiskFileFormat::QCow2 { .. }, DiskFileFormat::QCow2 { .. }) => {
                 let mut cmd = Command::new(constants::QEMU_IMAGE_PROGRAM);
                 cmd.arg("convert")
+                    .arg("-f")
+                    .arg("qcow2")
                     .arg("-O")
                     .arg("qcow2")
                     .arg(&self.file_path)
@@ -207,7 +215,13 @@ impl DiskFileInfo {
             // Convert Raw to QCow2 file
             (DiskFileFormat::Raw { .. }, DiskFileFormat::QCow2 { .. }) => {
                 let mut cmd = Command::new(constants::QEMU_IMAGE_PROGRAM);
-                cmd.arg("convert").arg(&self.file_path).arg(&temp_file);
+                cmd.arg("convert")
+                    .arg("-f")
+                    .arg("raw")
+                    .arg("-O")
+                    .arg("qcow2")
+                    .arg(&self.file_path)
+                    .arg(&temp_file);
 
                 cmd
             }