Build ubuntu using virtualbox on WSL2 but with hyperv fails

Packer fails to build Virtualbox VM using WSL2 and Hyper-V (Host: Windows 10 2004, WSL: Ubunto 20.04)
e.g.

virtualbox-iso output will be in this color.

==> virtualbox-iso: Retrieving Guest additions
    virtualbox-iso: Using file in-place: file://./C:%5CProgram%20Files%5COracle%5CVirtualBox/VBoxGuestAdditions.iso
==> virtualbox-iso: Retrieving ISO
    virtualbox-iso: Found already downloaded, initial checksum matched, no download needed: http://cdimage.ubuntu.com/ubuntu-legacy-server/releases/20.04/release/ubuntu-20.04-legacy-server-amd64.iso
==> virtualbox-iso: Deleting previous output directory...
==> virtualbox-iso: Starting HTTP server on port 8125
==> virtualbox-iso: Creating virtual machine...
==> virtualbox-iso: Creating hard drive...
==> virtualbox-iso: Creating forwarded port mapping for communicator (SSH, WinRM, etc) (host port 3540)
==> virtualbox-iso: Starting the virtual machine...
==> virtualbox-iso: Error starting VM: VBoxManage error: VBoxManage.exe: error: VMMR0_DO_NEM_INIT_VM failed: VERR_NEM_MISSING_KERNEL_API_2 (VERR_NEM_MISSING_KERNEL_API_2).
==> virtualbox-iso: VBoxManage.exe: error: VT-x is not available (VERR_VMX_NO_VMX)
==> virtualbox-iso: VBoxManage.exe: error: Details: code E_FAIL (0x80004005), component ConsoleWrap, interface IConsole
==> virtualbox-iso: Deregistering and deleting VM...
==> virtualbox-iso: Deleting output directory...
Build 'virtualbox-iso' errored: Error starting VM: VBoxManage error: VBoxManage.exe: error: VMMR0_DO_NEM_INIT_VM failed: VERR_NEM_MISSING_KERNEL_API_2 (VERR_NEM_MISSING_KERNEL_API_2).
VBoxManage.exe: error: VT-x is not available (VERR_VMX_NO_VMX)
VBoxManage.exe: error: Details: code E_FAIL (0x80004005), component ConsoleWrap, interface IConsole

==> Some builds didn't complete successfully and had errors:
--> virtualbox-iso: Error starting VM: VBoxManage error: VBoxManage.exe: error: VMMR0_DO_NEM_INIT_VM failed: VERR_NEM_MISSING_KERNEL_API_2 (VERR_NEM_MISSING_KERNEL_API_2).
VBoxManage.exe: error: VT-x is not available (VERR_VMX_NO_VMX)
VBoxManage.exe: error: Details: code E_FAIL (0x80004005), component ConsoleWrap, interface IConsole

The reason it fails is because HyperV is enabled and thus VT-x is not available.

If I build this manually, I can create the Virtualbox VM (not using Hyper-V), then using ‘vboxmanage modifyvm’ I can change the ‘paravirtprovider’ to ‘hyperv’. However, using Packer this does not seem possible as the build fails because Packer tries to create a virtualbox-iso using the default (i.e. virtualbox, not hyperv), which of course will fail (as noted above).

There is the option to set ‘vboxmanage’ or ‘vboxmanage_post’ e.g. ‘“vboxmanage_post”: [ [“modifyvm”, “{{ user template }}”, “–paravirtprovider”, “hyperv”] ]’, but this fails as above, i.e. cannot create the initial VM.

Any ideas for a workaround?

Below is the cmd
e.g.

packer build -force -only=virtualbox-iso ubuntu-2004-server-amd64.json

And below is the Packer script e.g. ‘ubuntu-2004-server-amd64.json’ (based on Bento scripts).
e.g.

