Download iso

from https://www.truenas.com/

Versions available on Article creation date were

TrueNAS Scale 24.10 https://download.sys.truenas.net/TrueNAS-SCALE-ElectricEel/24.10.2.1/TrueNAS-SCALE-24.10.2.1.iso

TrueNAS Scale 25.04 RC1 https://download.sys.truenas.net/TrueNAS-SCALE-Fangtooth-RC/25.04-RC.1/TrueNAS-SCALE-25.04-RC.1.iso


TrueNAS Scale 24.10 does not support Intel N150 Intel Graphics, and I suspect it has reduced the Disk or Network performance on this device. So it needs to be upgraded to at least to TrueNAS Scale 25.04-RC.1


Burn .iso to USB Flash drive

Burn to Flash using Balena Etcher https://etcher.balena.io/#download-etcher (Rufus might not work)


Boot From Flash

Installer main menu

Choose eMMC so all NVMe can join the pool of disks

Some Warning on all data lost on eMMC if we proceed

Choose to configure on the Web, just to save time. Since it might not be a successful attempt, why spend time now?

That is the step when things are going to go well or not well 

Something wrong, looks like. Both TrueNas 24.10 and 25.04 RC1 may fail to format eMMC

If All is good, it  looks like that

And that is it:

Remove the flash and reboot the NAS

After some standard Linux boot messages, we will get to

It's about 5 minutes, including reboots.

All other Settings are to be done via the web interface.

Install Troubleshooting

Failed to find partition number 2 on mmcblk0

See source code in https://github.com/truenas/truenas-installer/blob/master/truenas_installer/install.py

64GB looks like the absolute minimum eMMC to TrueNAS Scale partition sizes

That is the place where we got in the "Bad hardware" category, so a workaround might be to create a partition in advance from the Shell

truenas_installer/install.py
async def format_disk(disk: Disk, set_pmbr: bool, callback: Callable):
    await wipe_disk(disk, callback)

    # Create BIOS boot partition
    await run(["sgdisk", "-a4096", "-n1:0:+1024K", "-t1:EF02", "-A1:set:2", disk.device])

    # Create EFI partition (Even if not used, allows user to switch to UEFI later)
    await run(["sgdisk", "-n2:0:+524288K", "-t2:EF00", disk.device])

    # Create data partition
    await run(["sgdisk", "-n3:0:0", "-t3:BF01", disk.device])

    # Bad hardware is bad, but we've seen a few users
    # state that by the time we run `parted` command
    # down below OR the caller of this function tries
    # to do something with the partition(s), they won't
    # be present. This is almost _exclusively_ related
    # to bad hardware, but we will wait up to 30 seconds
    # for the partitions to show up in sysfs.
    disk_parts = await get_partitions(disk.device, [1, 2, 3], tries=30)
    for partnum, part_device in disk_parts.items():
        if part_device is None:
            raise InstallError(f"Failed to find partition number {partnum} on {disk.name}")

    if set_pmbr:
        await run(["parted", "-s", disk.device, "disk_set", "pmbr_boot", "on"], check=False)

Workaround #1

Just re-try install 2-10 times until it work. Yes. as simple as that.


Workaund #2

So next workaround might be to create a partition in advance from the Shell

# Choose (3) Shell option in menu

# remove partition tables
sgdisk -Z /dev/mmcblk0
# from NVMe also (but it might not be neccessary)
sgdisk -Z /dev/nvme0n1
sgdisk -Z /dev/nvme1n1
sgdisk -Z /dev/nvme2n1
sgdisk -Z /dev/nvme3n1
# create partition table on eMMC as Install script do it
sgdisk -a 4096 -n 1:0:+1024K   -t 1:EF02 -A 1:set:2 /dev/mmcblk0
sgdisk         -n 2:0:+524288K -t 2:EF00            /dev/mmcblk0
sgdisk         -n 3:0:0        -t 3:BF01            /dev/mmcblk0 

# it might be an overkill with partprobes, but anyway
sync;
partporbe
partprobe /dev/mmcblk0
partprobe /dev/nvme0n1
partprobe /dev/nvme1n1
partprobe /dev/nvme2n1
partprobe /dev/nvme3n1

