How to Install TrueNAS on a Raspberry Pi
78 comments
·August 28, 2025tombert
I haven't used TrueNAS since it was still called FreeNAS.
I liked FreeNAS for awhile, but after a certain point I kind of just learned how to properly use Samba and NFS and ZFS, and after that I kind of felt like it was just getting in the way.
Nowadays, my "NAS" is one of those little "mini gaming PCs" you an buy on Amazon for around ~$400, and I have three 8-bay USB hard drive enclosures, each filled with 16TB drives all with ZFS. I lose six drives to the RAID, so total storage is about ~288TB, but even though it's USB it's actually pretty fast; fast enough for what I need to for anyway, which is to watch videos off Jellyfin or host a Minecraft server.
I am not 100% sure who TrueNAS is really for, at least in the "install it yourself" sense; if you know enough about how to install something like TrueNAS, you probably don't really need it...
kimbernator
I was like this in the "I love to spend a lot of time mucking about with my server and want to squeeze everything out of it that I can" phase.
In the last few years I've transitioned to "My family just wants plex to work and I could give a shit about the details". I think I'm more of the target audience. When I had my non-truenas zfs set up I just didn't pay a lot of attention, and when something broke it was like re-learning the whole system over again.
organsnyder
My way of dealing with this is to ensure everything is provisioned and managed via gitops. I have a homelab repo with a combination of Ansible, Terraform (Tofu), and FluxCD. I don't have to remember how to do anything manually, except for provisioning a new bare metal machine (I have a readme file and a couple of scripts for that).
I accidentally gave myself the opportunity to test out my automations when I decided I wanted to rename my k8s nodes (FQDN rather than just hostname). When I did that, everything broke, and I decided it would be easier to simply re-provision than to troubleshoot. I was up and running with completely rebuilt nodes in around an hour.
kllrnohj
I can setup Samba, NFS, and ZFS manually myself, but why would I want to? Configuring samba users & shares via SSH sucks. It's tedious. It's error prone. It's boring.
Similarly while docker's CLI interface is relatively nice, it's even nicer to just take my phone, open a browser, and push "update" or "restart" in a little gui to quickly get things back up & going. Or to add new services. Or whatever else I want. Sure I could SSH in from my phone, but that's awful. I could go get a laptop whenever I need to do something, but if Jellyfin or Plex or whatever is cranky and I'm already sitting on the couch, I don't want to have to get up and go find a laptop. I want to just hit "restart service" without moving.
And that's the point of things like TrueNAS or Unraid or whatever. It makes things nicer to use from more interfaces in more places.
geerlingguy
Yeah; once you get deep enough, you realize you can just install things yourself, configure them with Ansible, or Nix, or whatever, and have full control.
But for probably 90% of users, they just want a UI they can click through and mostly use the defaults, then log into now and then to make sure things are good.
The UI is also especially helpful for focusing on things that matter, like setting up scrubs, notifications, etc. (though even there I think TrueNAS could do better).
It's why Synology persists, despite growing more and more hostile to their NAS owners.
crispyambulance
> But for probably 90% of users, they just want a UI they can click through...
90% of HN users. More like 99.99% in the real world!tombert
That's fair enough; I certainly understand why you might do this if you're just buying something pre-made and letting it sit in a network closet or something; having something that is just pre-made that you can use has advantages.
I guess the thing is that I've never done that with [Free|True]NAS :). I've always used some kind of hardware (either retired rack mount servers or thin clients) and installed FreeNAS on there, and then it never really felt like it saved me a lot of time or effort compared to just doing it all manually.
Of course, I'm being a typical "Hacker News Poster" here; I will (partly) acknowledge that I am the weird one, but at the same time, as I said, if you're in the market to install TrueNAS on your own hardware, you are also probably someone who could relatively easily Google your way through doing it manually in roughly the same amount of time, at least with NixOS.
asteroidburger
I want to configure it myself because now I know exactly how it works. The configuration options I’ve chosen won’t change unless I change them. Disaster recovery will be easy because when I move the disks to a new machine, LVM will just start working.
tombert
> I can setup Samba, NFS, and ZFS manually myself, but why would I want to? Configuring samba users & shares via SSH sucks. It's tedious. It's error prone. It's boring.
I agree for the most part, though even vanilla Ubuntu has Cockpit if you need a GUI.
Personally I find that getting it set up with NixOS is pretty straightforward and it's "set and forget", and generally it's not too hard to find configurations you can just copypaste done "correctly". And of course, if you break something you can just reboot and choose a previous generation. Of course restarting still requires SSHing in and `systemctl restart myapp`, so YMMV.
aayushdutt
What do you mean by USB hard drive enclosures? Are you limiting the RAID (8 bay) throughput by a single USB line?! That's like towing a ferrari with a bicycle.
tombert
Nope!
I have one enclosure plugged into a USB 3.0 line, another plugged into a "super speed" line, and one plugged into a Thunderbolt line (shared with my 10GbE Thunderbolt card with a 2x20 gigabit splitter).
This was deliberate, each is actually on a separate USB controller. Assuming I'm bottlenecked by the slowest, I'm limited to 5 gigabits per RAID, but for spinners that's really not that bad.
ETA: It's just a soft RAID with ZFS, I set up each 8-bay enclosure with its own RAIDZ2, and then glued all three together into one big pool mounted at `/tank`. I had to do a bit of systemd chicanery with NixOS to make sure it mounted after the USB stuff started, but that was like ten lines of config I do exactly once, so it wasn't a big deal.
YurgenJurgensen
288TB spread over 24 drives on soft RAIDZ2 over USB?! You did check the projected rebuild time in the event of a disc failure, right?
riobard
Have you researched the USB-SATA bridge chips in the enclosures? Reliability of those chips/drivers on Linux used to be very questionable a few years ago when I looked around. Not sure if the situation has improved recently given the popularity of NAS devices.
mtlynch
>so total storage is about ~288TB
?!?
How do you fill 288 TB? Is it mostly media?
>I liked FreeNAS for awhile, but after a certain point I kind of just learned how to properly use Samba and NFS and ZFS, and after that I kind of felt like it was just getting in the way.
I've been a mostly happy TrueNAS user for about four years, but I'm starting to feel this way.
I recently wrote about expanding my 4-disk raidz1 pool to a 6-disk raidz2 pool.[1] I did everything using ZFS command-line tools because what I wanted wasn't possible through the TrueNAS UI.
A developer from iXsystems (the company that maintains TrueNAS) read my post and told me that creating a ZFS pool from the zfs command-line utility is not supported, and so I may hit bugs when I use the pool in TrueNAS.
I was really surprised that TrueNAS can't just accept whatever the state of the ZFS pool is. It feels like an overreach that TrueNAS expects to manage all ZFS interactions.
I'm converting more of my infrastructure to NixOS, and I know a lot of people just manage their NAS with NixOS, which is sounding more and more appealing to me.
[1] https://mtlynch.io/raidz1-to-raidz2/
[2] https://www.reddit.com/r/truenas/comments/1m7b5e0/migrating_...
tombert
> How do you fill 288 TB? Is it mostly media?
I kind of purposefully don't fill it up :).
This has been a project of tech hoarding over the last ~8 years, but basically I wanted "infinite storage". I wanted to be able to do pretty much any project and know that no matter how crazy I am, I'll have enough space for it. Thus far, even with all my media and AI models and stock data and whatnot, I'm sitting around ~45TB.
On the off chance that I do start running low on space, there's plenty of stuff I can delete if I need to, but of course I probably won't need to for the foreseeable future.
> I'm converting more of my infrastructure to NixOS, and I know a lot of people just manage their NAS with NixOS, which is sounding more and more appealing to me.
Yeah, that's what I do, I have my NixOS run a Samba on my RAID, and it works fine. It was like fifteen lines of config, version controlled, and I haven't thought about it in months.
tracker1
I'm in a similar position on my storage... though mostly that I bought a new nas with the intent of storing for Chia, but after 3 days, I decided it was a total waste as I'd never catch up to the bigger miners... So I repurposed it for long term and retired my older nas.
older nas was 4x 4tb drives when I retired it and passed it to a friend.
Current nas is a 6-bay synology with ram and nvme upgraded, along with a 5-bay expansion. All with 12tb drives in a 6drive 2-parity and 5-drive 2-parity arrays. I'm just under 40tb used mostly media.
some-guy
I have a similar setup (a dell wyse 5070 connected to an 8 bay enclosure) though I do not use RAID, I simply have some simple rsync script between a few of a drives. I collect old 1-2TB hard drives as cold storage and leave them on a bookshelf. The rsync scripts only run once a week for the non-criticial stuff.
Not to jinx it, but I have never had a hard drive failure since around 2008!
okasaki
I think that's a good idea. It's a more manual setup but also more space efficient (if you skip backing up eg linux isos) and causes less wear than RAID.
dfee
i have 4x 4TB drives that are in my dead QNAP NAS.
i've wanted to get a NAS running again, but while the QNAP form factor is great, the QNAP OS was overkill – difficult to manage (too many knobs and whistles) – and ultimately not reliable.
so, i'm at a junction: 1) no NAS (current state), 2) custom NAS (form factor dominates this discussion – i don't want a gaming tower), or 3) back to an off-the-shelf brand (poor experience previously).
maybe the ideal would be a Mac Mini that i could plug 4 HDDs into, but that setup would be cost-inefficient. so, it's probably a custom build w/ NixOS or an off-the-shelf, but i'm lacking the motivation to get back into the game.
drchaim
I was in the same boat - QNAP OS was a complete mess. Ended up nuking it and throwing Ubuntu on there instead. Nothing fancy, just basic config, but it actually works now. Other option is pay Unraid.
9x39
What are your requirements for a NAS? What do you want to use it for? Is it just to experiment with what a NAS is, or do you have a specific need like multiple computers needing common, fast storage?
sneak
The fact that Asahi doesn’t run on M4 cpus (ie the current Mac Mini) is also a consideration.
ZFS on macOS sucks really bad, too, so that rules out the obvious alternative.
Trustable8
The difference between what you've built and TrueNAS may well only become evident if your ZFS becomes corrupted in the future. That isn't to say YOU won't be able to fix it in the future, but I wouldn't assume that the average TrueNAS user could.
yjftsjthsd-h
You... swap the drive, run a ZFS replace command, and that's it. I know I'm coming at this from a particular perspective, but what am I missing?
icelancer
Yeah, same. Almost all of the NAS packages sacrifice something - they're great places to start, but just getting Samba going with Ubuntu is easy enough.
MezzoDelCammin
Shouldn't it be more of a "why" to install TrueNAS on a RPi?
The only reason I can see is "I have one that I don't use". Because otherwise...
Idle power isn't all that much better than a low power Intel N100 or something similar. And it's all downhill from there. Network transfer speeds and disk transfers will all be kneecapped by the (lack of) available PCIe lanes. Available RAM or CPU speeds are even worse...
geerlingguy
That's addressed in the second section of the article:
> I've found numerous times, running modern applications on slower hardware is an excellent way to expose little configuration flaws and misconceptions that lead to learning how to run the applications much better on more capable machines.
It's less about the why, and more about the 'why not?' :)
I explicitly don't recommend running TrueNAS on a Pi currently, at the end (though I don't see a problem with anyone doing it for the fun, or if they need an absolutely tiny build and want to try Arm):
> Because of the current UEFI limitations, I would still recommend running TrueNAS on higher-end Arm hardware (like Ampere servers).
hhh
I use a pi5 w/ an m.2 ssd for piracy and it just crashes all the time. Randomly locks up, haven’t been able to fix it.
breadwinner
I have been using a Raspberry Pi 4 (8 GB RAM) as my NAS for nearly 5 years. It is incredibly reliable. I run the following software on it: Ubuntu 64-bit, Samba, Jenkins, Postgres and MariaDB. I have attached external hard drives through a USB hub (because Pi does not necessarily have enough power for the external hard drive). I git push to public Samba folders on the Pi, and trigger Jenkins, which builds and installs my server using docker in the Pi.
JdeBP
On the one hand it is good to discover that someone is tackling getting TianoCore working on the Raspberry Pi 5.
On the other hand, they still have the destructive backspace behaviour, and inefficient recursive implementation, that breaks the boot loader spinners that the NetBSD and other boot loaders display. It's a tiny thing, but if one is used to the boot sequence the absence of a spinner makes the experience ever so slightly jarring.
* https://github.com/NumberOneGit/edk2/blob/master/MdeModulePk...
* https://github.com/tianocore/edk2/blob/master/MdeModulePkg/U...
JdeBP
I should add, by the way, that this nicely demonstrates M. Geerling's point here about catching bugs by running things on a Pi.
The TianoCore's unnecessarily recursive implementation of a destructive BS is slow enough, on a Pi 4, and in combination with how the boot loaders themselves emitted their spinners, that I could just, very occasionally, see parts of spinner characters flashing very briefly on the screen when the frame refresh timing was just right; which led me to look into what was going on.
NoboruWataya
I did something like this a while ago, using https://wiki.radxa.com/Dual_Quad_SATA_HAT (though I installed OpenMediaVault rather than TrueNAS).
It was a fun project and looked cool but never really worked that well. It was quite unstable and drives seemed to disconnect and reconnect a lot. There are probably better quality connectors out there but I think for a NAS you really want proper SATA connections.
I eventually built my own box and went with OMV again. I like it because it's just userland software you install on Debian. Some of the commenters here who think TrueNAS is overkill might want to check out OMV if they haven't already.
To be honest I still only have a few TB of storage on it, probably not really enough to be worth all the hassle of building and configuring a PC, but it was more about the journey which was fun.
dwedge
I feel like that article took longer than it should have done to say that your storage probably won't work
Havoc
Wouldn't straight ZFS with a vanilla OS make more sense for low power devices? TrueNAS, esp the kubernetes flavour seems to have a decent bit of overhead last I looked at it
ddtaylor
I think at that point you get close to the "dropbox problem".
The audience/needs for TruNAS are probably looking to not have to do much beyond either turning it on or plugging in an update stick.
rcarmo
This is fun for learning purposes, but even with the PCIe 3 bus the Pi just isn't that great a server when compared to an Intel N-series machine.
I have two "normal" NAS devices, but I would like to find a compact N100 board with multiple SATA ports, (like some of the stackable HATs for the Pi, some of which will take 4 disks directly on the PCB) to put some older discarded drives to good use.
My go-to solution software-wise is actually to install Proxmox, set up ZFS on it and then drop in a lightweight LXC that exposes the local filesystem via SMB, because I like to tweak the "recycle bin" option and some Mac-specific flags--I've been using that setup for a while, also off Proxmox: https://taoofmac.com/space/notes/2024/11/09/1940#setting-up-...
shellac
The article states "I currently run an Ampere Arm server in my rack with Linux and ZFS as my primary storage server" and this is just explaining how to try it out on the Pi, which I found surprisingly interesting. I am glad people like the N100s and wish they would find more relevant articles to talk about them.
rcarmo
Well, I am curious about compact SATA options, and have a peer response to yours that is eminently useful, so… I’d say it’s still on topic.
j1elo
The warning about death of three SSDs doesn't inspire too much confidence to be honest... do you think it was due to the usage patterns of Proxmox default settings for ZFS?
Over time and lots of reading random information sources, I got notes about disabling several settings that are cool for datacenter-levels of storage, but useless for the kinds of "Raspberry-pi tied with a couple USB disks" that I was interested in.
ThrowawayR2
The Odroid H4+ might be what you're looking for. It's a N97 SBC from a South Korean manufacturer that's been around a while. The "+" variant has 4 SATA ports. With an adapter board, 2-4 NVMe drives can be attached as well.
nahuel0x
Also the Odroid-H4+ supports IBECC, that means, ECC parity check done by the CPU using normal non-ECC RAM modules. Very suitable for ZFS/TrueNAS.
rcarmo
Thanks! I’ve used ODROID devices in the past, but wasn’t aware of that variant.
sneak
There are tons of mini-itx N100 boards with onboard 2.5G or 10G ethernet and 6-8 sata ports for a few hundred bucks available (on Amazon for example). search “n100 mini itx nas”.
There are also some decent 6 and 8 bay mini-itx cases.
I went looking for completed systems recently and couldn’t find any integrators that make them. Surprised nobody will take a few hundred bucks to plug in all the motherboard power/reset pin headers for me.
rcarmo
Yeah, that’s why I was asking. Most of the mini-PC market is either doing “the cheapest possible desktop” or “the cheapest possible gaming box”.
InTheArena
A great exercise, and one that stretches the platform in a way that will inevitably help. That's incredible value and a great public service by jeff.
Probably not a great idea given how ZFS is architected for memory utilization and ECC. :-)
marcosscriven
I’d really like the TrueNAS UI only, separated completed from an OS or its virtualisation setup.
geerlingguy
Probably the closest thing that already exists is just running Cockpit[1]. 45Drives even maintains some helpful storage and file sharing plugins for it[2], though some of those are only compatible with x86 for now.
rcarmo
Cockpit hasn't really improved in a while, though, and although I greatly appreciate 45Drives' committment to it, last time I tried to install their stuff I had a lot of issues with deprecated dependencies...
So I just went "raw" smbd and never looked back, but then again I've been running Samba for almost two decades now and configuring it is almost second nature to me (I started doing it as an alternative to Novell/IPX, and later to replace AppleTalk...)
In practice, I've found that worked well because I very seldom had to do any changes to a file server once it was set up (adding shares was mostly a matter of cloning configs, and what minimal user setup there needed to be done in the enterprise was deferred to SAMBA/CIFS glue).
geerlingguy
Quite true; raw configuration isn't as flashy so you can't make glitzy videos or blog posts about it (well, outside of the HNsphere at least).
But that's how 99% of the services I run are set up, just a bunch of configuration files managed by Ansible.
The only servers I run in production with a UI are two NASes at home, and the only reason for that is I want to run off the shelf units so I never have to think about them, since my wife and kids rely on them for Jellyfin and file storage.
01HNNWZ0MV43FF
I wonder why TrueNAS wants to run as an OS. Surely most of the work of being a NAS happens in userspace?
xienze
I would imagine it's because it makes for a lot more fun support possibilities when all the underlying stuff in the stack (kernel, ZFS, Docker, Python, etc. etc.) is subject to the whims of the end user. When you ship the entire OS yourself you can be more certain about the versions of all the kernel+userland stuff and therefore the interactions between them all.
I have actually made a Raspberry Pi based NAS and found it was a pain.
The SATA controller isn't terrible, but it and other hardware areas have had many strange behaviors over the years to the point of compiling the kernel being needed to fiddle with some settings to get a hardware device to do what it's supposed to.
Even if you're using power that is well supported eventually you seem to hit internal limits and get problems. That's when you see people underclocking the chip to move some of this phantom power budget to other chips. Likewise you have to power most everything from a separate source which pushes me even closer to a "regular PC" anyhow.
I just grab an old PC from Facebook for under $100. The current one is a leftover from the DDR3 + Nvidia 1060 gaming era. It's a quad core with HT so I get 8 threads. Granted most of those threads cause the system to go into 90% usage even when running jobs with only 2 threads, probably because the real hardware being used there is something like AVX and it can't be shared between all of the cores at the same time.
The SATA controller has been a bit flaky, but you can pick up 4-port SATA cards for about $10 each.
When my Raspberry Pi fails I need to start looking at configurations and hacks to get the firmware/software stack to work.
When my $100 random PC fails I look at the logs to find out what hardware component failed and replace it.