> For clean Markdown of any page, append .md to the page URL.
> For a complete documentation index, see https://docs.ibee.co.in/docs/llms.txt.
> For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://docs.ibee.co.in/docs/_mcp/server.

# ISOs

> Add custom ISO images to your IBEE Solutions organization from a remote URL, attach them to VMs, and choose them when deploying.

ISOs let you bring operating system installers and other boot images that aren't in the [OS template catalog](/docs/infrastructure/cloud-vms/os-images). Add an ISO once from a remote URL, then choose it under **Operating System → ISOs** when [creating a VM](/docs/infrastructure/cloud-vms/create-a-vm), or attach it to an existing VM from the ISOs page.

> **Warning**
>
> **Interactive installs need a console, which isn't available in the portal yet.** A VM booted from an installer ISO waits for you to step through the installer, and browser console access is still **Coming soon**. You can add, attach, and detach ISOs today, but plan on a [template](/docs/infrastructure/cloud-vms/os-images) or a [snapshot](/docs/tools/snapshots) for VMs you need to reach now.

## Open the ISOs page

1. In the IBEE Solutions portal, expand **Tools** in the left nav.
2. Click **ISOs**.

The page lists every ISO in the current organization, with a **Search ISOs…** box (matches the ISO name) and a **Refresh** button. The empty state shows **No ISOs Found** with an **Add ISO** call-to-action.

The list has these columns:

| Column          | What it shows                                                                                                                                     |
| --------------- | ------------------------------------------------------------------------------------------------------------------------------------------------- |
| **ISO**         | The name you gave the ISO.                                                                                                                        |
| **Status**      | **Pending** while IBEE downloads and validates the image, **Complete** when it's ready to use, or **Error** if the download or validation failed. |
| **Size**        | The image size once downloaded.                                                                                                                   |
| **MD5**         | The image checksum, so you can compare it with the publisher's value.                                                                             |
| **Attached To** | The VM the ISO is attached to, or **Not attached**.                                                                                               |
| **Added**       | When the ISO was added.                                                                                                                           |

## Add an ISO

### 1. Click Add ISO

Click **Add ISO** (top-right or the empty-state button). The **Add ISO** dialog opens with the subtitle **Upload from a remote URL (up to 10 GB)**.

### 2. Enter a name

In **ISO Name**, give the image a clear, human-readable label.

Example: `Ubuntu 24.04 LTS`

This is the name you'll see in the ISOs list and in the VM deployer's **ISOs** tab.

### 3. Paste a remote URL

In **Remote URL**, paste the public URL where the ISO can be downloaded.

Example: `https://releases.ubuntu.com/24.04/ubuntu-24.04.iso`

### 4. Confirm the constraints

The dialog reminds you of the upload requirements:

| Constraint                                  | Value                                           |
| ------------------------------------------- | ----------------------------------------------- |
| ISO must be publicly accessible via the URL | Yes — IBEE pulls from the URL you provide       |
| Supported formats                           | `.iso` images only                              |
| Maximum size                                | **10 GB**                                       |
| URL scheme                                  | Must begin with **`http://`** or **`https://`** |

If your image lives behind authentication, host it on a public bucket (such as [Object Storage](/docs/infrastructure/object-storage)) or generate a signed URL that doesn't require headers.

### 5. Click Add ISO

Click **Add ISO** in the bottom-right of the dialog. A confirmation reads **ISO added — validating URL in background…**, and the new entry appears with status **Pending**. It changes to **Complete** once IBEE has downloaded and validated the image. Click **Refresh** to update the list.

## Attach an ISO to a VM

You can attach a **Complete** ISO that isn't attached anywhere to an existing VM:

1. On the ISO's row, open the actions menu and click **Attach**.
2. In the **Attach ISO** dialog, enter the **VM ID**. **VM Name** is optional and is used as a label.
3. Click **Attach**.

The **Attached To** column then shows the VM. Each ISO can be attached to one VM at a time.

## Detach an ISO

1. On the attached ISO's row, open the actions menu and click **Detach**.
2. The **Detach ISO** dialog shows which VM it's **Currently attached to**. Confirm with **Detach**.

## Boot a new VM from your ISO

1. Open **Infrastructure → Cloud VMs** and click **Deploy VM**.
2. Pick the **Location** and **Plan** as usual.
3. Under **Operating System**, switch to the **ISOs** tab.
4. Pick your ISO from the list.
5. Continue with **SSH Keys**, **Network Configuration**, **Billing**, and **VM Details**, then click **Deploy**.

The VM boots from the ISO. Completing an interactive installer requires console access, which isn't available in the portal yet — see the note at the top of this page.

## Manage ISOs

From the ISOs list:

* Use the **search box** to filter by name.
* Use **Refresh** to re-poll the list after a recent upload.
* Use the per-row actions menu to **Attach**, **Detach**, or **Delete** an ISO.

**Delete** is disabled while the ISO is attached — the dialog shows **Detach from VM first before deleting.** Deleting an ISO removes it from organization storage. VMs already installed from the ISO are unaffected — the install lives on the VM's own root disk.

## Bring-your-own-image checklist

For a custom Linux ISO to boot cleanly under KVM, verify before uploading:

* **virtio drivers** for disk and network are present (Linux kernels include them by default).
* **DHCP client** is enabled on the primary NIC.
* The ISO has a working **bootloader** that targets `/dev/vda`.
* (Optional) Install **cloud-init** during the install for SSH key injection on next boot.

For Windows ISOs, plan to install virtio drivers from the [Windows guest tools ISO](https://github.com/virtio-win/kvm-guest-drivers-windows) during setup.

## Troubleshooting

**Add ISO button is disabled**
Both **ISO Name** and **Remote URL** are required. If the URL doesn't start with `http://` or `https://`, the dialog shows an error when you click **Add ISO**.

**Status stays Pending or changes to Error**
The URL must be publicly reachable from IBEE infrastructure. Check the URL in a browser; if it requires authentication, redirects to a login page, or rate-limits unauthenticated downloads, host the ISO somewhere that doesn't. Then delete the failed entry and add the ISO again.

**Image rejected as "unsupported format"**
Only `.iso` files are accepted. Cloud images in `.qcow2`, `.img`, or `.vmdk` are not — for those, see [Custom images](/docs/infrastructure/cloud-vms/custom-images) (snapshot/backup paths instead).

**Attach is missing from the row menu**
**Attach** appears only for ISOs with status **Complete** that aren't already attached. Detach the ISO from its current VM first.

**Can't delete an ISO**
Detach it from its VM first.

## Related pages

* [OS images](/docs/infrastructure/cloud-vms/os-images)
* [Custom images](/docs/infrastructure/cloud-vms/custom-images)
* [Create a VM](/docs/infrastructure/cloud-vms/create-a-vm)