Installing TrueNas Scale: "Can not find sda3 Not a block device"

Hi folks!

This started out as a way to long post, but summed up, my questions are:

  1. How to best utilize my drives
  2. Core vs Scale
  3. Problems installing scale

The hardware I have so far is:

  • Case: Cooler Master CM590
  • Motherboard: Asus P6T Deluxe v2
  • CPU: Intel Core i7 LGA1366
  • RAM: 24GB HyperX Genesis DDR3 800MHz (6x 4GB)
  • PCIe x8 Nvidia Quadro F1500
  • PCIe x8 LSI SAS3 9300-16i HBA with SAS to Sata (IT-mode)
  • Slim DVDRW (from an old laptop) (Sata to MB)
  • 1x 256GB LiteOn Sata SSD (Sata to MB)
  • 2x 256GB SanDisk Sata SSDs (Sata to MB)
  • 4x 256GB Samsung P871a SSDs (Sata to LSI)
  • 4x Seagate 10TB Enterprise (ST10000NM0156) (Sata to LSI)

Given the drives that I have, my plan is to use:

  • OS of 2x SanDisk SSDs
  • zPool of
    — 4x 10TB drives i raidz1
    — 2x Samsung SSDs as cache
  • 1x LiteOn SSD as spare
  • 2x Samsung SSDs as spares or cache in a future addidional pool.
  1. Do you approve or would you suggest another setup?

I have been considering Core vs Scale, and as of now it kind of get down to these questions. I think I already know the answer, but still:
2. Does any of these features require Scale? (for all I know they might not be possible on either Core or Scale)
a) Backup/sync to another TrueNas physically located somewhere else, like at another family member.
b) Autosync from a mobile phone (outside of house) (my, wife’s, kid’s) to my/our TrueNas
c) Stream video/content from Nas to mobile phone (outside of house)

  1. Help with the “not a block device” message when installing Scale, is this due to the motherboard (Asus P6T Deluxe v2) being old and no support of UEFI? Is it resovable, or will I get less hassle, now and in the future, by just getting a newer motherboard (or just go core for now)?

Now, this is my first system, and I thought I’d try out stuff before I put it into use. So I installed TrueNas Core on one of the SSD’s, and chose legacy boot in the process, as the motherboard do not have UEFI. This worked fine, I also tested with a few 320GB drives I had laying around to make a pool. So far, so good.

So, my next thought was to test Scale. I got the impression that Scale might give more functionality, both now and in the future.

But installing Scale failed with the “Cant find sda3 Not a block device” message, and the next time I tried to install the drive was marked with “NULL”. I have searched for sollutions, I have found a few suggestions, but have not been able to solve this, I got lost in the process on some of them too.

The drives seems good, cause when connected to a windows pc later, I can delete partitions, make new ones and such, so the SSD’s are fine.

Any advice? I’ll provide more info/details on demand.

Hi

So, first question is what is your use case ?
Do you need to frequently access different files or not. Or are the files large, e.g. movies.

What is your network topology ? 1G, 10G?
Because L2ARC (“cash”) is in most homelab situations not beneficial at all because the network is the bottleneck anyway and latency doesnt matter if your just streaming a movie.

Your cash is your RAM=ARC but with your mobo your already maxed out at 24GB. And in most cases this should be ok if you are not running VMs or tons of apps.

I would use 1 ssd for the bootpool
6 ssds as a fast ssd pool
And the hds for another pool.
Be aware of the risks running a raidz1 with large discs.

Did you try another ssd for the bootdrive ? Did u get the same error?

EDIT: also watch out for the temps on that 9300-16i. They get HOT, especially when not used in a server case with tons of airflow.

Thank you for your reply!

I’ve tried both the Sandisks and the Liteon SSD, both separate and several. Same error. And when I connect it to my windows pc, I can see that 4 partitions have been created, swap, EFI and such.

And yes, my LAN will be the bottleneck. I use wifi mesh (Deco M9+) for the most part. Grouped wired units by each mesh accesspoints are 1Gbit, but speedtesting the wireless gives me about 200Mbit between accesspoints. More tp cables is coming up, but as of now 200Mbit is the bottleneck.

I don’t picture VMs or tons of apps. I picture the use will be relativly modest. Each familiy member having their own “folder”, made availible on each of their computers, and then a shared space for such as family pictures.

Allthoug most contet now is streamed, I also will have a share for any movies/series I happen to still have, so they can stream it to their unit.

And by risks running a raidz1 with large discs I assume you mean risk of 2nd drive fail while rebuilding failed drive? I will have another computer with duplication of the most important stuff from the NAS, so that should be ok.

All of this works very stable on CORE. And no need for L2ARC.
So if you can install CORE, I would go with that.
Once we/you figured out a solution, you can always switch to SCALE.

Hello,

I had the similar issue recently with being unable to install on a bios system with 24.04.

