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):
- In the installer, select “2. Shell”.
- In the shell, type in
vi /usr/sbin/truenas-install
- In vi, type
/SUCCESS
- Look in the next few for a line with
return 0
(maybe 15 lines) - Move the cursor on the line before (should be empty)
- Type in
a
to append text - Type
sleep 20
- Press the escape key.
- Type in
:wq
followed with the enter key - You should be back in the shell
- Press CTRL + d to return to the installer.
- 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
}