Skip to content

Commit 1b4ca3f

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 <[email protected]>
1 parent 5e906fe commit 1b4ca3f

File tree

2 files changed

+9
-9
lines changed

2 files changed

+9
-9
lines changed

pkg/driverutil/disk.go

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,6 @@ import (
1212

1313
"github.com/docker/go-units"
1414
"github.com/lima-vm/go-qcow2reader/image"
15-
1615
"github.com/lima-vm/lima/v2/pkg/imgutil/proxyimgutil"
1716
"github.com/lima-vm/lima/v2/pkg/iso9660util"
1817
"github.com/lima-vm/lima/v2/pkg/limatype/filenames"
@@ -38,23 +37,25 @@ func EnsureDisk(ctx context.Context, instDir, diskSize string, diskImageFormat i
3837
if err != nil {
3938
return err
4039
}
40+
destDisk := baseDisk
4141
if isBaseDiskISO {
42+
destDisk = diffDisk
4243
// Create an empty data volume (sparse)
4344
diffDiskF, err := os.Create(diffDisk)
4445
if err != nil {
4546
return err
4647
}
4748

48-
err = diskUtil.MakeSparse(ctx, diffDiskF, 0)
49+
err = diskUtil.MakeSparse(ctx, diffDiskF, diskSizeInBytes)
4950
if err != nil {
5051
diffDiskF.Close()
5152
return fmt.Errorf("failed to create sparse diff disk %q: %w", diffDisk, err)
5253
}
53-
return diffDiskF.Close()
54+
diffDiskF.Close()
5455
}
5556
// Check whether to use ASIF format
5657

57-
if err = diskUtil.Convert(ctx, diskImageFormat, baseDisk, diffDisk, &diskSizeInBytes, false); err != nil {
58+
if err = diskUtil.Convert(ctx, diskImageFormat, destDisk, diffDisk, &diskSizeInBytes, false); err != nil {
5859
return fmt.Errorf("failed to convert %q to a disk %q: %w", baseDisk, diffDisk, err)
5960
}
6061
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)