FreeNAS / TrueNAS

FreeNAS is a FreeBSD based NAS appliance. TrueNAS is a renaming of the project and with the arrival of the SCALE project/version it is now based on Linux.

Replace a failing drive

  1. Note failing drive serial no / model: Storage -> Disks -> click on drive
  2. Offline the drive (Storage -> Pools -> Status (upper right corner)) -> Triple dots -> Offline
  3. Shutdown server, replace disk, power on
  4. Return to pool status screen, select the missing disk, triple dots, Replace
  5. Pool will resliver



Since Core was FreeBSD based, and SCALE is linux based existing jails do not work. Replacing jails are “Applications” which is based on kubernetes. Applications themselves are Helm (the k8s package manager) charts, which are bundled packages for kubernetes. The TrueNas appliance provides a base set of charts, but a more comprehensive set is available at the community driven TrueCharts.

One area of confusion is PVC (persistent volume claim) which is the default for most TrueCharts charts. This is a kubernetes storage layer that is difficult to grok. You may elect to use HostPath instead when configuring a chart, which works as you may expect. If you need to look at the files in PVC, you will have to mount the pod’s PVC with truetool.

Connecting to applications

The canonical way to connect to apps is by clicking on the triple dots for the app and select “Shell”. This will launch a browser-embedded shell. If you want to connect over SSH, ssh into the appliance and as root run:

k3s kubectl get namespaces
k3s kubectl get -n <NAMESPACE> pods
k3s kubectl exec -n <NAMESPACE> --stdin --tty <POD> -- /bin/bash

Install truetool

truetool is a utility for work with SCALE.

sudo -i
cd /root
git clone

Migrating TrueCharts

HeavyBullets migration script can be used to upgrade containers through TrueCharts breaking changes.

Accessing Encrypted Cloud Syncs from TrueNAS

  1. Retrieve your Encryption Password and Salt for the sync task. In SCALE: Data Protection -> Cloud Sync Tasks -> Select your task
  2. Install rclone on your local machine
  3. rclone config
  4. n for new config
  5. Setup the remote for your cloud provider’s API, detailed setup instructions found here
  6. After setting up the remote, you may want to test it by listing your remote directories rclone lsd REMOTE_NAME:. Note you should see obscured file names if you use “filename encryption” in TrueNAS
  7. rclone config
  8. n for new config, when selecting type “14” or “crypt” for type
  9. Fill out the details using the remote you created in step 5 and the password/salt you got in step 1
  10. Test your encrypted remote with rclone ls ENCRYPTED_REMOTE_NAME:

Assuming you already have a running TrueNAS on a single ethernet port, and have a second ethernet port with which to do link aggregation. Doc Page

Links to this note