Stay organized with collections
Save and categorize content based on your preferences.
This document is for platform administrators and application owners that run
virtual machines (VMs) in VM Runtime on GDC. This document shows
you how to enable the Unified Extensible Firmware Interface (UEFI) boot process
instead of the default BIOS booting process for virtual machines (VMs) that use
VM Runtime on GDC. This document also shows how to enable Secure
Boot and how to set up
emulated smbios fields.
Before you begin
To complete this document, you need access to the following resources:
For more information about Secure Boot, see Secure
Boot in the Compute Engine
documentation.
Provide emulated smbios fields
You can set up emulated smbios fields like uuid and serial by adding them
in the firmware field of the VirtualMachine manifest as shown in the example
below:
[[["Easy to understand","easyToUnderstand","thumb-up"],["Solved my problem","solvedMyProblem","thumb-up"],["Other","otherUp","thumb-up"]],[["Hard to understand","hardToUnderstand","thumb-down"],["Incorrect information or sample code","incorrectInformationOrSampleCode","thumb-down"],["Missing the information/samples I need","missingTheInformationSamplesINeed","thumb-down"],["Other","otherDown","thumb-down"]],["Last updated 2025-09-02 UTC."],[],[],null,["This document is for platform administrators and application owners that run\nvirtual machines (VMs) in VM Runtime on GDC. This document shows\nyou how to enable the Unified Extensible Firmware Interface (UEFI) boot process\ninstead of the default BIOS booting process for virtual machines (VMs) that use\nVM Runtime on GDC. This document also shows how to enable [Secure\nBoot](/compute/shielded-vm/docs/shielded-vm#secure-boot) and how to set up\nemulated `smbios` fields.\n\nBefore you begin\n\nTo complete this document, you need access to the following resources:\n\n- Access to Google Distributed Cloud version 1.12.0 (`anthosBareMetalVersion: 1.12.0`) or higher cluster. You can use any cluster type capable of running workloads. If needed, [try Google Distributed Cloud on Compute\n Engine](/kubernetes-engine/distributed-cloud/bare-metal/docs/try/gce-vms) or see the [cluster\n creation\n overview](/kubernetes-engine/distributed-cloud/bare-metal/docs/installing/creating-clusters/create-clusters-overview).\n\nEnable UEFI booting\n\nYou can enable UEFI booting for both new and existing VMs. To enable UEFI\nbooting in an existing VM, the VM must have an EFI partition.\n\n1. [Create a manifest](/kubernetes-engine/distributed-cloud/bare-metal/docs/vm-runtime/tutorial-create-vm#create_a_vm) that defines a `VirtualMachine` or edit the manifest of an existing `VirtualMachine`.\n2. Add the `firmware` field to the `VirtualMachine` manifest as shown in the\n example below:\n\n apiVersion: vm.cluster.gke.io/v1\n kind: VirtualMachine\n metadata:\n labels:\n kubevirt.io/vm: vm1\n name: vm1\n namespace: test-vm-ns\n spec:\n compute:\n cpu:\n vcpus: 2\n memory:\n capacity: 4Gi\n interfaces:\n - name: eth0\n networkName: pod-network\n default: true\n firmware:\n bootloader:\n type: \"uefi\"\n enableSecureBoot: false\n disks:\n - virtualMachineDiskName: disk-from-gcs\n boot: true\n readOnly: true\n\nEnable secure boot\n\nIf UEFI booting is enabled for a VM you can also enable Secure Boot by setting\nthe `enableSecureBoot` field to `true` as shown below: \n\n firmware:\n bootloader:\n type: \"uefi\"\n enableSecureBoot: true\n\nFor more information about Secure Boot, see [Secure\nBoot](/compute/shielded-vm/docs/shielded-vm#secure-boot) in the Compute Engine\ndocumentation.\n\nProvide emulated `smbios` fields\n\nYou can set up emulated `smbios` fields like `uuid` and `serial` by adding them\nin the firmware field of the `VirtualMachine` manifest as shown in the example\nbelow: \n\n firmware:\n \u003cvar translate=\"no\"\u003e\u003cspan class=\"devsite-syntax-nt\"\u003eFIELD_NAME\u003c/span\u003e\u003c/var\u003e: \u003cvar translate=\"no\"\u003e\u003cspan class=\"devsite-syntax-l devsite-syntax-l-Scalar devsite-syntax-l-Scalar-Plain\"\u003eFIELD_VALUE\u003c/span\u003e\u003c/var\u003e\n \u003cvar translate=\"no\"\u003e\u003cspan class=\"devsite-syntax-nt\"\u003eFIELD_NAME\u003c/span\u003e\u003c/var\u003e: \u003cvar translate=\"no\"\u003e\u003cspan class=\"devsite-syntax-l devsite-syntax-l-Scalar devsite-syntax-l-Scalar-Plain\"\u003eFIELD_VALUE\u003c/span\u003e\u003c/var\u003e\n\nReplace \u003cvar translate=\"no\"\u003eFIELD_NAME\u003c/var\u003e and \u003cvar translate=\"no\"\u003eFIELD_VALUE\u003c/var\u003e with the `smbios` field\nnames and values that your application requires.\n\nYou can set up emulated `smbios` fields when using either UEFI or BIOS booting."]]