{
    "builders": [
      {
        "boot_command": [
          "<esc><wait>",
          "<esc><wait>",
          "<enter><wait>",
          "/install/vmlinuz<wait>",
          " auto<wait>",
          " console-setup/ask_detect=false<wait>",
          " console-setup/layoutcode=us<wait>",
          " console-setup/modelcode=pc105<wait>",
          " debconf/frontend=noninteractive<wait>",
          " debian-installer=en_US.UTF-8<wait>",
          " fb=false<wait>",
          " initrd=/install/initrd.gz<wait>",
          " kbd-chooser/method=us<wait>",
          " keyboard-configuration/layout=USA<wait>",
          " keyboard-configuration/variant=USA<wait>",
          " locale=en_US.UTF-8<wait>",
          " netcfg/get_domain=vm<wait>",
          " netcfg/get_hostname=vagrant<wait>",
          " grub-installer/bootdev=/dev/sda<wait>",
          " noapic<wait>",
          " preseed/url=http://{{ .HTTPIP }}:{{ .HTTPPort }}/{{user `preseed_path`}}<wait>",
          " -- <wait>",
          "<enter><wait>"
        ],
        "boot_wait": "10s",
        "cpus": "{{ user `cpus` }}",
        "disk_size": "{{user `disk_size`}}",
        "guest_additions_path": "VBoxGuestAdditions_{{.Version}}.iso",
        "guest_additions_url": "{{ user `guest_additions_url` }}",
        "guest_os_type": "Ubuntu_64",
        "hard_drive_interface": "sata",
        "headless": "{{ user `headless` }}",
        "http_directory": "{{user `http_directory`}}",
        "iso_checksum_type":"sha256",
        "iso_checksum": "{{user `iso_checksum`}}",
        "iso_url": "{{user `mirror`}}/{{user `mirror_directory`}}/{{user `iso_name`}}",
        "memory": "{{ user `memory` }}",
        "output_directory": "{{ user `build_directory` }}/packer-{{user `template`}}-virtualbox",
        "shutdown_command": "echo 'vagrant' | sudo -S shutdown -P now",
        "ssh_password": "vagrant",
        "ssh_port": 22,
        "ssh_timeout": "10000s",
        "ssh_username": "vagrant",
        "type": "virtualbox-iso",
        "virtualbox_version_file": ".vbox_version",
        "vm_name": "{{ user `template` }}",
        "vboxmanage": [ ["modifyvm", "{{ user `template` }}", "--paravirtprovider", "hyperv"] ]
      },
      {
        "boot_command": [
          "<esc><wait10><esc><esc><enter><wait>",
          "set gfxpayload=1024x768<enter>",
          "linux /install/vmlinuz ",
          "preseed/url=http://{{.HTTPIP}}:{{.HTTPPort}}/preseed-hyperv.cfg ",
          "debian-installer=en_US.UTF-8 auto locale=en_US.UTF-8 kbd-chooser/method=us ",
          "hostname={{.Name}} ",
          "fb=false debconf/frontend=noninteractive ",
          "keyboard-configuration/modelcode=SKIP keyboard-configuration/layout=USA ",
          "keyboard-configuration/variant=USA console-setup/ask_detect=false <enter>",
          "initrd /install/initrd.gz<enter>",
          "boot<enter>"
        ],
        "boot_wait": "10s",
        "communicator": "ssh",
        "disk_size": "{{user `disk_size`}}",
        "enable_secure_boot": false,
        "generation": "{{user `hyperv_generation`}}",
        "http_directory": "{{user `http_directory`}}",
        "iso_checksum_type":"sha256",
        "iso_checksum": "{{user `iso_checksum`}}",
        "iso_url": "{{user `mirror`}}/{{user `mirror_directory`}}/{{user `iso_name`}}",
        "output_directory": "{{ user `build_directory` }}/packer-{{user `template`}}-hyperv",
        "shutdown_command": "echo 'vagrant' | sudo -S shutdown -P now",
        "ssh_password": "vagrant",
        "ssh_port": 22,
        "ssh_timeout": "10000s",
        "ssh_username": "vagrant",
        "switch_name": "{{user `hyperv_switch`}}",
        "type": "hyperv-iso",
        "vm_name": "{{ user `template` }}"
      }
    ],
    "post-processors": [
      {
        "output": "{{ user `build_directory` }}/{{user `box_basename`}}.{{.Provider}}.box",
        "type": "vagrant"
      }
    ],
    "variables": {
      "box_basename": "ubuntu-20.04",
      "build_directory": "../../builds",
      "build_timestamp": "{{isotime \"20060102150405\"}}",
      "cpus": "1",
      "disk_size": "65536",
      "git_revision": "__unknown_git_revision__",
      "guest_additions_url": "",
      "headless": "",
      "http_directory": "{{template_dir}}/http",
      "http_proxy": "{{env `http_proxy`}}",
      "https_proxy": "{{env `https_proxy`}}",
      "hyperv_generation": "2",
      "hyperv_switch": "{{env `hyperv_switch`}}",
      "iso_checksum": "36f15879bd9dfd061cd588620a164a82972663fdd148cce1f70d57d314c21b73",
      "iso_name": "ubuntu-20.04-legacy-server-amd64.iso",
      "memory": "1024",
      "mirror": "http://cdimage.ubuntu.com",
      "mirror_directory": "ubuntu-legacy-server/releases/20.04/release",
      "name": "ubuntu-20.04",
      "no_proxy": "{{env `no_proxy`}}",
      "preseed_path": "preseed.cfg",
      "template": "ubuntu-20.04-amd64",
      "version": "TIMESTAMP"
    }
  }