Incus 6.6 incus-migrate

@stgraber I upgraded to incus 6.6 and decided to try to use incus-migrate to migrate a VM. My test case was to start with an Ubuntu 24.04 instance from Virtualbox. I began by converting the Virtualbox VDI image to a VMDK with the following command:

VBoxManage clonemedium disk "/home/scott/VirtualBox VMs/Linux/ubuntu/ubuntu.vdi" /home/scott/Desktop/working/converted.vmdk --format VMDK

I ran incus-migrate on the resulting VMDK disk image. My migrated VM was an EFI booting Ubuntu 24.04 image without secureboot.

Incus-migrate completed without error.

sudo incus-migrate
The local Incus server is the target [default=yes]: 
Would you like to create a container (1) or virtual-machine (2)?: 2
Name of the new instance: converted
Please provide the path to a disk, partition, or raw image file: converted.vmdk
Does the VM support UEFI booting? [default=yes]: yes
Does the VM support UEFI Secure Boot? [default=yes]: no

Instance to be created:
  Name: converted
  Project: default
  Type: virtual-machine
  Source: converted.vmdk
  Config:
    security.secureboot: "false"

Additional overrides can be applied at this stage:
1) Begin the migration with the above configuration
2) Override profile list
3) Set additional configuration options
4) Change instance storage pool or volume size
5) Change instance network

Please pick one of the options above [default=1]: 1
Instance converted successfully created 

When I started the incus VM, the console did not appear to be accessing the converted hard drive image that had been imported. Instead:

incus console --show-log converted

Showed a log indicating that the incus VM was trying to boot PXE because the drive image failed to boot

BdsDxe: failed to load Boot0001 "UEFI QEMU QEMU HARDDISK " from PciRoot(0x0)/Pci(0x1,0x1)/Pci(0x0,0x0)/Scsi(0x0,0x1): Nd

>>Start PXE over IPv4.
incus info converted
Name: converted
Status: RUNNING
Type: virtual-machine
Architecture: x86_64
PID: 51009
Created: 2024/10/06 02:26 UTC
Last Used: 2024/10/06 02:48 UTC
Started: 2024/10/06 02:48 UTC

Resources:
  Processes: -1
  Disk usage:
    root: 4.21GiB
  Network usage:
    eth0:
      Type: broadcast
      State: UP
      Host interface: tap81521676
      MAC address: 00:16:3e:2d:99:31
      MTU: 1500
      Bytes received: 2.54kB
      Bytes sent: 2.99kB
      Packets received: 14
      Packets sent: 17
      IP addresses:
        inet6: fd42:39bd:404f:45b1:216:3eff:fe2d:9931/64 (global)
        inet6: fe80::216:3eff:fe2d:9931/64 (link)

Any ideas on what I might be doing wrong?

Are you sure your source VM was using UEFI?

Yes, and on a whim I tried incus-migrate without EFI and it tried to boot MBR without finding a disk and then defaulting to PXE. Can incus-migrate use a VDI image rather than my converting it to a VMDK? Does it matter that this virtual disk is dynamic rather than fixed? Here’s the VirtualBox Test instance showing it is EFI.

Here’s the VM disk as seen from Gparted booted in VirtualBox.

We don’t directly support VDI, we currently support VMDK and QCOW2.
Dynamic vs fixed doesn’t matter, we convert to sparse (dynamic) upon import anyways.