Trouble migrating app datasets to a new pool (confused between datasets and folders)

Hi everyone,

I’m running TrueNAS SCALE with three pools:

  • One for system (boot),
  • One for application data (pool_apps),
  • And one for user data.

The SSD I used for apps was a Verbatim (I know… big mistake trying to save money), and it’s now degraded. I’ve already installed a new Samsung 870 EVO and created a new pool.

Here’s where I’m stuck:

I’m trying to migrate all app-related datasets from the old pool to the new one. I used a replication task, but it didn’t recreate the full structure of nested child datasets (which is required by apps like Immich). It seems to just create folders, not actual datasets.

Also, I’m unsure if replication transfers the container configurations for the apps. When I try to “Restore Replication Task”, it creates some folders but doesn’t bring over the original dataset structure, so apps don’t recognize the data.

At this point, I feel completely lost and I think I’m confusing folders with datasets. Do I need to manually recreate all the same datasets in the new pool and then copy the data?

Is there a simpler way to clone a dataset recursively and move it to a new pool, keeping its structure and all sub-datasets intact?

Thanks a lot for any help. I’m not even sure I’m approaching the problem the right way.

Hi everyone,

Just closing the loop on this — I ended up doing a clean reinstall of all applications instead of trying to restore them automatically.

  • The old SSD (pool_apps) for apps degraded. I created a new pool (pool_app) on a Samsung 870 EVO.
  • I used ZFS send/recv to copy the foto_app dataset (where Immich stores photos, thumbnails, etc.):

sudo zfs send -R pool_apps/foto_app@snapshot_name | sudo zfs recv -F pool_app/foto_app


 This preserved the full dataset structure (including child datasets like `video`, `upload`, etc.).

* For each app (Zigbee2MQTT, Home Assistant, Syncthing, etc.), I:
  * **Did a clean reinstall** using the catalog.
  * **Copied back their configuration directories** from the old pool using `rsync`.
  * **Adjusted ownership with `chown`**,  `568:568`.

Example for Zigbee2MQTT: