This content follows experimental nightly development software. Pre-release software is intended for testing purposes only. Use the Product and Version selectors above to view content specific to a stable software release.
Virtual Machines and Containers in TrueNAS 25.04 and Later
TrueNAS 25.04 replaces the previous KVM hypervisor (TrueNAS 24.10 and earlier) with Incus for virtual machine (VM) deployment.
It also introduces support for Linux system containers (LXC), enabling lightweight isolation similar to jails in TrueNAS CORE.
With this change, the Instances (formerly Virtualization) screens in the TrueNAS UI are fully redesigned.
We are actively updating Tutorials and UI Reference articles to reflect these changes.
Please use the Docs Hub Feedback button (located to the right of any article) to report documentation issues or request improvements to the Instances documentation.
Migrating VMs from 24.10 to 25.04
Manual Migration Required
Due to configuration incompatibilities between the previous KVM hypervisor (TrueNAS 24.10 and earlier) and Incus in TrueNAS 25.04, existing VM configurations do not transfer automatically during the upgrade.
However, TrueNAS retains storage zvols, allowing you to manually recreate the previous VM configurations and get them back online.
Instances are an experimental feature intended for community testing only.
Users with production VMs on TrueNAS 24.10 should not upgrade to TrueNAS 25.04 until after this experimental feature stabilizes in a future TrueNAS release.
Manual Migration Instructions
To migrate VMs from TrueNAS 24.10 (latest) to 25.04:
Recreate VMs using the saved configurations and attach existing zvol storage.
Preparing to Migrate VMs from 24.10
Copy or write down the VM configuration:
a. Go to the Virtualization screen and locate your VM.
b. Click on the VM row to expand it, then click Edit.
c. Take a screenshot or manually write down the VM settings, as they do not transfer to 25.04.
d. Save this information externally for reference.
Copy or write down the storage and virtual device configuration:
a. Go to the Virtualization screen and locate your VM.
b. Click on the VM row to expand it, then click device_hubDevices.
c. Click more_vert in the Disk row and select Edit.
d. Note the Zvol path, storage Mode, and Disk Sector Size.
e. Document all VM devices and their configurations for later use.
Recreating VMs in 25.04
Configure Instances settings:
a. After upgrading to TrueNAS 25.04, go to Instances (formerly Virtualization).
b. Click Select Pool to open Global Settings.
c. Select the storage pool for virtualization from the Pool dropdown.
d. Accept default networking settings or modify as needed, then click Save.
Recreate the VM using the existing zvol:
a. Click Create New Instance.
b. Select VM as the Virtualization Method.
c. Select Upload ISO, import a zvol or use another volume from VM Image Options.
d. Click Select Volume to open the Volumes screen, then click Import Zvols to open the Import Zvol dialog.
Enter the path or browse to select an existing Zvol in Select Zvols.
Select the radio button to clone or move the existing zvol.
Select Clone to clone and promote a temporary snapshot of the zvol into a custom storage volume.
This option retains the original zvol while creating an identical copy as an instances volume.
Select Move to relocate the existing zvol to the ix-virt dataset as a volume.Enter or browse to select the path to the existing zvol.
f. Adjust VM settings (CPU, memory, networking, etc.) to match your previous configuration.
g. Click Create.
Instances (Incus-powered containers and virtual machines) are an experimental feature intended for community testing only.
Functionality could change significantly between releases, and instances might not upgrade reliably.
Use this feature for testing purposes only—do not rely on it for production workloads.
Long-term stability is planned for future TrueNAS Community Edition releases.
Make all configuration changes using the TrueNAS UI.
Operations using the command line are not supported and might not persist on upgrade.
For assistance or to discuss this feature with other TrueNAS users, visit our community forums. To report bugs, submit an issue on TrueNAS Jira.
If you want to access your TrueNAS directories from within a virtual machine or container hosted on the system, you have multiple options:
Allow TrueNAS to create an automatic bridge (default)
If you have only one physical interface, you can manually create a bridge interface.
If you have more than one physical interface, you can assign a NIC other than the primary one your TrueNAS server uses.
This method makes communication more flexible but does not offer the potential speed benefits of a bridge.
Instances (Linux containers or VMs) allow you to configure a MACVLAN NIC, which creates a virtual interface based on an existing physical one.
The assigned unique MAC address allows the instance to appear as a separate device on the network.
A MACVLAN NIC on the same physical interface as the TrueNAS host cannot directly communicate with the host.
MACVLAN sends traffic directly to the external network without passing through the host network stack.
The host does not recognize MACVLAN packets as local, so any traffic between them must be routed through an external switch, use a separate NIC, or use a network bridge.
Using Default Network Settings
Leave Use default network settings selected while creating a new instance to allow TrueNAS to automatically assign the default network bridge.
This is the simplest way to allow communication between containers and the TrueNAS host.
If your system only has a single physical interface, and you prefer to manually configure a network bridge, complete these steps.
Before making network interface changes:
Stop running apps.
Power off running virtual machines (VMs) and containers.
Remove active NIC devices for VMs and containers.
Sharing services such as SMB that use the IP address(s) assigned to the primary interface might cause issues with testing network changes.
To resolve issues, stop sharing services such as SMB, change the interface, and test the connection. Restart the service when complete.
To set up a bridge interface:
Go to Network > Interfaces and find the active interface you want to use as the bridge parent interface.
Note the interface IP Address and subnet mask.
Click the interface to open the Edit Interface screen.
Clear the DHCP checkbox, if enabled.
Note the IP address and mask under Aliases.
Click the X next to the listed alias to remove the IP address and mask.
The Aliases field now reads No items have been added yet.
Click Save.
Enter a name for the interface.
Use the correct format based on the interface type:
bondX* for a LAGG interface
vlanX for a VLAN interface
brx for a bridge interface
Where X is a number representing a non-parent interface.
Assign the first bridge interface br0.
You cannot change the Name of the interface after clicking Save.
(Optional but recommended) Enter any notes or reminders about this particular bridge in Description.
Select the interfaces on the Bridge Members dropdown list.
Click Add to the right of Aliases to show the IP address fields, and enter the IP address for this bridge interface.
Click Add again to show additional IP address fields for each additional IP address you want to add.
After TrueNAS finishes testing the interface, click Save Changes to keep the changes.
Click Revert Changes to discard the changes and return to the previous configuration.
Occasionally, a misconfigured bridge or a conflict with a running application, VM, or service can cause the network changes test to fail.
Typically, this is because the bridge is configured using an IP address that is already in use.
If the system does not receive a Save Changes check-in before the test times out (default 60 seconds), TrueNAS automatically reverts all unsaved changes.
The following troubleshooting options are available if you cannot save the new bridge and network changes.
Options are ordered from the least to the most disruptive.
Try options one and two before proceeding with options three and four.
Ensure that there are no currently running applications.
Stop any running VMs.
(Optional) Go to Services.
Click editConfigure to view the current configuration of sharing services including SMB and NFS.
Stop any services that have a bind IP address matching the bridge IP address.
Restart the service(s) after network changes are tested and saved.
(Optional) Stop running apps.
After network changes are tested and saved, restart apps.
To assign the bridge to a VM or container, go to Instances, select the instance you want to use to access TrueNAS storage, and locate the NIC widget.
Click Add and select the new bridge interface from the dropdown list.
You can now access your TrueNAS storage from the container.
You might have to set up shares or users with home directories to access certain files.
Assigning a Secondary NIC: Multiple Physical Interfaces
If you have more than one NIC on your system, you can assign container traffic to a secondary NIC.
Configure the secondary interface as described in Managing Interfaces before attaching it to an instance.
If you are creating a new instance, use the Network settings to disable Use default network Settings and select the secondary NIC from Macvlan NICs.