Hi,
After upgrading from TrueNAS SCALE 25.10.1 to 25.10.7, I noticed that most of my datasets were no longer mounted, even though my ZFS pool was healthy and ONLINE.
Only tank/ix-apps and its children were mounted. Docker started anyway, causing some applications to appear as freshly installed because their bind mounts pointed to empty directories on the boot filesystem.
I stopped the containers, manually mounted the missing datasets, and restored the applications. Everything is working again, but I’m concerned about the next reboot.
The issue
ZFS sees my pool as tank, while TrueNAS still has it registered as tank2 (OFFLINE). Both have exactly the same GUID.
$ zpool list -o name,guid,health
NAME GUID HEALTH
boot-pool 15737829051869996779 ONLINE
tank 1875691513146793369 ONLINE
$ midclt call pool.query
id: 2
name: tank2
guid: 1875691513146793369
status: OFFLINE
path: /mnt/tank2
$ midclt call datastore.query storage.volume
id: 2
vol_name: tank2
vol_guid: 1875691513146793369
The middleware logs contain:
Failed to mount datasets for pool: 'tank2'
cannot open 'tank2': dataset does not exist
Similar errors were already present in January, before this upgrade. Some disk configuration changes were made previously, which may explain the old pool name.
What I’ve checked
-
tankis ONLINE with no reported ZFS errors. -
All datasets mount successfully manually (
canmount=on). -
Pool properties:
altroot=/mnt,cachefile=/data/zfs/zpool.cache. -
pool.dataset.querycorrectly recognizestank. -
pool.import_findreturns an empty list (the pool is already imported). -
No encrypted datasets, SMB shares or scheduled snapshot tasks were found.
-
System dataset is on
boot-pool; Docker storage usestank/ix-apps. -
TrueNAS configuration and Docker application configurations have been backed up.
My question
What’s the safest way to make TrueNAS recognize the existing pool as tank instead of tank2, without exporting/reimporting it?
Would changing storage.volume.vol_name using midclt datastore.update be safe, or is there a supported way to re-register the pool?
I’d also like to prevent Docker from starting before the required datasets are mounted.
The pool contains several TiB of media so I’d prefer to avoid any risky operations. I haven’t modified the database or attempted an export/import.
Thanks for any advice!