I have a ZFS pool, kyoudaiHD, that is mounted via USB-direct-passthrough on my TrueNAS. It shows up as expected. However, any attempt to mount a dataset or pool as a share fails with the error at the bottom.
Both the GUI and the middleware (midclt) list the device correctly. I can see the device in storage, and the pool and datasets are seen in datasets on the GUI. It is mounted at /mnt/giant and normal ls commands see the contents and zfs and zpool return the right results.
KyoudaiHD is a pool on a USB-based 4-HDD bay configured as a ZFS Raid1 virtual device. It works on a variety of machines and the TrueNAS Scale 24.10.1 guest (running on ProxMox 8.3.2 on a Dell Poweredge 640) can see it.
I passed thru the USB ATA-to-ATAPI bridge and the Mass Storage Function on the Proxmox host to the TrueNAS guest. I don’t think that is the issue per se because everything else works, but maybe there is something about the way that the USB-based ZFS pool gets passed that prevents TrueNAS from seeing it as a mount point? Maybe it is the fact that it is USB-based (Not so much that it is passed thru?)
Traceback (most recent call last):
File "/usr/lib/python3/dist-packages/middlewared/main.py", line 211, in call_method
result = await self.middleware.call_with_audit(message['method'], serviceobj, methodobj, params, self)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3/dist-packages/middlewared/main.py", line 1529, in call_with_audit
result = await self._call(method, serviceobj, methodobj, params, app=app,
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3/dist-packages/middlewared/main.py", line 1460, in _call
return await methodobj(*prepared_call.args)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3/dist-packages/middlewared/service/crud_service.py", line 230, in create
return await self.middleware._call(
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3/dist-packages/middlewared/main.py", line 1460, in _call
return await methodobj(*prepared_call.args)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3/dist-packages/middlewared/service/crud_service.py", line 261, in nf
rv = await func(*args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3/dist-packages/middlewared/schema/processor.py", line 49, in nf
res = await f(*args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3/dist-packages/middlewared/schema/processor.py", line 179, in nf
return await func(*args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3/dist-packages/middlewared/plugins/nfs.py", line 516, in do_create
await self.validate(data, "sharingnfs_create", verrors)
File "/usr/lib/python3/dist-packages/middlewared/plugins/nfs.py", line 638, in validate
verrors.check()
File "/usr/lib/python3/dist-packages/middlewared/service_exception.py", line 72, in check
raise self
middlewared.service_exception.ValidationErrors: [EINVAL] sharingnfs_create.path: The path must reside within a pool mount point