> ## Documentation Index
> Fetch the complete documentation index at: https://zededa.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

> ## Agent Instructions
> Use the documentation index to find relevant pages, then read the linked Markdown before answering and cite the source URL.
> Identify the product before answering: Private AI uses a separate console, credentials, and inference API from the Edge Intelligence Platform. Do not apply instructions from one product to the other.
> Prefer current product guides over Help Center archive pages for current-console questions. Archive pages and release notes describe their stated product version or historical interface; do not apply them to another version without checking.
> Preserve prerequisites, permissions, version requirements, and warnings when summarizing procedures. Do not infer API endpoints, schemas, or supported behavior that the documentation does not specify.

# Create an EVE-OS Compatible Windows 10 VM (FML Mode)

> How to create a Windows 10 virtual machine in VirtualBox with VirtIO drivers for deployment in FML (Full Machine Launch) mode on EVE-OS.

## Introduction

EVE-OS supports Windows 10 workloads packaged as QCOW2 virtual machine images. FML (Full Machine Launch) mode uses UEFI boot and requires VirtIO storage drivers to be injected into the Windows installation. This procedure walks through creating and configuring a Windows 10 VM in VirtualBox, injecting the required VirtIO drivers, and converting the disk to QCOW2 format for deployment on EVE-OS.

## Prerequisites

* Windows 10 ISO image (64-bit).
* VirtualBox 6.1 or later installed on your local machine.
* VirtIO drivers ISO. Download from the [Fedora VirtIO drivers documentation](https://docs.fedoraproject.org/en-US/quick-docs/creating-windows-virtual-machines-using-virtio-drivers).

## Create the Virtual Machine

1. Open VirtualBox Manager and click **New** to create a new VM.
2. Enter a name for the VM and select **Windows 10 (64-bit)** as the OS type. Click **Continue**.
3. Set the memory size. Use a minimum of 4 GB. Click **Continue**.
4. Select **Create a virtual hard disk now** and click **Continue**.
5. Choose **VMDK** as the disk type. Click **Continue**.
6. Choose **Dynamically allocated** storage. Click **Continue**.
7. Set the file location and size. Use a minimum of 30 GB. The default location is acceptable. Click **Continue**.

## Configure the VM Settings

1. Open the VM **Settings**, navigate to **System**, and confirm the following:
   * Boot order: optical drive first, then hard disk.
   * All three options in the **Extended Features** section are enabled. EFI must be enabled for FML mode.

2. Navigate to **Storage** and configure two optical drives:
   * Port 1: Windows 10 ISO.
   * Port 2: VirtIO drivers ISO.

## Review the Final Configuration

Confirm the following before starting installation:

* EFI is enabled.
* Boot order is optical drive first, then hard disk.
* Storage shows the Windows 10 ISO on port 1 and the VirtIO drivers ISO on port 2.

## Install Windows 10

Start the VM and complete the Windows 10 installation from the ISO.

Follow the on-screen prompts to complete the installation. After Windows is installed, proceed to install the VirtIO drivers.

## Install VirtIO Drivers

1. After Windows installation completes, right-click the Windows Start button and open **File Explorer**.
2. Navigate to the drive where the VirtIO drivers ISO is mounted (for example, the `E:` drive).
3. Locate `virtio-win-gt-x64` in the drivers directory and run the installer.
4. Follow the installation guide to install all VirtIO drivers.

## Inject Storage Drivers in the PE Environment

VirtIO storage drivers must be injected into the Windows Preinstallation Environment (PE) to allow Windows to boot from the VirtIO disk controller after conversion. See [this SuperUser article](https://superuser.com/questions/1057959/windows-10-in-kvm-change-boot-disk-to-virtio) for background.

1. Open **Settings** and navigate to **Update & Security**.
2. Select **Recovery** and click **Restart now** under **Advanced startup**.
3. Select **Troubleshoot > Advanced options > Command Prompt**. The system reboots into a recovery command prompt. Enter your credentials if prompted.
4. At the command prompt, identify the drive letter where the VirtIO drivers ISO is mounted.
5. Navigate to the VirtIO drivers directory for your Windows version (where "e" is where virtio drivers are mounted in the following example):

```text theme={"dark"}
e:\amd64\w10
```

6. Load the SCSI driver:

```text theme={"dark"}
drvload e:\amd64\w10\vioscsi\vioscsi.inf
```

7. Inject the SCSI driver into the Windows installation drive (replace `c:` with the letter of your Windows drive):

```text theme={"dark"}
dism /image:c:\ /add-driver /driver:e:\amd64\w10\vioscsi\vioscsi.inf
```

8. Repeat steps 6 and 7 for the VioStor driver:

```text theme={"dark"}
dism /image:c:\ /add-driver /driver:e:\amd64\w10\viostor\viostor.inf
```

9. Close the command prompt and shut down the VM.

## Convert the VM Disk to QCOW2

After driver injection and shutdown, convert the VMDK disk file to QCOW2 format. Run the following command from the directory containing the VMDK file:

```text theme={"dark"}
qemu-img convert -f vmdk -O qcow2 fml-vbox-vm.vmdk virtual-box-w10vm.qcow2
```

The output file `virtual-box-w10vm.qcow2` is ready to upload to EVE-OS as a VM application image.

## Next Steps

> [card] [Manage an App Image](https://zededa.mintlify.site/new-ui/infrastructure-services/build-and-library/manage-an-app-image.md)
>
> Upload the QCOW2 image to your enterprise.

> [card] [Add an Edge App Image](https://zededa.mintlify.site/new-ui/infrastructure-services/build-and-library/add-an-edge-app-image.md)
>
> Add the QCOW2 image as a deployable edge application.

> [card] [Create an EVE-OS Compatible Windows 10 VM (HVM Mode)](https://zededa.mintlify.site/new-ui/infrastructure-services/virtual-machines-on-eve-os/create-windows-vm-hvm.md)
>
> Create a Windows 10 VM for HVM mode instead.