The error was:
lsblk: CANT_FIND_sda3_OR_sdap3: not a block device

This is what I did(based on this pull request):

  1. In the installer, select “2. Shell”.
  2. In the shell, type in vi /usr/sbin/truenas-install
  3. In vi, type /SUCCESS
  4. Look in the next few for a line with return 0 (maybe 15 lines)
  5. Move the cursor on the line before (should be empty)
  6. Type in a to append text
  7. Type sleep 20
  8. Press the escape key.
  9. Type in :wq followed with the enter key
  10. You should be back in the shell
  11. Press CTRL + d to return to the installer.
  12. Choose Install/Upgrade

This will cause the script to pause for 20 seconds for both drives(if a mirroir install is selected) and should be enough for the partition to show up. If not increase the sleeping time.

For reference, here’s the function where the sleep cmd should be inserted(near the end)

wait_on_partitions()
{
    if [ "$#" -lt 2 ]; then
        echo "FATAL: A disk and at least one partition number must be given" > /dev/tty
        return 1
    elif [ ! -b "/dev/${1}" ]; then
	# we assume the block special device exists
	echo "FATAL: Disk device (/dev/${1}) not found" > /dev/tty
	return 1
    fi

    local _disk="$1"
    shift
    local _sleeptime=1
    local _maxwait=30
    local _slepttime
    local _parts="$*"
    local _part _slepttime
    for _part in ${_parts}; do
        _slepttime=0
        while [ ${_slepttime} -lt ${_maxwait} ]; do
	    if [ -b "/dev/${_disk}${_part}" ]; then
                echo "SUCCESS: Found /dev/${_disk}${_part}" > /dev/tty
                break
            elif [ -b "/dev/${_disk}p${_part}" ]; then
                echo "SUCCESS: Found /dev/${_disk}p${_part}" > /dev/tty
                break
            else
                sleep ${_sleeptime}
		_slepttime=$(expr $_slepttime + 1)
                echo "Slept ${_slepttime} seconds waiting on disk (${_disk}) partition number: ${_part}" > /dev/tty
		if [ ${_slepttime} -eq ${_maxwait} ]; then
		    echo "FATAL: Could not find /dev/${_disk}${_part} or /dev/${_disk}p${_part}" > /dev/tty
		    return 1
		fi
	    fi
	done
    done

    sleep 20 # This is where the sleep cmd should be inserted
    return 0
}

Thanks for your detailed answer,

I had the same Issue, but unfortunately, I could not resolve this issue with your solution.
In the end, my BIOS showed no proper boot devices.
So my only solution was to change my the BIOS from SeaBios to OVMF. In my case, with Proxmox, I also had to add an EFI disk. I used the default settings for this. In the UEFI BIOS itself, I then had to disable Secure Boot. And now it works.

Thanks for your reply, I’ll try that when I’ve got the time. I tried a similar guide, but got lost in the code, thanks for the specifications.

As I understand it, this is just an installation issue, and should not be a problem once it’s installed?

Yes, it’s an installation issue. I’m currently running truenas quite happily after using that fix.

Allright, I have given it a few more attempts, but with no luck. I tried to install on a single drive, sda, and on a mirror, sdb and sdc, with the same result.

After the step of confirming swap and legacy boot if prompted, i get the following lines:

Creating new GPT entries in memory.
The operation has completed successfully.
The operation has completed successfully.
The operation has completed successfully.
The operation has completed successfully.
SUCCESS: Found /dev/sdb1
SUCCESS: Found /dev/sdb2
SUCCESS: Found /dev/sdb3
SUCCESS: Found /dev/sdb4
lsblk: CANT_FIND_sdb3_OR_sdbp3: not a block device
The TrueNAS installation on sdb sdc has failed. Press enter to continue...

Same thing when I try to install on sda only as well. I tried to add 200 as well, but no difference.

Now, the function you added in your post, “wait_on_partitions”, does include some sleep allready. I tried to adjust the values of _sleeptime to 5 and _maxwait to 50, but no difference. But I think that function actually finds all the partitions, becaus the four “operation has completed successfully” phrases and the four “SUCCESS” phrases comes from that function.

I searched the whole code in that file, and I have not found that particular error phrase in that code. The only phrase I could find that partly resembles, is within the get_partition function, but it lacks the initial part and ending part; "lsblk: " and “: not a block device”.

Can you see the whole error message in the code? Is it from another file/set of code?

I’m also thinking it might be caused by old hardware / motherboard with BIOS only, and not UEFI. But how/why, I don’t know.

Thanks for your help on this :slight_smile:

get_partition()
{
    local _partitio =$(ls /dev/$1$2 /dev/$1p$2 2>/dev/null)
    if [ -z $_partition ]; then
        Echo CANT_FIND_$1$2_OR_$1p$2
    else
        Echo $_partition
    fi
}