Truenas

TrueNAS Installation — A Complete Step-by-Step Guide for Beginners

Complete step-by-step guide to installing TrueNAS SCALE: hardware planning, download, install, pool creation, SMB shares, snapshots, replication, and cloud backups. No prior storage experience required.

A Mohammed Habib Aug 30, 2026 12 min read 13 views Updated Aug 31, 2026
Cover for TrueNAS Installation — A Complete Step-by-Step Guide for Beginners

TrueNAS Installation — A Complete Step-by-Step Guide for Beginners

TrueNAS is the operating system I trust for every piece of storage I care about — my backups, my media library, my virtualization datasets, and my homelab services. It turns commodity hardware into an enterprise-grade storage appliance with ZFS, SMB/NFS sharing, container workloads, and a web UI that doesn't require a PhD to navigate.

This guide walks you through the entire process: hardware planning, downloading, installing, post-install hardening, pool creation, and your first SMB share. No prior storage or FreeBSD knowledge required.


What It Is

Project TrueNAS CORE (FreeBSD-based) / TrueNAS SCALE (Linux-based)
Purpose Network-attached storage (NAS) with ZFS
Interface Web UI + optional shell
License BSD / GPL (open source)
Documentation truenas.com/docs

TrueNAS comes in two flavors:

  • TrueNAS CORE — Based on FreeBSD. Mature, rock-solid ZFS implementation, lower resource usage. Best for pure storage appliances.
  • TrueNAS SCALE — Based on Debian Linux. Adds Kubernetes (K3s) for containers, better hardware support for newer CPUs/GPUs. Best if you want apps (Plex, Home Assistant, etc.) alongside storage.

This guide covers TrueNAS SCALE (current recommendation for most homelabs), but the installation flow is nearly identical for CORE.


The Core Problem: Storage Is Hard to Get Right

Most people start with a USB drive on a router, then a Raspberry Pi with an external drive, then a repurposed desktop with three mismatched drives in a "RAID" that isn't really RAID. Eventually they lose data or spend weekends rebuilding.

ZFS solves this by combining the filesystem and volume manager into one coherent system:

The hard part isn't ZFS — it's the decisions before you type zpool create: - How many drives? What topology (mirror vs raidz1 vs raidz2)? - ECC RAM — do you need it? (Yes, for data you care about) - Boot device — USB, SSD, or mirrored pair? - Network — 1 GbE, 2.5 GbE, 10 GbE, or 25 GbE? - Backup strategy — local snapshots + off-site replication?

This guide makes those decisions explicit.


Step 0 — Hardware Planning

Minimum Requirements (SCALE)

Component Minimum Recommended
CPU 2 cores (x86_64) 4+ cores, AES-NI
RAM 8 GB 16–32 GB + ECC
Boot Drive 16 GB USB / 64 GB SSD 128 GB+ NVMe (mirrored)
Storage Drives 2× same size 4+ drives, same model
Network 1 GbE 2.5/10 GbE NIC
HBA Optional LSI 9201-16i / 9300-16i (IT mode)

Drive Topology Cheat Sheet

Drives Topology Usable Capacity Fault Tolerance Notes
2 Mirror 1× drive 1 drive Simplest, best performance
3 RAIDZ1 2× drives 1 drive Good balance
4 RAIDZ1 3× drives 1 drive
4 RAIDZ2 2× drives 2 drives Recommended for 4+ drives
5 RAIDZ2 3× drives 2 drives
6 RAIDZ2 4× drives 2 drives
8 RAIDZ2 6× drives 2 drives Or 2× 4-drive mirrors

Rule of thumb: For 4+ drives, use RAIDZ2 (dual parity). The extra parity costs one drive but survives any two simultaneous failures. RAIDZ1 survives only one.

ECC RAM — Yes, You Need It

ZFS assumes your RAM is correct. A single-bit flip in a checksum calculation can corrupt your pool irrecoverably. Consumer CPUs (Ryzen, Core i3/i5) support unbuffered ECC on most consumer motherboards — enable it in BIOS. It costs ~10% more and buys you data integrity.


Step 1 — Download & Verify

  1. Go to truenas.com/download
  2. Choose TrueNAS SCALE (or CORE if you prefer FreeBSD)
  3. Download the latest ISO (e.g., TrueNAS-SCALE-24.04.1.1.iso)
  4. Verify the checksum:
# Linux/macOS
sha256sum TrueNAS-SCALE-24.04.1.1.iso
# Compare to the SHA256 on the download page

Never skip verification. A corrupted ISO = corrupted install = corrupted data later.


Step 2 — Create Boot Media

Ventoy lets you drop multiple ISOs on one USB and boot any of them.

# Install Ventoy on Linux
sudo ./VentoyWeb.sh
# Or on Windows: Ventoy2Disk.exe
  1. Plug USB, open Ventoy, select device, click Install
  2. Copy TrueNAS-SCALE-*.iso to the USB
  3. Boot target machine from USB

