Now that Joel0 in the TrueNAS community has created a fork of TrueNAS that runs on Arm, I thought I'd give it a spin—on a Raspberry Pi. I currently run an Ampere Arm server in my rack with Linux and ZFS as my primary storage server, and a Raspberry Pi with four SATA SSDs and ZFS as backup replica in my studio. My configuration for these Arm NASes is up on GitHub. I've been looking forward to TrueNAS support on Arm for years, though it seems the sentiment in that community was 'Arm servers aren't powerful enough to run serious storage servers'—despite myself and many others doing so for many years... but that's besides the point. On a Raspberry Pi? Yes, in fact. 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. From my Pi Dramble to my Petabyte Pi Project, running apps intended for much more powerful hardware taught me a lot. So maybe running TrueNAS, which demands 8 GB of RAM and 16 GB of primary storage, would be a fun learning exercise. I've done it on x86 servers, but that's boring. It's easy. I don't learn much when a project goes off without a hitch, and I'm not forced to look closer at some of the configuration quirks. On a Raspberry Pi, there's no UEFI One glaring problem with the Raspberry Pi is no official support for UEFI, a standard way to boot computers and interface operating systems to device firmware. Raspberry Pi only officially supports device-tree-based Linux booting, which is much less standard. That means you can't just throw any old Linux distribution on the Pi, you have to have ones tailored to the Pi. There are good OSes for the Pi, like Raspberry Pi OS, based on Debian. But it's not the same as grabbing Windows on Arm and installing it on my Ampere workstation. To get past this restriction, we have to rely on a community project, forked from Windows on Raspberry Pi. Specifically, I'm using NumberOneGit's rpi5-uefi fork. To get your Pi 5 to support UEFI (CM5 process may be slightly different): Update the EEPROM to the 2025-06-09 release (or later - check what version you're running in Pi OS with the command rpi-eeprom-update ): a. Typically, you can upgrade using Raspberry Pi Imager, sudo apt full-upgrade -y , or sudo rpi-eeprom-update -a . However, at the time of this writing, those methods will get you to the latest stable release (2025-05-08), so until then, use one of these methods: b. Manually update the bootloader with usbboot from source. c. Switch to the beta bootloader release channel: sudo nano /etc/default/rpi-eeprom-update , then change latest to beta , and run sudo rpi-eeprom-update -a . d. Verify the bootloader version you're running with rpi-eeprom-update after a reboot. Download the latest .zip file release from rpi5-uefi Releases. Take a microSD card that's already formatted for the Pi (I just pulled the Pi OS card out of my Pi 5 that I just used for the EEPROM update), and clear out the contents of the FAT32 'bootfs' volume. Copy all the contents of the .zip file you downloaded into that folder (including RPI_EFI.fd ). Eject the microSD card, insert it into the Pi, and power it on with an HDMI display connected. You should see a Raspberry Pi logo and the EDK2 bootloader screen appear. Unless you have NVMe or USB boot media installed, it will say "Press any key to enter the Boot Manager Menu." Since I couldn't find the 'any' key, I pressed 'Enter', then I could navigate through a standard boot manager menu. In there you can configure SD card speeds, set the PCIe bus speed, etc. After you've changed the settings to your liking (see some suggestions for Linux), save and reset. TrueNAS on a Pi 5 Now that the Pi is booting into UEFI mode, you can install TrueNAS. To do that: Download a TrueNAS on Arm ISO from https://truenas-releases.jmay.us (I chose 25.04.2). Use a tool like Etcher to write the ISO to a USB drive. After Etcher finishes, eject the USB drive and insert it into the Pi (I used a USB 3 thumb drive, so I inserted it into one of the blue USB 3 ports on the Pi for maximum speed). If it doesn't automatically boot to the TrueNAS installer, select the external USB drive in the UEFI boot manager and boot into the TrueNAS installer. Follow the TrueNAS installer's prompts to install TrueNAS on any device other than the installer drive or the microSD card (I used a second USB flash drive plugged into the other USB 3 port). Wait for installation to complete. When prompted, reboot and remove the USB drive. TrueNAS SCALE should boot up, and the first boot can take a while as many services need to generate files, configure services, and start them the first time. In my case, on first boot, the ix-etc service failed to start (it timed out), and its purpose is to Generate TrueNAS /etc files . After booting, I chose to enter the Linux console, then ran systemctl start ix-etc , and rebooted. After a reboot, TrueNAS seemed to launch all its services without issue, including the web UI. I visited the IP address printed on the console, logged in as the admin user I set up during install, and was greeted with the TrueNAS dashboard: Current Limitations Right now, most of the limitations are around missing features in UEFI mode; since Raspberry Pi hasn't pushed RP1 support into the Linux kernel, and nobody's yet reverse-engineered RP1 interfaces, you can't use: Fan header PWM support (no fan control) CSI/DSI connections for displays/cameras GPIO Built-in Ethernet The Ethernet limitation is especially annoying, as you are forced to use an external USB Ethernet dongle, just like on most non-Qualcomm systems running Windows on Arm. Andrea della Porta from SUSE is working on upstreaming RP1 support into Linux with some help from Raspberry Pi, but progress has been a bit slow. What I've been wondering lately, more and more: why doesn't Raspberry Pi consider official UEFI support in the first place? With or without Microsoft's official blessing, being able to boot vanilla Windows 11 for Arm on the Pi would be neat. Not to mention, any regular Linux Arm distro (including TrueNAS SCALE) would boot too... Next Steps I recently received a new hardware project, the Homelabs Pi Storage server, which uses a custom CM5 SATA backplane and a 3D printable enclosure for a 6-bay NAS: I got TrueNAS installed on a CM5 Lite (using the same process as above), but when I installed four SATA hard drives, they spun up, but were not recognized. Right now the Pi 5 UEFI support doesn't allow for more than one PCIe device, and the Homelabs Pi Storage server has a PCIe switch that branches off to 2.5 Gbps Ethernet and a 6-port SATA controller. These devices all work perfectly out of the box on Raspberry Pi OS (and I was able to set up a ZFS array, getting 250 MB/s over the built-in 2.5G Ethernet—see below), but they aren't recognized currently when running under UEFI :( I'm already running vanilla ZFS under Raspberry Pi OS on my other Raspberry Pi storage server, and that's running on four SSDs and no hard drives. It can sustain 200 MB/sec writes, and I presume TrueNAS would be able to do the same. There are also NVMe-only boards, like the $50 GeeekPi N16 Quad-NVMe HAT, which provide a pretty small footprint all-flash server option. But again, since those boards use switch chips (because the Pi is limited to 1 PCIe lane), none of those drives would be accessible to TrueNAS as it stands today. Your best bet if you want to use TrueNAS instead of just managing ZFS on you own on a Pi would be to use a single-purpose HAT or SATA controller or HBA in IT mode, to connect disks directly to the Pi. Because of the current UEFI limitations, I would still recommend running TrueNAS on higher-end Arm hardware (like Ampere servers). If you want to stick to an SBC, there's UEFI firmware for RK3588 platforms under active development. It may offer even more functionality for some boards, so check the compatibility list. Or you could be boring and just install TrueNAS on x86, where it's fully supported ;)