I have been able to install TrueNAS Scale arm64 on raspberry Pi4 B successfully. Tried different combinations from SD Card to external HDD and eventually ended with following setup.
Hardware used:
Raspberry Pi4 Model B - 8GB
RPI4 official Power Supply
8GB Class 4 SD Card (Just for RPI4 bootloader, you can use smallest size available)
QZ Active Powered USB 3.1 Hub, 4 Port USB Hub with 12V 2A 24W Power Adapter, USB 3.1 Gen 1
2.5G Network Switch
Samsung SSD 256GB 840 Pro (Acting as boot drive and App Pool)
4TB Samnsung Nvme SSD 990 Pro (Acting as Data Drive)
2.5G USB NIC (RTL 8156B)
High Level steps
1- Create a FAT16/32 SD Card with RPI4 bootloader. I used RPI4 bootloader from pftf on GitHub. (Unable to add weblink while posting)
2- Create a USB Ventoy Disk with MBR partition and copy TrueNAS Scale iso into the folder
3- Attach SSD to RPI4 USB 3 port and also connect Ventoy USB stick
4- Boot to RPI4 BIOS and disable 3GB RAM limit
5- Save BIOS settings and boot from Ventoy USB stick and select TrueNAS Scale iso
6- On Install screen, select SHELL and hit Enter
7- While in the shell, run the following commands. I used 50GB as boot pool size. You can change based on your need.
sed -i ‘s/-n3:0:0/-n3:0:+50GB/g’ /usr/lib/python3/dist-packages/truenas_installer/install.py
8- Type exit to return to install screen
9- Continue with normal installation
10- After installation finishes, it will ask to restart the system. If I hit YES, it does not restart automatically. So, I pull the power plug.
11- Remove Ventoy USB stick before you start the 1st boot. (1st boot make take 6-7 minutes. Subsequent boot takes 3-4 minutes)
12- Once logged into WebUI, open shell and use following command to create AppPool from the free space available on the boot-pool SSD
gdisk /dev/sXX
n <for new part>
<default start – after last part>
<default size – till the end>
BF01 <to mark disk as ZFS>
w <write>
------------------------------------
zpool create AppPool /dev/sxxN
zpool export AppPool
13 - Once above commands complete, ensure you immediately reboot the Pi.
After creating DataPool, I added few datasets and created SMB shares to check throughout
With a Gigabit NIC, I was getting around 80-85 MB/s
With 2.5G USB NIC, it was around 130-140 MB/s
Issues:
Docker and VM didn’t work.
Docker was failing due to permission issues, which after troubleshooting I found was because of architecture. Truechart pulls x86 image only and not arm64.
Temporary solution:
I had to create a custom container using docker compose file for DOCKGE, which worked.
Then I installed 3-4 additional docker containers from within Dockge and it worked nicely.
Running it from past 24 hours. No issues yet.
Suggestion:
Don’t use spinning disk, msata ssd. If feasible prefer good quality SSD as it will give better throughput and less chance of failure.