Cannot import pool after shutdown and restart

I’ve got a system with a fresh install of TrueNAS Scale 24.10. All I’ve done with it so far is set up a small ZFS pool and installed wg-easy and ddns-updater. When the system is up, it behaves just fine.

When I shut down the system (using the shutdown option in the webui menu bar), it appears to shut down normally. But when I start it back up, the ZFS pool says it’s exported – the pool is not online and the apps (which are installed on the pool) are not working.

I’ve found a workaround that if I export the pool via the webui (even though it says it’s exported) then I can import it and the pool and the apps are all healthy and online again.

Obviously I don’t want to have to do this every time I reboot the system.

I’ve googled for a while now and can’t find anything that matches my problem. The drives are spinning up on reboot and are available. I tried turning on and off legacy mode in the BIOS and that didn’t change anything. I also tried turning off and on secure boot. The drives are not encrypted.

It’s an AMD 4650G system with ECC memory, with three HDD’s connected via SATA ports on the motherboard. The operating system is running on a NVMe drive on the motherboard.

Any suggestions/advice is appreciated.

Thanks!

It appears to be disk identification problem. I don’t have the details but if one or more of the disks in the pool were used by another file systems, Linux’s disk identification says they are not ZFS. TrueNAS SCALE will then not attempt to automatically import the pool.

The fix seems straight forward, but again I don’t have the details.

Perhaps someone else will be able to walk you through checking, and if it’s that particular problem, then the fix. (Note that I think the permanent fix is in the latest SCALE release…)

In the mean time, please supply the following information, in a CODE block;

zpool status -v
lsblk -bo NAME,MODEL,ROTA,PTTYPE,TYPE,START,SIZE,PARTTYPENAME,PARTUUID

Then identify which are your pool devices, (if it is not obvious from the above output).

More information may be needed, but someone else may know what is needed.

I did format them using Windows 11 prior to setting up the server, to test them and the new system. Maybe?

Here’s zpool status:

  pool: Shared_Drives
 state: ONLINE
config:

        NAME           STATE     READ WRITE CKSUM
        Shared_Drives  ONLINE       0     0     0
          sdc1         ONLINE       0     0     0
          sdb1         ONLINE       0     0     0
          sda1         ONLINE       0     0     0

errors: No known data errors

  pool: boot-pool
 state: ONLINE
config:

        NAME         STATE     READ WRITE CKSUM
        boot-pool    ONLINE       0     0     0
          nvme0n1p3  ONLINE       0     0     0

errors: No known data errors

(the pool is Shared_Drives)

Here’s the output from lsblk:

NAME        MODEL                ROTA PTTYPE TYPE   START           SIZE PARTTYPENAME             PARTUUID
sda         ST16000NM001G-2KK103    1 gpt    disk         16000900661248                          
└─sda1                              1 gpt    part    2048 16000898564096                          
sdb         ST16000NM001G-2KK103    1 gpt    disk         16000900661248                          
└─sdb1                              1 gpt    part    2048 16000898564096                          
sdc         ST16000NM001G-2KK103    1 gpt    disk         16000900661248                          
└─sdc1                              1 gpt    part    2048 16000898564096                          
nvme0n1     PCIe SSD                0 gpt    disk           500107862016                          
├─nvme0n1p1                         0 gpt    part    4096        1048576 BIOS boot                036bbf8e-881d-4adf-8c34-5b2eb07ac10c
├─nvme0n1p2                         0 gpt    part    6144      536870912 EFI System               d9362a41-1126-47a0-9e4e-11a26fd44f44
└─nvme0n1p3                         0 gpt    part 1054720   499567828480 Solaris /usr & Apple ZFS 5667ae4f-79e9-4d50-84c1-087f3da352c7

Thanks!

First thing I notice is that the pool was last imported with the kernel identifiers for the devices (sda1, sdb1, sdc1), instead of their PARTUUID.

Next thing that concerns me is that your pool, “Shared_Drives”, appears to be comprised of three single-drive stripes? :eyes:

You could attempt to import it once (using the PARTUUIDs), and it should remember those as your “last successful import”.

zpool import -R /mnt/ -d /dev/disk/by-partuuid Shared_Drives

I’m still worried about your lack of redundant vdevs.

1 Like

I don’t have an answer for you about the boot time automatic pool importing.

But this below is much less common here. It is a pool with 3 disks in a Stripe, with no data redundancy. Any disk lost, and you loose everything. Though a block, (or series of blocks), lost does not affect the pool as a whole, it will affect the files for those blocks. They would need to be restored from backups.

Of course, you may know this already. As I said, it’s just uncommon to have Striped pools. (But I do so for my miniature media server…)

Right, it’s not high-importance files, and I’ll have them backed up so the worst that would happen is inconvience. (I’d prefer to set them up as JBOD but I don’t see a way to do that?)

I’ll try exporting and then importing using the partuuid but I think I did that the first time it wouldn’t import automatically.

TrueNAS does not really support that. You can create 3 separate, independent pools, each with 1 disk. But, at that point you have to create 3 different shares to use the disks.

ZFS is not the most flexible, but what it does do, it does it World Class. Meaning ZFS was designed by software engineers to solve lots of problems. Including making some things easier. But, JBOD is not one of them…

There is a jira ticket with links to the different threads encoutering this type of problem.

https://ixsystems.atlassian.net/browse/NAS-132753

I think this was the first to pop up…

1 Like

Okay, maybe I’m doing this wrong, but I assumed I needed to export them first, so I did. But when I run the above command I get an error, “cannot import ‘Shared_Drives’: no such pool available”

I looked in /dev/disk/by-partuuid and there are three uuid’s.

I exported the pool, then ran blkid --probe on the first disk and got the amblvalent result as shown in the ticket linked to by @prez02 upthread. So, since I didn’t have any data in the shared drive yet, I decided to just completely delete the pool (and my apps), wipefs the heck out of the drives, and then rebuild the pool and my few apps.

And that (of course) fixed it. Thanks prez and everyone else, I appreciate the help!

3 Likes