Cannot import single disk pool 'Storage 1'. ONLINE but Import Fails with Unavailable

I am trying to import a single-disk ZFS pool (WD 4TB HDD) from a previous TrueNAS SCALE installation (TrueNAS-SCALE-22.02.4) into a fresh install of TrueNAS SCALE (TrueNAS-SCALE-25.10.1). The system recognizes the disk and shows it up in lsblk, but both the Web GUI and the CLI refuse to import it, claiming the device is “unavailable.”

When I run a scan, the pool is found and marked as ONLINE. However, when I attempt to actually import it, ZFS reports it as UNAVAILABLE.

  1. Output of zpool import -d /dev/sda2 :
    pool: Storage 1
    id: 10618109334046111923
 state: ONLINE
status: Some supported features are not enabled on the pool.
        (Note that they may be intentionally disabled if the
        'compatibility' property is set.)
action: The pool can be imported using its name or numeric identifier, though
        some features will not be available without an explicit 'zpool upgrade'.
config:

        Storage 1   ONLINE
          sda2      ONLINE

2. Output of zdb -l /dev/sda2

------------------------------------
LABEL 0 
------------------------------------
    version: 5000
    name: 'Storage 1'
    state: 0
    txg: 458818
    pool_guid: 10618109334046111923
    errata: 0
    hostid: 2086397763
    hostname: 'truenas'
    top_guid: 18383673240219225075
    guid: 18383673240219225075
    vdev_children: 1
    vdev_tree:
        type: 'disk'
        id: 0
        guid: 18383673240219225075
        path: '/dev/disk/by-partuuid/437af21c-6abd-4ded-a5ea-8e83e24ebe58'
        metaslab_array: 68
        metaslab_shift: 34
        ashift: 12
        asize: 3998634737664
        is_log: 0
        create_txg: 4
        degraded: 1
    features_for_read:
        com.delphix:hole_birth
        com.delphix:embedded_data
    labels = 0 2 
------------------------------------
LABEL 1 
------------------------------------
    version: 5000
    name: 'Storage 1'
    state: 0
    txg: 458810
    pool_guid: 10618109334046111923
    errata: 0
    hostid: 2086397763
    hostname: 'truenas'
    top_guid: 18383673240219225075
    guid: 18383673240219225075
    vdev_children: 1
    vdev_tree:
        type: 'disk'
        id: 0
        guid: 18383673240219225075
        path: '/dev/disk/by-partuuid/437af21c-6abd-4ded-a5ea-8e83e24ebe58'
        metaslab_array: 68
        metaslab_shift: 34
        ashift: 12
        asize: 3998634737664
        is_log: 0
        create_txg: 4
    features_for_read:
        com.delphix:hole_birth
        com.delphix:embedded_data
    labels = 1 3

3. The Error Message when attempting import: sudo zpool import -f -R /mnt 10618109334046111923

cannot import ‘Storage 1’: one or more devices is currently unavailable

Any advice on how to solve this “unavailable” without data loss?

I don’t see any problem except that your pool name has a SPACE character in it. Doubt it’s the problem, but will take less than a minute to rename it:

sudo zpool import -f -R /mnt 10618109334046111923 Storage_1

It gives,

cannot import ‘Storage 1’ as ‘Storage_1’: one or more devices is currently unavailable

Did you try renaming the pool without spaces?

Well, that is bad.

The output of zdb -l /dev/sda2 does look a little strange. I wondered why the label displays were broken up into 0 & 2, then 1 & 3. But, looking more closely at it, we have degraded: 1 on the 0 & 2 label section.

Going into more depth, I see that the transaction groups are different between the first labels and the second group;

<     txg: 458818
---
>     txg: 458810

I missed that initially because my eyesight is not as good as it used to be. So I missed the 8 was not the same as the zero.

You could roll back 9 transactions, throwing out the last few writes. Something bad happened during those last 9 writes in which 2 of the 4 disk labels were not written properly.

Here is the command to test it and see if it works, before actually throwing out any data;

sudo zpool import -f -R /mnt -T 458810 -o readonly=on 10618109334046111923 Storage_1

Whence you do this, you can examine the data. But, you will not be able to scrub the pool or perform any changes. If you don’t see any pool corruption, then you could export the pool again and then import without the read only option. Or, instead, you could copy the files off to another location.

It is generally quite difficult to create this type of pool corruption. One known cause is hardware RAID controllers, or caching controllers, (like some USB to SATA might do).

1 Like