TrueNAS CORE to SCALE: The FreeBSD to Linux Migration Story
The TrueNAS migration from FreeBSD (CORE) to Linux (SCALE) is one of the most significant shifts in the FreeBSD ecosystem in recent years. iXsystems, the company behind TrueNAS, made a deliberate strategic decision to move its primary NAS platform from FreeBSD to Debian Linux. This post examines why, what the consequences are, and what options remain for FreeBSD NAS users.
The Timeline
Understanding the migration requires seeing the full arc:
- 2005: iXsystems begins contributing to FreeNAS, a FreeBSD-based NAS operating system
- 2009: iXsystems acquires the FreeNAS project
- 2020: FreeNAS rebranded to TrueNAS CORE; TrueNAS SCALE (Linux-based) announced
- 2022: TrueNAS SCALE reaches stable release
- 2023: iXsystems signals that SCALE is the future; CORE enters slower development
- 2024: TrueNAS CORE receives maintenance updates only. No new features.
- 2025: iXsystems officially recommends SCALE for new deployments. CORE continues to receive security fixes.
- 2026: TrueNAS CORE remains available but is effectively in maintenance mode. The migration to SCALE is the clear direction.
Why iXsystems Moved to Linux
The decision was pragmatic, not ideological. iXsystems publicly stated several reasons:
Docker and Kubernetes
This was the primary driver. Customer demand for Docker containers on NAS devices was overwhelming. FreeBSD jails are powerful isolation mechanisms, but the Docker ecosystem -- images, Compose files, Docker Hub, Portainer -- is Linux-only.
TrueNAS SCALE runs Docker natively. Users can deploy Plex, Home Assistant, Nextcloud, and hundreds of other applications from container images with a few clicks. TrueNAS CORE could only offer jails and bhyve VMs, which require more expertise and have a smaller software ecosystem.
KVM Virtualization
FreeBSD has bhyve, which is a capable hypervisor. But KVM on Linux has broader guest OS support, better performance for certain workloads, and more management tooling (libvirt, virt-manager, Proxmox integration).
TrueNAS SCALE uses KVM for virtual machines, giving users access to the full Linux virtualization ecosystem.
Hardware Compatibility
Linux supports more hardware. This matters for a NAS product:
- More HBA (Host Bus Adapter) drivers
- Better GPU passthrough for transcoding (NVIDIA and Intel Quick Sync)
- Broader NIC support
- Better USB device support
For a product that ships on diverse hardware configurations, Linux's wider driver support reduces support tickets.
GPU Transcoding
Media server use is a major NAS use case. Plex and Jellyfin users want hardware-accelerated video transcoding. NVIDIA GPU support on Linux is mature. On FreeBSD, NVIDIA support is limited and does not include the features needed for transcoding.
Developer and Community Ecosystem
More developers know Linux than FreeBSD. More CI/CD tools, more testing infrastructure, more third-party integrations assume Linux. Building and maintaining a product on Linux has lower friction for recruiting and tooling.
Application Ecosystem
Beyond Docker, Linux has a larger ecosystem of applications available as native packages. This made it easier for iXsystems to offer a rich application catalog in TrueNAS SCALE.
What TrueNAS CORE Users Lose
The migration is not without costs:
ZFS Integration Quality
FreeBSD's ZFS integration is arguably deeper than Linux's. Both use OpenZFS, but FreeBSD's implementation has:
- Tighter kernel integration
- Historically fewer edge-case bugs
- Boot environment support built into the base system
In practice, OpenZFS on Linux has matured significantly and the gap has narrowed. But FreeBSD ZFS users occasionally note behaviors that are slightly different or less polished on Linux.
Jails
FreeBSD jails are lightweight, secure containers that predate Docker by over a decade. They provide OS-level virtualization with near-zero overhead. TrueNAS CORE users who built workflows around jails cannot directly migrate those to TrueNAS SCALE.
Docker on SCALE can replicate most jail use cases, but the transition requires rebuilding configurations. Jails that ran custom FreeBSD software need to be adapted to Linux containers.
System Stability Profile
FreeBSD has a reputation for extreme stability in server roles. Some TrueNAS CORE users chose it specifically for this characteristic. While TrueNAS SCALE is stable, early releases had more rough edges than CORE's mature FreeBSD base. By 2026, SCALE has stabilized significantly, but the sentiment persists among long-time CORE users.
The Philosophical Point
Some users chose TrueNAS CORE because it was FreeBSD. They valued the BSD license, the system coherence, the smaller and more focused codebase. Moving to Linux -- a massive, complex kernel with a different development culture -- feels like a loss of identity. This is subjective, but it is real for the people who feel it.
TrueNAS CORE Status in 2026
TrueNAS CORE is not dead, but it is on life support:
- Security patches continue to be issued
- Critical bug fixes are applied
- No new features are being developed
- The web interface receives no enhancements
- Plugin/jail support continues but the plugin catalog is not expanding
- iXsystems documentation and marketing focus entirely on SCALE
sh# Check TrueNAS CORE version freenas-version # Updates still work midclt call system.update
iXsystems has not announced an end-of-life date for CORE. The practical reality is that it will continue to receive security fixes as long as it is economically viable for iXsystems to maintain, then it will be quietly deprecated.
Should You Stay on CORE?
If your TrueNAS CORE installation is stable, meets your needs, and you do not need Docker or new features, there is no immediate reason to migrate. CORE will continue to work.
Reasons to migrate now:
- You want Docker container support
- You need GPU transcoding for media servers
- You want active feature development
- You are concerned about the long-term viability of a maintenance-mode product
- You are planning a hardware refresh and want to modernize
Reasons to stay on CORE:
- Your setup works and you do not want to risk migration issues
- You rely heavily on jails and do not want to rebuild in Docker
- You prefer FreeBSD's system characteristics
- You are running hardware that works perfectly with CORE's FreeBSD drivers
The Migration Process
CORE to SCALE Migration
iXsystems provides a migration tool that handles the transition:
- Back up your TrueNAS CORE configuration
- Export critical data (or ensure your ZFS pools are healthy)
- Install TrueNAS SCALE on the boot device
- Import existing ZFS pools
- Reconfigure shares, users, and services
What migrates automatically:
- ZFS pool imports (data is preserved)
- Basic network configuration
- User accounts and groups
- SMB/NFS share configurations (mostly)
What requires manual work:
- Jails need to be recreated as Docker containers
- Plugins need to be reinstalled from the SCALE app catalog
- Custom scripts may need adaptation (FreeBSD to Linux paths, commands)
- bhyve VMs need to be recreated as KVM VMs
- Some ZFS tuning parameters differ between FreeBSD and Linux
Step-by-Step Pool Import
After installing SCALE, import your pools:
sh# From the SCALE web interface: Storage > Import Pool # Or from the CLI: midclt call pool.import_find midclt call pool.import_pool '{"guid": "your-pool-guid", "name": "tank"}'
ZFS data is portable between FreeBSD and Linux because OpenZFS uses the same on-disk format. Your pools, datasets, snapshots, and replication configurations survive the migration.
Data Integrity Verification
After migration, verify your data:
sh# Check pool health zpool status -v # Run a scrub zpool scrub tank # Verify snapshot integrity zfs list -t snapshot # Check share accessibility from a client smbclient //nas-ip/sharename -U username
Alternatives for FreeBSD NAS
If you want to stay on FreeBSD for your NAS, several options exist:
Roll Your Own
FreeBSD with ZFS and Samba makes a capable NAS without any management layer:
sh# Install FreeBSD 14.x # Create your ZFS pool zpool create -f tank mirror /dev/ada0 /dev/ada1 # Create datasets zfs create tank/data zfs create tank/media zfs create tank/backups # Set up Samba for Windows sharing pkg install samba419
Configure Samba at /usr/local/etc/smb4.conf:
sh[global] workgroup = WORKGROUP server string = FreeBSD NAS security = user [data] path = /tank/data valid users = @nas writable = yes [media] path = /tank/media valid users = @nas read only = yes
shsysrc samba_server_enable=YES service samba_server start
This approach gives you full control but requires manual management. No web GUI, no app catalog, no one-click plugins.
XigmaNAS
XigmaNAS (formerly NAS4Free) is a FreeBSD-based NAS distribution that continues active development. It provides:
- Web-based management interface
- ZFS management
- SMB/CIFS, NFS, AFP, iSCSI, and FTP services
- UPnP/DLNA media server
- BitTorrent client
XigmaNAS is less polished than TrueNAS but is actively maintained and stays on FreeBSD.
sh# XigmaNAS is installed from its own ISO image # Not installed on top of FreeBSD
NAStools and Automation
For a DIY approach with more automation, combine FreeBSD with configuration management:
sh# Use Ansible to manage your FreeBSD NAS pkg install py311-ansible # Create playbooks for: # - ZFS pool management # - Samba configuration # - Snapshot scheduling # - Health monitoring # - User management
ZFS Snapshot Management
One thing TrueNAS CORE excels at is snapshot management. If building your own, replicate this with zfs-auto-snapshot or custom scripts:
sh#!/bin/sh # /usr/local/bin/zfs-snapshot.sh # Run from cron: */15 * * * * /usr/local/bin/zfs-snapshot.sh DATASET="tank/data" KEEP=96 # Keep 96 snapshots (24 hours of 15-minute snapshots) # Create new snapshot zfs snapshot "${DATASET}@auto-$(date +%Y%m%d-%H%M)" # Remove old snapshots zfs list -t snapshot -o name -s creation -H "${DATASET}" | \ grep "@auto-" | \ head -n -${KEEP} | \ xargs -I {} zfs destroy {}
ZFS Replication
For backup to a remote FreeBSD NAS:
sh#!/bin/sh # Incremental replication to remote host LOCAL_DS="tank/data" REMOTE_HOST="backup-nas" REMOTE_DS="backup/data" # Find latest common snapshot LATEST=$(zfs list -t snapshot -o name -s creation -H "${LOCAL_DS}" | tail -1) PREV=$(ssh ${REMOTE_HOST} "zfs list -t snapshot -o name -s creation -H ${REMOTE_DS}" | tail -1) PREV_SHORT=$(echo "$PREV" | cut -d@ -f2) # Send incremental zfs send -i "${LOCAL_DS}@${PREV_SHORT}" "${LATEST}" | \ ssh ${REMOTE_HOST} "zfs recv -F ${REMOTE_DS}"
Impact on the FreeBSD Ecosystem
The TrueNAS migration has broader implications for FreeBSD:
Lost Mindshare
TrueNAS was the most visible consumer-facing FreeBSD product. Its migration to Linux removes a significant on-ramp for new FreeBSD users. People who discovered FreeBSD through TrueNAS now discover Linux instead.
Reduced Testing
iXsystems was one of the largest organizations testing FreeBSD on diverse hardware configurations. Their shift to Linux means less real-world testing of FreeBSD's storage stack on commodity hardware.
OpenZFS Contribution
iXsystems continues to contribute to OpenZFS, which benefits both FreeBSD and Linux. The company's ZFS expertise has not disappeared -- it is just applied to the Linux implementation as the primary target.
A Pattern
The TrueNAS move is part of a broader pattern. Projects and companies that used FreeBSD for its ZFS support are re-evaluating now that OpenZFS on Linux is mature. FreeBSD's other advantages (network stack, jails, license) need to carry more weight.
FAQ
Can I import a ZFS pool from TrueNAS CORE into TrueNAS SCALE?
Yes. ZFS pools are compatible between FreeBSD and Linux because OpenZFS uses the same on-disk format. Import works through the SCALE web interface or CLI. Data, snapshots, and dataset properties are preserved.
Will TrueNAS CORE receive security updates indefinitely?
iXsystems has not committed to a timeline. Security updates continue in 2026 but there is no guarantee beyond that. Plan a migration path rather than assuming indefinite support.
Is TrueNAS SCALE as stable as CORE was?
In 2026, SCALE has reached a level of stability that most users find acceptable. Early releases (2022-2023) had more bugs than CORE, but two years of fixes have resolved most issues. If you held off on SCALE due to early stability concerns, re-evaluate.
My jails do everything I need. Do I have to switch?
No. If CORE meets your needs and you do not need Docker or new features, stay on CORE until you have a reason to move. When you do migrate, plan to rebuild your jail workloads as Docker containers.
What about bhyve VMs on CORE?
bhyve VMs on CORE need to be recreated as KVM VMs on SCALE. VM disk images can be converted (qcow2 format works on both platforms), but the VM configurations do not migrate automatically. Guest operating systems do not need reinstallation -- only the hypervisor configuration changes.
Is XigmaNAS a real alternative?
XigmaNAS is functional and actively maintained, but it has a smaller community and fewer features than TrueNAS CORE had at its peak. It is viable for users who prioritize FreeBSD and are comfortable with a less polished management interface.
Can I run Docker on FreeBSD instead of migrating to SCALE?
No. Docker requires Linux kernel features (namespaces, cgroups, overlayfs). FreeBSD has jails, which serve a similar purpose but are not compatible with Docker images. There are experimental projects to run Docker in a Linux VM on FreeBSD, but none are production-ready.
What happens to my TrueNAS CORE plugins?
Plugins on CORE are jail-based and will not transfer to SCALE. The SCALE app catalog uses Docker-based applications. Many popular plugins (Plex, Nextcloud, Syncthing) have equivalent SCALE apps, but the migration requires reinstallation and reconfiguration.