Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
42 changes: 0 additions & 42 deletions pkg/driver/krunkit/krunkit_darwin_arm64.go
Original file line number Diff line number Diff line change
Expand Up @@ -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"
Expand Down Expand Up @@ -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
Expand Down
4 changes: 3 additions & 1 deletion pkg/driver/krunkit/krunkit_driver_darwin_arm64.go
Original file line number Diff line number Diff line change
Expand Up @@ -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"
Expand Down Expand Up @@ -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) {
Expand Down
3 changes: 2 additions & 1 deletion pkg/driver/vz/vz_driver_darwin.go
Original file line number Diff line number Diff line change
Expand Up @@ -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"
Expand Down Expand Up @@ -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) {
Expand Down
4 changes: 2 additions & 2 deletions pkg/driver/vz/disk.go → pkg/driverutil/disk.go
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
// SPDX-FileCopyrightText: Copyright The Lima Authors
// SPDX-License-Identifier: Apache-2.0

package vz
package driverutil

import (
"context"
Expand All @@ -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
Expand Down