> For the complete documentation index, see [llms.txt](https://docs.mikopbx.com/mikopbx/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.mikopbx.com/mikopbx/english/manual/maintenance/update/virtual-machine.md).

# Updating a virtual machine

Updating MikoPBX installed on a virtual machine

{% hint style="warning" %}
We recommend updating sequentially, without skipping releases and versions.
{% endhint %}

This guide is intended for MikoPBX installed as a full-fledged virtual machine in VMware, VirtualBox, Hyper-V, KVM, Proxmox VE, and other hypervisors.

Two update methods are available for this type of installation:

* **through the web interface** — the primary and most convenient method;
* **from an ISO image** — a fallback method if the web interface is unavailable or the system needs to be recovered.

{% hint style="danger" %}
Before updating, be sure to create a backup of the MikoPBX settings. Additionally, it is recommended to create a virtual machine snapshot using the hypervisor's tools.
{% endhint %}

## Preparation

1. Make sure you have access to the web interface and the virtual machine console. Create a backup of the MikoPBX settings and call recordings.
2. Create a virtual machine snapshot. If the hypervisor allows, take it with the virtual machine powered off.
3. Make sure at least **400 MB** is free on the system disk.
4. Schedule a maintenance window: during the update, MikoPBX will reboot, and current calls will be dropped.

{% hint style="warning" %}
Do not power off the virtual machine and do not perform a forced reset while the update is being written.
{% endhint %}

## Updating through the web interface

### Updating to a version from the list

1. Open the MikoPBX web interface.
2. Go to **Maintenance** → **PBX update**.

<figure><img src="https://835495363-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FsZ8acWnNlSalIHQjMFu1%2Fuploads%2FOXpfdCkNWthvFkD1gVvK%2FPBXUpdate_Section.png?alt=media&amp;token=c7471c94-6394-40e0-a940-3f929ddcf947" alt=""><figcaption><p>"PBX update" section</p></figcaption></figure>

3. In the **"Online updates available"** table, find the version you need. Review the list of changes and click the update button next to the selected version.

<figure><img src="https://835495363-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FsZ8acWnNlSalIHQjMFu1%2Fuploads%2FBKfhpNNDSJpnEA8QmOgK%2FupdatePBXFromWeb.png?alt=media&amp;token=4d637ce8-2d6b-4ad5-bcb6-452eb6299b4f" alt=""><figcaption><p>Button to update the station from the web interface</p></figcaption></figure>

4. Wait for the image to download. Do not close the page until the confirmation dialog appears. Enter the phrase **"Yes, I have a backup"**. Click **Update**.

<figure><img src="https://835495363-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FsZ8acWnNlSalIHQjMFu1%2Fuploads%2FbLSCLYKJQ0atPXbvrpLn%2FMikoPBX_UpdateConfirmation.png?alt=media&amp;token=014c2344-bf82-4c72-8e72-b318b01f8e4b" alt=""><figcaption><p>Confirmation of backup existence</p></figcaption></figure>

MikoPBX will prepare the update and reboot the virtual machine automatically.

### Updating with a local IMG file

This method is suitable if the required version is not in the list of online updates or the file has already been downloaded in advance.

1. Download the `.img` file of the required version from the [MikoPBX releases](https://github.com/mikopbx/Core/releases) page.

{% hint style="info" %}
Pay attention to the architecture of your MikoPBX: if you have an ARM MikoPBX, use the update file with "arm64" in its name. If you have an x86 MikoPBX, use the update file with "x86\_64" in its name.
{% endhint %}

<figure><img src="https://835495363-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FsZ8acWnNlSalIHQjMFu1%2Fuploads%2Fb8KnA6UNRMfqzJ0KIb8h%2FMikoPBXGithubReleases-IMG.png?alt=media&amp;token=b1c2c6c2-3167-4d0f-9d6b-91110055e3b5" alt=""><figcaption><p>Downloading .img for update</p></figcaption></figure>

2. In the web interface, open **Maintenance** → **PBX update**.

<figure><img src="https://835495363-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FsZ8acWnNlSalIHQjMFu1%2Fuploads%2FOXpfdCkNWthvFkD1gVvK%2FPBXUpdate_Section.png?alt=media&amp;token=c7471c94-6394-40e0-a940-3f929ddcf947" alt=""><figcaption><p>"PBX update" section</p></figcaption></figure>

3. In the file selection field, specify the downloaded `.img`.

{% hint style="info" %}
The update form only accepts a `.img` file. ISO, RAW, VHD, and the LXC archive are not suitable for this method.
{% endhint %}

<figure><img src="https://835495363-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FsZ8acWnNlSalIHQjMFu1%2Fuploads%2FzaW9tI3kN7zaNA7bco4u%2FMikoPBXUpdate_ChooseIMG.png?alt=media&amp;token=e76c27b5-0cad-4487-b7b7-e45cac68e16d" alt=""><figcaption><p>Selecting update file</p></figcaption></figure>

4. Click **Apply update**.

<figure><img src="https://835495363-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FsZ8acWnNlSalIHQjMFu1%2Fuploads%2F3AlOeprJbZhoh6H9eXqF%2FMikoPBX_ApplyUdate.png?alt=media&amp;token=125fe2ca-28a6-480d-b06c-b816e770d6b6" alt=""><figcaption><p>Button to apply the update</p></figcaption></figure>

5. Enter the phrase **"Yes, I have a backup"**. Confirm the update and wait for the reboot.

<figure><img src="https://835495363-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FsZ8acWnNlSalIHQjMFu1%2Fuploads%2FbLSCLYKJQ0atPXbvrpLn%2FMikoPBX_UpdateConfirmation.png?alt=media&amp;token=014c2344-bf82-4c72-8e72-b318b01f8e4b" alt=""><figcaption><p>Confirmation of backup existence</p></figcaption></figure>

## Updating from an ISO image

Use this option if the PBX does not boot normally, the web interface is unavailable, or you need to perform the update from Recovery mode.

1. Download the ISO image of the required version from the [MikoPBX releases](https://github.com/mikopbx/Core/releases) page.

{% hint style="info" %}
Pay attention to the architecture of your MikoPBX: if you have an ARM MikoPBX, use the update file with "arm64" in its name. If you have an x86 MikoPBX, use the update file with "x86\_64" in its name.
{% endhint %}

<figure><img src="https://835495363-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FsZ8acWnNlSalIHQjMFu1%2Fuploads%2FADgXtWR25BNDMvktouDc%2FMikoPBXGithubReleases-ISO.png?alt=media&amp;token=0445bad2-dee6-433b-beb1-754ba4fed041" alt=""><figcaption><p>Downloading .iso for update</p></figcaption></figure>

2. Power off the virtual machine. In the hypervisor settings, connect the ISO to the virtual CD/DVD drive and set booting from the virtual CD/DVD before the system disk.

<figure><img src="https://835495363-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FsZ8acWnNlSalIHQjMFu1%2Fuploads%2FnpoRhnXxlnGl9hMla6QN%2FattachISOToVMUTM.png?alt=media&amp;token=b94dca6d-86e2-4a26-869a-418e494e88f2" alt=""><figcaption><p>Example of a mounted .iso file in the UTM hypervisor.</p></figcaption></figure>

3. Start the virtual machine and open its console.
4. Wait for the message about booting in recovery mode — **System booted in recovery mode (Live CD)**.

<figure><img src="https://835495363-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FsZ8acWnNlSalIHQjMFu1%2Fuploads%2FNVvXR9NQtwBjjLqHkxje%2FMikoPBX-RecoveryMode3.40.png?alt=media&amp;token=078483ef-a409-46e5-a647-06b60c927aef" alt=""><figcaption><p>MikoPBX in Recovery Mode</p></figcaption></figure>

5. Press any key to open the console menu. Then open **"\[4] Install or recover"**.

<figure><img src="https://835495363-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FsZ8acWnNlSalIHQjMFu1%2Fuploads%2FyyphjPoRPm1vVDYh07Sl%2FMikoPBX-3.40-InstallOrRecover.png?alt=media&amp;token=c68bfc24-d6f0-4c06-a4eb-8d4e94484402" alt=""><figcaption><p>"Install or recover" section in the MikoPBX console menu</p></figcaption></figure>

6. Select **"Update to version..."**

{% hint style="danger" %}
Do not select the **Install** option. It starts a new installation and warns that data on the selected disk will be erased. To update while keeping the settings, use the **Update to version...** option.
{% endhint %}

<figure><img src="https://835495363-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FsZ8acWnNlSalIHQjMFu1%2Fuploads%2FBjoFf2CsEMpS5HeFxoCs%2FMikoPBXConsole-UpdateTo3.40.png?alt=media&amp;token=995274db-4fd5-435f-8b3e-87038834bd10" alt=""><figcaption><p>Version update to 2026.3.40</p></figcaption></figure>

After the operation is complete:

1. Power off the virtual machine if the ISO was not disconnected automatically.
2. Disconnect the ISO from the virtual drive.
3. Restore booting from the system disk as the first boot device.
4. Start the virtual machine.

<figure><img src="https://835495363-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FsZ8acWnNlSalIHQjMFu1%2Fuploads%2FicO2rPzIOz3oJ4lhrafE%2FUpdatedMikoPBX2026.3.40.png?alt=media&amp;token=daa0d6b3-80ca-4b16-abeb-795f08f4ee34" alt=""><figcaption><p>Successful update of the station to version 2026.3.40.</p></figcaption></figure>


---

# 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.mikopbx.com/mikopbx/english/manual/maintenance/update/virtual-machine.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.
