bento
bento copied to clipboard
Configure `paravirtprovider` to the appropriate value for each OS
Describe the Enhancement:
Configure an appropriate paravirtprovider
value within each OS template.
So for example, on Windows, I believe this would need to be added underneath vboxmanage
[
"modifyvm",
"{{.Name}}",
"--paravirtprovider",
"hyperv"
]
Describe the Need:
At some point VirtualBox added support for utilizing Hyper-V as it's virtualization layer allowing users to run both VirtualBox and Hyper-V rather than having to pick between one or the other. With this change (and with Hyper-V enabled on the workstation), it appears that Windows boxes need to have the paravirtualization interface
on the box configured to Hyper-V
in order to operate correctly.
--paravirtprovider none|default|legacy|minimal|hyperv|kvm: Specifies which paravirtualization interface to provide to the guest operating system. Specifying none explicitly turns off exposing any paravirtualization interface. The option default selects an appropriate interface when starting the VM, depending on the guest OS type. This is the default option chosen when creating new VMs. The legacy option is used for VMs which were created with older Oracle VM VirtualBox versions and will pick a paravirtualization interface when starting the VM with Oracle VM VirtualBox 5.0 and newer. The minimal provider is mandatory for Mac OS X guests. kvm and hyperv are recommended for Linux and Windows guests respectively. These options are explained in Section 10.5, “Paravirtualization Providers”.
Source: https://www.virtualbox.org/manual/ch08.html
Current Alternative
No workaround currently; the global-level detection of the guest OS doesn't work as I'd expect.
https://stackoverflow.com/questions/29974722/how-to-detect-which-os-type-the-current-guest-is-in-the-vagrantfile
Can We Help You Implement This?:
Is configuring each packer JSON appropriate for this change, or is there some better "shared" place to implement?