Edit

Share via


Update IoT Edge for Linux on Windows

Applies to: IoT Edge 1.5 checkmark IoT Edge 1.5

Important

IoT Edge 1.5 LTS is the supported release. IoT Edge 1.4 LTS is end of life as of November 12, 2024. If you are on an earlier release, see Update IoT Edge.

When a new version of the IoT Edge for Linux on Windows (EFLOW) application is released, update your IoT Edge devices to get the latest features and security improvements. This article explains how to update your IoT Edge for Linux on Windows devices when a new version is available.

With IoT Edge for Linux on Windows, IoT Edge runs in a Linux virtual machine hosted on a Windows device. This virtual machine comes preinstalled with IoT Edge and doesn't have a package manager, so you can't manually update or change any of the VM components. Instead, Microsoft Update manages the virtual machine to keep the components up to date automatically.

The EFLOW virtual machine is designed for reliable updates through Microsoft Update. The virtual machine operating system uses an A/B update partition scheme to make each update safe and lets you roll back to a previous version if something goes wrong during the update process.

Each update has two main components that can be updated to the latest versions. The first is the EFLOW virtual machine and its internal components. For more information about EFLOW, see Azure IoT Edge for Linux on Windows composition. This also includes the virtual machine base operating system. The EFLOW virtual machine is based on Microsoft Azure Linux, and each update provides performance and security fixes to keep the OS up to date with the latest CVE patches. The EFLOW release notes show the Azure Linux version used, and you can check the CBL-Mariner Releases for the list of CVEs fixed for each version.

The second component is the group of Windows runtime components needed to run and interop with the EFLOW virtual machine. The virtual machine lifecycle and interop is managed through different components: WSSDAgent, EFLOWProxy service, and the PowerShell module.

EFLOW updates are sequential, and you need to update to every version in order. To get to the latest version, either do a fresh installation using the latest available version or apply all previous servicing updates up to the version you want.

Important

You can upgrade from EFLOW 1.4 LTS to EFLOW 1.5 LTS using any of the methods described in this article. No special steps are needed to upgrade from EFLOW 1.4 LTS to EFLOW 1.5 LTS.

To find the latest version of Azure IoT Edge for Linux on Windows, see EFLOW releases.

Update using Microsoft Update

To get IoT Edge for Linux on Windows updates, configure the Windows host to get updates for other Microsoft products. By default, Microsoft Updates is on during EFLOW installation. If you need a custom configuration after EFLOW installation, turn this option on or off with these steps:

  1. Open Settings on the Windows host.

  2. Select Updates & Security.

  3. Select Advanced options.

  4. Turn the Receive updates for other Microsoft products when you update Windows option to On.

Update using Windows Server Update Services (WSUS)

On-premises updates using WSUS are supported for IoT Edge for Linux on Windows updates. For more information about WSUS, see Device Management Overview - WSUS.

Offline manual update

If you have restricted or limited internet connectivity, you can manually apply EFLOW updates offline. Use Microsoft Update offline mechanisms to manually download and install IoT Edge for Linux on Windows updates. Follow these steps:

  1. Check the current EFLOW installed version. Open Settings then select Apps -> Apps & features. Search for Azure IoT Edge.

  2. Search and download the required update from EFLOW - Microsoft Update catalog.

  3. Extract AzureIoTEdge.msi from the downloaded .cab file.

  4. Install the extracted AzureIoTEdge.msi.

Managing Microsoft Updates

IoT Edge for Linux on Windows updates are serviced using Microsoft Update channel. To change receiving EFLOW updates, you have to manage Microsoft Updates. The following list includes ways to automate turning on or off Microsoft updates. For more information about managing OS updates, see OS Updates.

  • CSP Policies - Use the Update/AllowMUUpdateService CSP policy. For more information about the Microsoft Updates CSP policy, see Policy CSP - MU Update.

  • Manually manage Microsoft Updates - To opt in to Microsoft Updates, see Opt-In to Microsoft Update.

Migration between EFLOW with Azure Linux 2.0 to EFLOW with Azure Linux 3.0

Migration between Azure Linux 2.0 and Azure Linux 3.0 was introduced as part of EFLOW 1.5.5.07025 update. This migration handles the EFLOW VM migration from EFLOW 1.5.4.07025 with Azure Linux 2.0 to EFLOW 1.5.5.07025 with Azure Linux 3.0, including the following:

  • IoT Edge runtime
  • IoT Edge configurations
  • Containers
  • Networking and VM configuration
  • Stored files

To migrate from EFLOW 1.5.4.07025 with Azure Linux 2.0 to EFLOW 1.5.5.07025 with Azure Linux 3.0, use the following steps.

  1. Get the latest Azure EFLOW 1.5.4.07025 update. If you're using Windows Update, Check Updates to get the latest EFLOW update.

  2. For auto-download migration (needs internet connection), skip this step. If the EFLOW VM has limited/no internet access, download the necessary files before starting the migration (download one of the following).

  3. Open an elevated PowerShell session

  4. Start the EFLOW migration

    Note

    You can migrate with one single cmdlet by using the -autoConfirm flag with the Start-EflowMigration cmdlet. If specified Confirm-EflowMigration doesn't needs to be called to proceed with the Azure Linux 3.0 migration.

    1. If you're using the auto-download migration option, run the following cmdlet
      Start-EflowMigration
      
    2. If you downloaded the MSI in Step 2, use the downloaded files to apply the migration (replace "X64" with "ARM64" in the filepath if using ARM64).
      Start-EflowMigration -standaloneMsiPath "<path-to-folder>\AzureIoTEdge_Update_LTS_1.5.5.07025_X64.msi" 
      
  5. Confirm the EFLOW migration

    1. If you're using the auto-download migration option, run the following cmdlet
      Confirm-EflowMigration
      
    2. If you downloaded the MSI in Step 2, use the downloaded files to apply the migration (replace "X64" with "ARM64" in the filepath if using ARM64).
      Confirm-EflowMigration -updateMsiPath "<path-to-folder>\AzureIoTEdge_Update_LTS_1.5.5.07025_X64.msi" 
      

Warning

If the migration fails for any reason, the EFLOW VM is restored to its original EFLOW 1.5.4.07025 version with Azure Linux 2.0. To cancel the migration or manually restore the EFLOW VM to its prior state, run the Start-EflowMigration cmdlet and then Restore-EflowPriorToMigration.

For more information, check Start-EflowMigration, Confirm-EflowMigration and Restore-EflowPriorToMigration cmdlet documentation by using the Get-Help <cmdlet> -full command.

Next steps

View the latest IoT Edge for Linux on Windows releases.

Learn about IoT Edge for Linux on Windows security premises.