Option B: Direct Write (dd / Rufus / balenaEtcher)

# Linux/macOS - BE CAREFUL WITH /dev/sdX
sudo dd if=TrueNAS-SCALE-*.iso of=/dev/sdX bs=1M status=progress conv=fsync

Warning: dd destroys data on the target device. Triple-check /dev/sdX.


Step 3 — Boot & Install

  1. Boot from USB — Enter BIOS/UEFI (usually F12, F11, F8, or Del), select USB as boot device
  2. TrueNAS Installer loads — wait for the console menu
  3. Select Install/Upgrade
  4. Select destination drive — Choose your boot SSD (not your data drives!)
  5. For USB boot: select the USB device
  6. For SSD: select the NVMe/SATA SSD
  7. Tip: Install to a dedicated boot device, not a data drive
  8. Set root password — Use a strong password (you'll use this for console/SSH)
  9. Choose boot mode — UEFI (modern) or Legacy BIOS (older hardware)
  10. Wait for installation — Takes 2–5 minutes
  11. Remove USB, reboot

Step 4 — First Boot & Network

  1. System boots to console showing: TrueNAS SCALE 24.04.1.1 Web UI: http://192.168.1.42 (or your DHCP address)
  2. Open Web UI — Navigate to the IP shown in your browser
  3. First-time setup wizard:
  4. Admin password — Set a strong password (different from root)
  5. System name — e.g., truenas-homelab
  6. Time zone — Select yours
  7. Network — DHCP is fine initially; set static IP later
  8. Email — For alerts (configure SMTP later)

Step 5 — Post-Install Hardening

5.1 Set Static IP

Network → Interfaces → Edit → IPv4 → Static - IP: 192.168.10.10/24 (your subnet) - Gateway: 192.168.10.1 - DNS: 1.1.1.1, 9.9.9.9 - Click Save, then Apply

Write down the new IP. You'll lose the DHCP address.

5.2 Enable SSH (for admin only)

Settings → Shell → Enable SSH - Root login: Disable (use admin user + sudo) - Port: Change from 22 (e.g., 2222) - Public key only: Generate SSH key, paste public key here

# On your laptop
ssh-keygen -t ed25519 -C "admin@truenas"
cat ~/.ssh/id_ed25519.pub  # copy to TrueNAS SSH keys

5.3 Configure Email Alerts

System → Email - From: truenas@yourdomain.com - SMTP: your provider (Gmail, SendGrid, self-hosted) - Test with Send Test Email

5.4 Configure Updates

System → Update → Update Preferences - Train: STABLE (not NIGHTLY) - Check daily, notify but don't auto-install

5.5 Set Up Cloud Credentials (for backups)

System → Cloud Credentials → Add - Provider: AWS S3, Backblaze B2, Wasabi, Google Cloud, etc. - Use for: Cloud Sync Tasks (Step 9)


Step 6 — Create Your Storage Pool

This is the most critical step. Get it right once.

6.1 Identify Disks

Storage → Disks — All data drives should appear (not boot drive). - Note serial numbers: Storage → Disks → Columns → Serial Number - Label each physical drive with its serial (masking tape + sharpie)

6.2 Create Pool

Storage → Pools → Add → Create New Pool

Field Value
Name tank (or storage, data, pool1)
Suggestion Click SUGGEST LAYOUT — TrueNAS auto-groups by size
Vdev layout Choose based on drive count (see table above)
Encryption Yes if drives leave your house (AES-256-GCM)
Compression lz4 (default, always on)
Atime Off (saves writes)

Example: 4× 8 TB Drives → RAIDZ2

Pool: tank
  VDEV: raidz2
    - ada1 (8 TB, serial WD1234)
    - ada2 (8 TB, serial WD1235)
    - ada3 (8 TB, serial WD1236)
    - ada4 (8 TB, serial WD1237)
Usable: ~14.5 TB
Tolerance: 2 drive failures

Click Create, confirm WIPE ALL DATA, wait for pool creation.

6.3 Verify Pool Health

Storage → Pools → tank → Status - Should show HEALTHY - No degraded/offline devices - Run Scrub (first one completes in minutes)


Step 7 — Create Datasets

Datasets are ZFS filesystems with their own properties. Create one per workload.

Storage → Pools → tank → Add Dataset

Dataset Name Purpose Key Properties
backups Machine backups compression=zstd, atime=off, snapdir=visible
media Movies/TV/Music compression=lz4, atime=off, recordsize=1M
vm-storage VM disks compression=zstd, sync=always, volblocksize=16K
app-data Container configs compression=zstd, atime=off
documents Personal files compression=zstd, atime=off, copies=2

Pro tip: Set copies=2 on irreplaceable datasets (documents, photos). ZFS stores two copies on different vdevs — survives a single disk failure even in a mirror.


Step 8 — Create SMB Shares

Sharing → Windows (SMB) Shares → Add

Field Value
Name Media
Path /mnt/tank/media
Read Only No
Browseable Yes
Guest Access No
Auxiliary Parameters vfs objects = fruit streams_xattr catia
fruit:metadata = stream
fruit:model = MacSamba
fruit:encoding = native

Create User Accounts

Credentials → Local Users → Add User

Field Value
Username media_user
Full Name Media User
Password Strong password
Shell /usr/sbin/nologin (no shell)
Samba Authentication Yes

Sharing → Windows (SMB) Shares → Media → Edit → ACL - Add media_user with Read/Write - Remove builtin_administrators if not needed

Test from Client

# macOS
open smb://192.168.10.10/Media

# Windows
\\192.168.10.10\Media

# Linux
gio mount smb://192.168.10.10/Media

Step 9 — Set Up Automated Backups

9.1 Local Snapshots (Instant Recovery)

Data Protection → Snapshots → Add

Field Value
Dataset tank/media (repeat for each)
Naming Schema custom-%Y%m%d-%H%M
Schedule Every 1 hour (or 15 min for critical)
Keep For 2 weeks (hourly) + 3 months (daily)
Recursive Yes

Snapshots are instant, zero-cost (copy-on-write), and read-only. Deleted a file? Browse .zfs/snapshot/ in the share and copy it back.

9.2 Replication to Another TrueNAS (Off-site)

If you have a second TrueNAS at a friend's house / colo:

Data Protection → Replication Tasks → Add

Field Value
Source tank/media
Destination remote_tank/media (on remote TrueNAS)
Transport SSH (port 2222)
Schedule Daily at 02:00
Also Include Snapshots
Hold Pending 2 weeks

First replication sends full data (slow). Subsequent runs send only changed blocks (fast).

9.3 Cloud Sync (Backblaze B2 / Wasabi / S3)

Data Protection → Cloud Sync Tasks → Add

Field Value
Direction PUSH
Provider Backblaze B2 (or your provider)
Credential Select from Step 5.5
Bucket truenas-backups-media
Folder media/
Schedule Daily 03:00
Transfer Mode SYNC (or COPY for immutable)
Encryption AES-256 (client-side)
Filename Encryption Yes

Cost example: 14 TB on Wasabi = ~$83/month. Cheaper than a second NAS for pure off-site.


Step 10 — Monitoring & Maintenance

10.1 SMART Monitoring

Storage → Disks → Each disk → Edit → S.M.A.R.T. → Enable - Short test: Weekly - Long test: Monthly - Alert thresholds: Reallocated_Sector_Ct > 0, Current_Pending_Sector > 0

10.2 Scrub Schedule

Data Protection → Scrubs → Add

Field Value
Pool tank
Schedule Monthly, 1st Sunday 03:00
Threshold 35 days

Scrub reads every block, verifies checksums, repairs from redundancy. Run monthly.

10.3 Alerting

System → Alerts - Enable: PoolDegraded, DiskFailure, SMARTError, ScrubError, ReplicationFailed - Transport: Email + Webhook (Discord/Slack via ntfy.sh)


Step 11 — Apps (SCALE Only)

TrueNAS SCALE runs K3s Kubernetes. Deploy apps via Apps → Catalog → TrueCharts / Official.

App Purpose Notes
Plex / Jellyfin Media server Mount /mnt/tank/media
Home Assistant Home automation Persistent config in app-data
Paperless-ngx Document scanner Mount /mnt/tank/documents
Immich Photo backup Mount /mnt/tank/photos
AdGuard Home DNS ad-block Run on host network
Uptime Kuma Service monitoring Lightweight
Grafana + Prometheus Metrics Scrapes TrueNAS exporter

Each app gets its own dataset in app-data for persistence.


What I'd Tell Anyone Building One

  1. Start with mirrored boot drives. A single USB boot drive will fail. Mirror two SSDs (or two USBs) for the boot pool. zpool attach after install.

  2. Don't mix drive sizes in a vdev. A 4 TB + 8 TB mirror gives you 4 TB usable. Buy identical drives.

  3. Label every drive physically. When (not if) a drive fails, you need to pull the right one. Serial on the drive = serial in TrueNAS = label on the chassis.

  4. Test your restores. A backup you've never restored is a wish. Once a quarter: pick a random file, delete it, restore from snapshot. Once a year: do a full disaster recovery drill.

  5. Document your topology. Keep a text file: pool layout, drive serials, IP addresses, passwords (in a password manager), replication targets, cloud buckets. If you get hit by a bus, someone else can recover.

  6. Power protection. A UPS with NUT integration (Services → UPS) lets TrueNAS shut down cleanly on power loss. A dirty shutdown on ZFS usually recovers, but why risk it?


Get It


Last updated: 2026-08-30 — Written for TrueNAS SCALE 24.04 (Dragonfish). Adjust paths/versions for newer releases. EOF echo "written"

Comments (0)

Join the discussion — sign in to comment.

Sign in

No comments yet — be the first to share your thoughts.