> For the complete documentation index, see [llms.txt](https://docs.platform9.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.platform9.com/private-cloud-director/tutorials/configure-host-for-uefi.md).

# Configure Host for UEFI

Unified Extensible Firmware Interface (UEFI) is a standard firmware designed to replace BIOS. By default, a VM boots in BIOS mode.

<code class="expression">space.vars.product\_name</code> has experimental support for UEFI based VM booting on the following host operating systems.

* Ubuntu 22.04
* Platform9 OS

For the host operating systems supported in this release, see [Host Operating System Support Matrix](/private-cloud-director/getting-started/host-operating-system-support-matrix.md).

UEFI facilitates faster boot, supports larger hard drives, and has more security features as compared to the traditional BIOS.

You can configure an authorized host or hypervisor to boot in UEFI mode.

Open Virtual Machine Firmware (OVMF) is a project to enable UEFI support for virtual machines. OVMF must be installed on your host to enable UEFI mode booting for virtual machines.

The following sections explain how to install OVMF on Ubuntu and Platform9 OS. Refer to the respective section based on your host operating system, verify UEFI installation on your VM, and configure images to boot with UEFI.

### Install OVMF on Host Running Ubuntu

Run the following command to install OVMF on Ubuntu.

```bash
apt-get install ovmf
```

### Install OVMF on Host Running Platform9 OS

Run the following command to install OVMF on Platform9 OS.

```bash
sudo dnf install -y edk2-ovmf
```

{% hint style="info" %}
On Platform9 OS, the firmware images are installed under `/usr/share/edk2/ovmf/`, and the QEMU firmware descriptors in `/usr/share/qemu/firmware/` reference that location, so libvirt selects the firmware automatically and no additional file copying is required. Platform9 OS does not provide `/usr/share/OVMF/OVMF_CODE.fd`, which is the path used on Ubuntu. If a libvirt or Compute Service setting on your host references `/usr/share/OVMF/OVMF_CODE.fd` explicitly, point it at `/usr/share/edk2/ovmf/OVMF_CODE.fd` instead.
{% endhint %}

### Verify that your Virtual Machine is booted in UEFI mode

Look for the `/sys/firmware/efi` folder on your virtual machine (VM). The folder would be missing if your VM is using BIOS.

Alternatively, install the efibootmgr package and check if your VM has been booted with UEFI.

{% tabs %}
{% tab title="Ubuntu" %}

```bash
sudo apt install efibootmgr
sudo efibootmgr
```

{% endtab %}

{% tab title="Platform9 OS" %}

```bash
sudo dnf install -y efibootmgr
sudo efibootmgr
```

{% endtab %}
{% endtabs %}

If your VM is booted with UEFI, the output of the `sudo efibootmgr` command shows different EFI variables.

If your VM does not support UEFI, a message is displayed in the output of the `sudo efibootmgr` command indicating that EFI variables are not supported.

### Configure Image to Boot using UEFI

Add `hw_firmware_type` image metadata to the UEFI image to specify UEFI as the firmware type used to boot the VM.

```bash
pcdctl image set --property hw_firmware_type=uefi <image UUID>
```


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://docs.platform9.com/private-cloud-director/tutorials/configure-host-for-uefi.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
