This page was built to describe TrueNAS CE Fangtooth 25.04.1
See the playlist here: https://youtube.com/playlist?list=PL6zQmF2gDqDT7SHyBe7ni1P2S4NzyJpD6&feature=shared
This is strongly recommended if you have a pool name with spaces or capitalization in it
If you have any apps or shares accessing the pool, stop them before starting these steps
Navigate to Storage → Pool
Click on the Export/Disconnect button to export the pool without destroying any of the data:
Next, in the shell, run these commands as root replacing the original name of the pool with the new name you have chosen.:
zpool import original_name new_name
to confirm the new name is working:
zpool status new_name
so we can import it in the GUI again:
zpool export new_name
Lastly, navigate to the Storage → Pool tab and click the button for Import Pool in the top right corner. Select the new pool you have just renamed.
If you had any apps using hostpath for the old pool they will have to be edited/recreated. Same goes for rsync tasks, shares, snapshots, etc.
To add a single disk to an existing RAIDZ(1,2,3) pool, use the Extend button in the devices menu.
Note that you will not be able to gain 100% of the usable space from that disk until you run the rebalancing script. You can calculate how much capacity you will gain by using the calculator.
To view progress of the expansion, run this command in the shell:
zpool status pool_name
For snapshots and rollbacks at a granular level, datasets should be set up in the pool for each individual app.
Apps running on Scale should use the Host Path Config option to store their data. You will find this option in the right hand menu under Storage Configuration > Type. This allows for the rapid redeployment of apps with no loss to their configurations, which can be considerable for some. Each app uses its respective host path from the example above. For a video explanation and example of this:
https://youtu.be/JZ9zbcyLcDo
In order for the apps to write to the dataset properly, make sure to select the ‘Apps’ option for the dataset preset:
Once the dataset has been created, you can still modify its permissions like below:
For a video walkthrough on permissions:
https://youtu.be/qAGN0_73cV4
Having a static IP to your server will prove necessary if you refer to your apps as IP:Port as shown in most of this wiki. If the IP of the server were to change, all of your apps would become unreachable.
Make sure the IP address you select is available
As long as you are accessing the WebGUI from the address you just selected, you should be given a prompt to Save Changes.
If you are coming from a different IP address, you will need to log back in within 60 seconds to the WebGUI at the new address you just chose, navigate to the Network page, then Save Changes.
We need to change the Nameservers away from our local to something more reliable.
1.1.1.1
and Nameserver 2 to 9.9.9.9
.Before we setup the VM, we have to build a network bridge. This is necessary because without it, our VM won’t be able to see anything on our TrueNAS host. Follow the docs or even better, follow this YouTube video:
Right now this is difficult to do with Windows but has been fairly straight forward with Linux. With Linux I notice the ethernet device changes upon migration, so if you are having issues use VNC to look at the console and troubleshoot your networking.
For Windows this migration guide should help. I didn’t write it, but it seems to work for many people.
By default, Incus runs on port 53, which will conflict with any DNS servers you want to run. To change the default port for Incus, run this command in the TrueNAS shell:
sudo incus network set incusbr0 raw.dnsmasq="port=5354"
Also, if you use a bridge and set Incus to use the bridge, it also solves the conflict.
Note that this repo is under development so not everything is functional!
Starting on Fangtooth, the ability to launch LXCs via the TrueNAS command line is now a thing. Similar to Proxmox, the creation of pre-built containers is vastly simplified by the use of scripts. See this website for a list of scripts available.
In order to use the scripts you must first install the Helper Scripts CLI.
/mnt/tank/scripts
:cd /mnt/tank/scripts
wget https://github.com/bketelsen/IncusScripts/releases/download/v0.2.1/scripts-cli_Linux_x86_64.tar.gz
tar -xzvf scripts-cli_Linux_x86_64.tar.gz
echo 'export PATH=$PATH:/mnt/tank/scripts' >> ~/.zshrc
source ~/.zshrc
echo 'export PATH=$PATH:/mnt/tank/scripts' >> ~/.bashrc
source ~/.bashrc
In the event you want to remove the scripts, simple delete the dataset you downloaded the to CLI in the above step. If you are still having issues, trying running this command in the TrueNAS shell:
incus profile rm scriptcli-storage
Download the .iso file for the version of Windows you want. These .iso files were compiled in May 2025 with the virtio drivers built in:
Create a New Instance
Give it a name
Click VM and select the radio button for Upload ISO, import a zvol or use another volume
Click Upload ISO and select the ISO you just downloaded
You should see it mounted in the Volumes box and can click Select
Assign CPU and Memory
In Storage select Virtio-SCSI as the Root Disk I/O Bus
Give it 60 GiB or more Root Disk Size
Click the box to Enable VNC
Click Create
You now must jump to the VNC quickly so you can press any key to boot from the CD!!
Go through the install per usual
a. In the event you are stopped because there is no internet hit SHIFT F10 then type oobe\bypassnro
Once you have successfully booted into Windows, shutdown the VM
Add the VirtIO Drivers ISO from above to the Disks with a Boot Priority of 2
and an I/O Bus of Virtio-SCSI
Start the VM
Navigate to Device Manager and right-click the Ethernet Device
Click Update Driver
Click Browse my Computer for Drivers then click Browse
Select the drive which has the VirtIO disk mounted in it
Click Next then Finish
To enable RDP type settings
into the Start Bar
Search for remote desktop
Click Remote Desktop Settings and the flip the switch to Enable Remote Desktop
Activation information can be found here
Check out the new TrueNAS Apps directory and guide!
Note that the WebUI button will not open the correct IP when you click it; you must navigate to the app manually
Lawrence does a great job of going over some basic security hardening tasks. Watch his video for some tips.
https://youtu.be/u0btB6IkkEk?feature=shared