exit # End continue Install.


Try using commands like below in the shell

Workaround #3 less chance, but you can play with it too

dd if=/dev/zero of=/dev/mmcblk0 bs=4k count=16k
dd if=/dev/zero of=/dev/nvme0n1 bs=4k count=16k
dd if=/dev/zero of=/dev/nvme1n1 bs=4k count=16k
dd if=/dev/zero of=/dev/nvme2n1 bs=4k count=16k
dd if=/dev/zero of=/dev/nvme3n1 bs=4k count=16k

parted -s /dev/mmcblk0 mktable gpt
parted -s /dev/nvme0n1 mktable gpt mkpart primary ext4 2048 4T
parted -s /dev/nvme1n1 mktable gpt mkpart primary ext4 2048 4T
parted -s /dev/nvme2n1 mktable gpt mkpart primary ext4 2048 4T
parted -s /dev/nvme3n1 mktable gpt mkpart primary ext4 2048 4T

reboot
# Install after reboot

After reboot, try installing again

Configuring TrueNAS

Change Widgets on Dashboard

Press configure, and save after editing is done. 


The example screen is changing network card of IP and traffic info on the dashboard

Storage Configuration

Create Pool

We do the simple storage configuration when all disk is just a RAID0 like configuration, to sum all capacities without any redundancy, that is not secure way to store critical information so you might want to it in another way

First choose the name of pool. We plan to do all as simply as possible so the pool name will be "pool". Press Next after wich Part of config.

And that is the decision you have to think about. What kind of redundancy you want and how much space to sacrifice for that. Like 

ModeSize
Stripe16TB
RAIDZ112TB
dRAID112TB
Mirror4/8TB

So let's choose no redundancy. Like we trust in Samsung and TrueNAS a lot, 

We got not much disks so ZFS Log, Spare, Cache,, Metadata, will not be configured

So that what we got as summary from the wizard

Content Will be erased - Confirm

So now you have a pool. Unused disk is a special eMMC partitions. So just ignore them.


Create Dataset(s)

Go to the dataset tab. Notice that we have LZ4 compression enabled by default - disabling it might improve some disk access speed.

Add dataset

We still keeping it simple. dataset name is data. preset Generic. Not messing wit Advanced options yet.

Create SMB Share

Assuming NAS is used in Windows PC network and we want to share files on it

Windows SMB Share Add

still not messing with Advanced options. We got all in one pool. We share it.

No we do not, yet.

Starting Windows Network share service? - Yes. Because that is the idea.

and now it is Running

Data Protection

Good tab that we just skip for now, some day we setup at least regular S.M.A.R.T. tests

Network

What can I say. It is ok for now. maybe some routings later

Credentials

Users

Yes, that is something we want to add to be able to log in by SSH and see the Windows share files.

Lets add SSH access and key, home directory - why not? and shell. do not miss that. change nologin to bash

Maybe this user will be used to admin this NAS so we can add group for that - builtin_administrators

Same to be done with all NAS users, if there any.

Try copying some files to network share

Instances

we skip for now

Apps

it where all the fun begins

Discover App

App settings, Choose application pool

Use search to find the app you need

we search for Immich - and we found it (v1.131.3) - latest for the moment), it also shows some Alternatives. 

Available Resources in the corner should help you to decide if you need yet another app. Now we are ok.

CPU Usage: 1% Avg. Usage
Memory Usage: 4.65 GiB / 11.42 GiB
Available Space: 14.37 TiB


If any problem - it is not ours.. ok..

And now here is like a lot of place you might need to fill right but for test you might use random passwords and proper timezon

you can map the container folders to some path on shared disk if needed

If your Photos are already organized - path to this library (like nextcloud library or manual managed folders), we also need to add it in this setting as Additional Storage.

The final is to set resources and Allow GPU access

Now Install - Something goes wrong..

from ssh we con see more

or using System/Shell

oliutyi@truenas:~$ sudo awk '{gsub(/\\n/,"\n")}1' /var/log/app_lifecycle.log

fixed by

chmown 999:999 /mnt/pool/data/immich/db

so now



Reporting

System

Services

Enable SSH

Shell


  • No labels