Skip to content

Commit 5cfb95d

Browse files
committed
fix: for ISO base disk remove premature return after closing sparse diff file so Convert executes.
Ensure diffDisk is converted to the requested format instead of staying sparse. Signed-off-by: ashwat287 <ashwatpas@gmail.com>
1 parent 5e906fe commit 5cfb95d

File tree

2 files changed

+10
-13
lines changed

2 files changed

+10
-13
lines changed

pkg/driverutil/disk.go

Lines changed: 6 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -38,23 +38,21 @@ func EnsureDisk(ctx context.Context, instDir, diskSize string, diskImageFormat i
3838
if err != nil {
3939
return err
4040
}
41+
destDisk := baseDisk
4142
if isBaseDiskISO {
42-
// Create an empty data volume (sparse)
43+
destDisk = diffDisk
44+
45+
// Create an empty data volume for the diff disk
4346
diffDiskF, err := os.Create(diffDisk)
4447
if err != nil {
4548
return err
4649
}
4750

48-
err = diskUtil.MakeSparse(ctx, diffDiskF, 0)
49-
if err != nil {
50-
diffDiskF.Close()
51-
return fmt.Errorf("failed to create sparse diff disk %q: %w", diffDisk, err)
52-
}
53-
return diffDiskF.Close()
51+
diffDiskF.Close()
5452
}
5553
// Check whether to use ASIF format
5654

57-
if err = diskUtil.Convert(ctx, diskImageFormat, baseDisk, diffDisk, &diskSizeInBytes, false); err != nil {
55+
if err = diskUtil.Convert(ctx, diskImageFormat, destDisk, diffDisk, &diskSizeInBytes, false); err != nil {
5856
return fmt.Errorf("failed to convert %q to a disk %q: %w", baseDisk, diffDisk, err)
5957
}
6058
return err

pkg/imgutil/nativeimgutil/nativeimgutil.go

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -23,10 +23,9 @@ import (
2323
"github.com/lima-vm/go-qcow2reader/image/asif"
2424
"github.com/lima-vm/go-qcow2reader/image/qcow2"
2525
"github.com/lima-vm/go-qcow2reader/image/raw"
26-
"github.com/sirupsen/logrus"
27-
2826
"github.com/lima-vm/lima/v2/pkg/imgutil/nativeimgutil/asifutil"
2927
"github.com/lima-vm/lima/v2/pkg/progressbar"
28+
"github.com/sirupsen/logrus"
3029
)
3130

3231
// Disk image size must be aligned to sector size. Qemu block layer is rounding
@@ -62,10 +61,10 @@ func convertTo(destType image.Type, source, dest string, size *int64, allowSourc
6261
logrus.Infof("Converting %q (%s) to a %s disk %q", source, srcImg.Type(), destType, dest)
6362
switch t := srcImg.Type(); t {
6463
case raw.Type:
65-
if err = srcF.Close(); err != nil {
66-
return err
67-
}
6864
if destType == raw.Type {
65+
if err = srcF.Close(); err != nil {
66+
return err
67+
}
6968
return convertRawToRaw(source, dest, size)
7069
}
7170
case qcow2.Type:

0 commit comments

Comments
 (0)