diff --git a/pkg/driver/krunkit/krunkit_darwin_arm64.go b/pkg/driver/krunkit/krunkit_darwin_arm64.go index 448886b64fe..86d3d581b3e 100644 --- a/pkg/driver/krunkit/krunkit_darwin_arm64.go +++ b/pkg/driver/krunkit/krunkit_darwin_arm64.go @@ -18,7 +18,6 @@ import ( "github.com/lima-vm/lima/v2/pkg/driver/vz" "github.com/lima-vm/lima/v2/pkg/imgutil/proxyimgutil" - "github.com/lima-vm/lima/v2/pkg/iso9660util" "github.com/lima-vm/lima/v2/pkg/limatype" "github.com/lima-vm/lima/v2/pkg/limatype/filenames" "github.com/lima-vm/lima/v2/pkg/limayaml" @@ -167,47 +166,6 @@ func buildNetworkArgs(inst *limatype.Instance) ([]string, error) { return args, nil } -func EnsureDisk(ctx context.Context, inst *limatype.Instance) error { - diffDisk := filepath.Join(inst.Dir, filenames.DiffDisk) - if _, err := os.Stat(diffDisk); err == nil || !errors.Is(err, os.ErrNotExist) { - // disk is already ensured - return err - } - - diskUtil := proxyimgutil.NewDiskUtil(ctx) - - baseDisk := filepath.Join(inst.Dir, filenames.BaseDisk) - - diskSize, _ := units.RAMInBytes(*inst.Config.Disk) - if diskSize == 0 { - return nil - } - isBaseDiskISO, err := iso9660util.IsISO9660(baseDisk) - if err != nil { - return err - } - if isBaseDiskISO { - // Create an empty data volume (sparse) - diffDiskF, err := os.Create(diffDisk) - if err != nil { - return err - } - - err = diskUtil.MakeSparse(ctx, diffDiskF, 0) - if err != nil { - diffDiskF.Close() - return fmt.Errorf("failed to create sparse diff disk %q: %w", diffDisk, err) - } - return diffDiskF.Close() - } - - // Krunkit also supports qcow2 disks but raw is faster to create and use. - if err = diskUtil.ConvertToRaw(ctx, baseDisk, diffDisk, &diskSize, false); err != nil { - return fmt.Errorf("failed to convert %q to a raw disk %q: %w", baseDisk, diffDisk, err) - } - return err -} - func startUsernet(ctx context.Context, inst *limatype.Instance) (*usernet.Client, context.CancelFunc, error) { if firstUsernetIndex := limayaml.FirstUsernetIndex(inst.Config); firstUsernetIndex != -1 { return usernet.NewClientByName(inst.Config.Networks[firstUsernetIndex].Lima), nil, nil diff --git a/pkg/driver/krunkit/krunkit_driver_darwin_arm64.go b/pkg/driver/krunkit/krunkit_driver_darwin_arm64.go index 002dbbfc84f..b0969735567 100644 --- a/pkg/driver/krunkit/krunkit_driver_darwin_arm64.go +++ b/pkg/driver/krunkit/krunkit_driver_darwin_arm64.go @@ -20,6 +20,7 @@ import ( "github.com/sirupsen/logrus" "github.com/lima-vm/lima/v2/pkg/driver" + "github.com/lima-vm/lima/v2/pkg/driverutil" "github.com/lima-vm/lima/v2/pkg/executil" "github.com/lima-vm/lima/v2/pkg/limatype" "github.com/lima-vm/lima/v2/pkg/limatype/filenames" @@ -58,7 +59,8 @@ func (l *LimaKrunkitDriver) Configure(inst *limatype.Instance) *driver.Configure } func (l *LimaKrunkitDriver) CreateDisk(ctx context.Context) error { - return EnsureDisk(ctx, l.Instance) + // Krunkit also supports qcow2 disks but raw is faster to create and use. + return driverutil.EnsureDiskRaw(ctx, l.Instance) } func (l *LimaKrunkitDriver) Start(ctx context.Context) (chan error, error) { diff --git a/pkg/driver/vz/vz_driver_darwin.go b/pkg/driver/vz/vz_driver_darwin.go index 0cc05dc00f3..26291ddb7e1 100644 --- a/pkg/driver/vz/vz_driver_darwin.go +++ b/pkg/driver/vz/vz_driver_darwin.go @@ -20,6 +20,7 @@ import ( "github.com/sirupsen/logrus" "github.com/lima-vm/lima/v2/pkg/driver" + "github.com/lima-vm/lima/v2/pkg/driverutil" "github.com/lima-vm/lima/v2/pkg/limatype" "github.com/lima-vm/lima/v2/pkg/limayaml" "github.com/lima-vm/lima/v2/pkg/osutil" @@ -294,7 +295,7 @@ func (l *LimaVzDriver) Create(_ context.Context) error { } func (l *LimaVzDriver) CreateDisk(ctx context.Context) error { - return EnsureDisk(ctx, l.Instance) + return driverutil.EnsureDiskRaw(ctx, l.Instance) } func (l *LimaVzDriver) Start(ctx context.Context) (chan error, error) { diff --git a/pkg/driver/vz/disk.go b/pkg/driverutil/disk.go similarity index 93% rename from pkg/driver/vz/disk.go rename to pkg/driverutil/disk.go index 9cb81e06c5c..4cf6f87b329 100644 --- a/pkg/driver/vz/disk.go +++ b/pkg/driverutil/disk.go @@ -1,7 +1,7 @@ // SPDX-FileCopyrightText: Copyright The Lima Authors // SPDX-License-Identifier: Apache-2.0 -package vz +package driverutil import ( "context" @@ -18,7 +18,7 @@ import ( "github.com/lima-vm/lima/v2/pkg/limatype/filenames" ) -func EnsureDisk(ctx context.Context, inst *limatype.Instance) error { +func EnsureDiskRaw(ctx context.Context, inst *limatype.Instance) error { diffDisk := filepath.Join(inst.Dir, filenames.DiffDisk) if _, err := os.Stat(diffDisk); err == nil || !errors.Is(err, os.ErrNotExist) { // disk is already ensured