Hardware

I built the weirdest possible NAS from hardware I already owned, and it works surprisingly well

At a glance:

  • Raspberry Pi 5 can run TrueNAS with the rpi5-uefi package, enabling ZFS storage despite ARM limitations
  • This DIY NAS setup achieves 210MB/s transfer speeds via SMB shares but requires workarounds for Ethernet and drive limitations
  • Not suitable as primary storage but works well as a budget-friendly backup solution with rsync capabilities

The Challenge of Running TrueNAS on ARM

Building a Network-Attached Storage server from old hardware is the best way to repurpose systems that would otherwise gather dust into reliable backup solutions. While you could go for weaker systems released over a decade ago, most DIY NAS setups typically involve x86 machines capable of supporting at least a handful of storage drives. Contrast that with Raspberry Pi units, which are not only limited on the OS front, but are also incapable of powering 2–3 drives (unless you invest in expensive HATs and adapters), and you can see why these ARM-based single-board computers aren't ideal for NAS tasks. That said, I came across a community project that brought the all-powerful TrueNAS to ARM systems a few months ago, and after using it on my Raspberry Pi 5 for a while, I have to admit it's more usable than it appears.

Overcoming Hardware Limitations

Installing TrueNAS on the Raspberry Pi involved some workarounds. Blame that on the RPi's lack of UEFI support. Although the TrueNAS on ARM project solves the CPU incompatibility issue with the ARM-based Raspberry Pi, the SBC also doesn't have a BIOS like typical x86 mini-PCs. So, unless a distro has been fine-tuned for the device, running any ol' Linux distribution (or even Windows, for that matter) requires a custom UEFI package – and that's where the now-archived rpi5-uefi repo by worproject comes into the equation. Fortunately, rpi5-uefi is fairly easy to run on the Raspberry Pi, as all I had to do was format a microSD card to FAT32 and paste the extracted files in its root directory. But since the microSD card is meant to serve as the UEFI partition, I had to use a USB-powered device for the TrueNAS installation drive. Ideally, you'd want to use an SSD for the boot drive, but since this was a wacky project to begin with, I went with a cheap flash drive instead.

Network and Drive Constraints

But the biggest caveat of the rpi5-uefi package is that it renders the EEPROM module, GPIO pins, PWM control settings, and Ethernet port unusable on any distro I attempt to boot with this setup. Considering the N in a NAS stands for Network, the last one is a deal-breaker for a makeshift storage server. That said, using a USB-to-Ethernet adapter solves this problem, leaving just two slots for the hard drives. And in all fairness, a Raspberry Pi tends to run into issues when powering multiple drives (especially HDDs) without additional accessories, anyway.

Surprising Performance

Considering my previous experience with running Proxmox and Windows 11 bare-metal on the Raspberry Pi, I wasn't very confident about TrueNAS' performance on the SBC. However, the community port works surprisingly well for simple NAS operations. Sure, the TrueNAS dashboard may have trouble identifying the processor, but it's possible to spin up ZFS pools on this makeshift setup. Since I wanted to gauge the TrueNAS-berry Pi's capabilities, I went with a 2.5G Ethernet adapter and plugged an SSD into the tiny board. Once I'd created a new storage pool, I began tinkering with the network share settings and user profiles. Creating a new account for accessing the shares was easy, and the same applies to the SMB share creation process. Within a minute, I was able to log in to the SMB share on my PC, and my spare drive was able to transfer files at a steady 210MB/s. That's really impressive for a project that involves running an incompatible distro – one that relies on the all-powerful ZFS under-the-hood – on something as weak as a Raspberry Pi.

Limitations and Workarounds

However, the TrueNAS app templates don't work on the ARM-based SBC, but it wasn't too much of an issue, since I can simply deploy custom LXC containers anyway. Rsync tasks work surprisingly well, and the same applies to scrub tasks. Honestly, that's all I could ask for in a barebones NAS. Despite their cute appearance, Raspberry Pi SBCs double as reliable server nodes. The DIY Raspberry Pi NAS has its utility in a budget-friendly home lab.

Practical Applications

Let me be clear: I can't recommend using a Raspberry Pi as a dedicated NAS. Even leaving the Ethernet and UEFI workarounds aside, an x86 machine is always better for a primary storage, archival, and backup server, even more so once you factor the Raspberry Pi's vastly inflated prices into the feasibility equation. That said, if you've got a spare Raspberry Pi lying around, but don't have the money to build a dedicated 3-2-1 backup pipeline, this setup can act as an offsite server. Pair it with an OPNsense router armed with Tailscale (or even a subnet router running on another PC), and the TrueNAS-berry Pi rig is pretty useful at pulling rsync tasks from a local node. Or, you could just use it as a redundant backup/cold storage machine (though you might want to avoid using SSDs for long-term storage, as they can lose data if you leave them unplugged for a couple of months).

Raspberry Pi 5 Specifications

For those interested in the hardware used in this project, here are the Raspberry Pi 5 specifications:

  • CPU: Arm Cortex-A76 (quad-core, 2.4GHz)
  • Memory: Up to 8GB LPDDR4X SDRAM
  • Operating System: Raspberry Pi OS (official)
  • Ports: 2× USB 3.0, 2× USB 2.0, Ethernet, 2x micro HDMI, 2× 4-lane MIPI transceivers, PCIe Gen 2.0 interface, USB-C, 40-pin GPIO header
  • GPU: VideoCore VII
  • Starting Price: $60
Editorial SiliconFeed is an automated feed: facts are checked against sources; copy is normalized and lightly edited for readers.

FAQ

Can a Raspberry Pi 5 really handle TrueNAS effectively?
Yes, with the rpi5-uefi package, the Raspberry Pi 5 can run TrueNAS surprisingly well. While it's not as powerful as dedicated x86 NAS hardware, it can handle ZFS pools, SMB shares, and rsync tasks. The author achieved transfer speeds of 210MB/s via SMB shares, which is impressive for such a compact system.
What are the main limitations of using a Raspberry Pi as a NAS?
The Raspberry Pi NAS setup has several limitations: it requires a USB-to-Ethernet adapter since the onboard Ethernet becomes unusable with the rpi5-uefi package; it's limited to just two drive slots; the TrueNAS app templates don't work on ARM; and it's not suitable as a primary storage solution due to performance constraints and cost considerations compared to x86 alternatives.
What practical applications does this DIY Raspberry Pi NAS serve?
While not recommended as a primary NAS, this setup works well as a budget-friendly backup solution. It can serve as an offsite server when paired with an OPNsense router and Tailscale, useful for pulling rsync tasks from a local node. It also functions well as a redundant backup or cold storage machine, though SSDs should be avoided for long-term storage as they can lose data when unplugged for extended periods.

More in the feed

Prepared by the editorial stack from public data and external sources.

Original article