From bc924a13648b41cc0f45b610d2be1e747b05921c Mon Sep 17 00:00:00 2001 From: James Le Cuirot Date: Wed, 6 May 2026 17:14:49 +0100 Subject: [PATCH] virtualbox_ovf: Modernise VirtualBox OVF (including for Vagrant) * 2 CPUs instead of 1 like QEMU. * 2GB RAM instead of 1GB like QEMU. * ICH9 chipset instead of PIIX3. * virtio storage controller instead of IDE. * VMware SVGA display adapter instead of VBoxVGA. * USB tablet pointer instead of PS/2 mouse. * UEFI instead of BIOS. * UTC clock instead of local. We don't enable any of the DRM drivers for any of VirtualBox's display adapters, so it uses efifb regardless, but apparently VMSVGA is best for Linux guests. For UEFI, VirtualBox actually uses EDK2. It also supports Secure Boot, but I haven't tested that. Signed-off-by: James Le Cuirot --- build_library/virtualbox_ovf.sh | 188 +++++--------------- changelog/changes/2026-05-06-ovf-refresh.md | 1 + 2 files changed, 49 insertions(+), 140 deletions(-) create mode 100644 changelog/changes/2026-05-06-ovf-refresh.md diff --git a/build_library/virtualbox_ovf.sh b/build_library/virtualbox_ovf.sh index 75083fbc5a..87ae54e38c 100755 --- a/build_library/virtualbox_ovf.sh +++ b/build_library/virtualbox_ovf.sh @@ -6,9 +6,9 @@ SCRIPT_ROOT=$(readlink -f $(dirname "$0")/..) . "${SCRIPT_ROOT}/common.sh" || exit 1 -DEFINE_string vm_name "CoreOS" "Name for this VM" +DEFINE_string vm_name "Flatcar" "Name for this VM" DEFINE_string disk_vmdk "" "Disk image to reference, only basename is used." -DEFINE_integer memory_size 1024 "Memory size in MB" +DEFINE_integer memory_size 2048 "Memory size in MB" DEFINE_string output_ovf "" "Path to write ofv file to, required." DEFINE_string output_vagrant "" "Path to write Vagrantfile to, optional." @@ -90,12 +90,12 @@ if [[ -n "${FLAGS_output_ovf}" ]]; then virtualbox-2.2 - 1 virtual CPU + 2 virtual CPUs Number of virtual CPUs - 1 virtual CPU + 2 virtual CPUs 1 3 - 1 + 2 MegaBytes @@ -108,21 +108,20 @@ if [[ -n "${FLAGS_output_ovf}" ]]; then 0 - ideController0 - IDE Controller - ideController0 + virtioSCSIController0 + VirtioSCSI Controller + virtioSCSIController0 3 - PIIX4 - 5 + VirtioSCSI + 20 - 1 - ideController1 - IDE Controller - ideController1 + 0 + usb + USB Controller + usb 4 - PIIX4 - 5 + 23 true @@ -130,7 +129,6 @@ if [[ -n "${FLAGS_output_ovf}" ]]; then NAT Ethernet adapter on 'NAT' 5 - E1000 10 @@ -144,137 +142,47 @@ if [[ -n "${FLAGS_output_ovf}" ]]; then 17 - + Complete VirtualBox machine configuration in VirtualBox format - - - - - - - - - - - - - - - - - - - - - - + + + + + - - - - - + + - + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + - - - - - - - diff --git a/changelog/changes/2026-05-06-ovf-refresh.md b/changelog/changes/2026-05-06-ovf-refresh.md new file mode 100644 index 0000000000..6b6f4880ee --- /dev/null +++ b/changelog/changes/2026-05-06-ovf-refresh.md @@ -0,0 +1 @@ +- Refreshed the VirtualBox OVF (which is also used by the Vagrant image) so that VMs are configured with modern hardware, including a VirtIO storage controller and UEFI. The clock is configured for UTC rather than local time.