45Drives ZFS Manager with Debian 12 Cockpit?

I recently migrated over from XigmaNAS to DIY Debian 12 + Cockpit. I originally tried to add the 45Drives ZFS plugin, but the dataset wouldn’t populate for the life of me, I couldn’t figure out a way to get all my dataset to show up. python3-libzfs exist but for zfs4 (or zfs3), and trying to compile it is a nightmare

I also tried the old ZFS Manager, but I can’t seem to find a way to create zVOL with that plugin.

Is there a way I can get 45Drives ZFS PLugin working correctly to see all my datasets and zvol?

When you have the 45Drives-ZFS tab installed, what exactly are you seeing on the Pools screen?

Could you also check whether there are any errors showing in the browser console logs(F12) that might indicate why the pool information is not loading?

Additionally, can you confirm the following:

  • Is the pool already imported on the new Debian 12 system?

  • Or are you currently trying to import the pool for the first time?

That information will help narrow down whether this is a UI issue or something related to the ZFS pool state itself.

await in loadDisksThenPools
initialLoad @ index.e8b7f461.js:29902
(anonymous) @ index.e8b7f461.js:29964
(anonymous) @ index.e8b7f461.js:3210
callWithErrorHandling @ index.e8b7f461.js:1890
callWithAsyncErrorHandling @ index.e8b7f461.js:1897
hook.__weh.hook.__weh @ index.e8b7f461.js:3195
flushPostFlushCbs @ index.e8b7f461.js:2044
render2 @ index.e8b7f461.js:5553
mount @ index.e8b7f461.js:3936
app2.mount @ index.e8b7f461.js:7861
(anonymous) @ index.e8b7f461.js:31534
index.e8b7f461.js:29141 poolData after JSON load (no root): {name: 'storagepool', status: 'ONLINE', guid: '7222808751287336734', properties: {…}, failMode: 'wait', …}
index.e8b7f461.js:29473 Disk not found in inventory for path: /dev/disk/by-id/wwn-0x5000039b38d12099. ZFS status: ONLINE
handleDiskChild @ index.e8b7f461.js:29473
(anonymous) @ index.e8b7f461.js:29407
parseVDevData @ index.e8b7f461.js:29404
(anonymous) @ index.e8b7f461.js:29031
loadDisksThenPools @ index.e8b7f461.js:29031
await in loadDisksThenPools
initialLoad @ index.e8b7f461.js:29902
(anonymous) @ index.e8b7f461.js:29964
(anonymous) @ index.e8b7f461.js:3210
callWithErrorHandling @ index.e8b7f461.js:1890
callWithAsyncErrorHandling @ index.e8b7f461.js:1897
hook.__weh.hook.__weh @ index.e8b7f461.js:3195
flushPostFlushCbs @ index.e8b7f461.js:2044
render2 @ index.e8b7f461.js:5553
mount @ index.e8b7f461.js:3936
app2.mount @ index.e8b7f461.js:7861
(anonymous) @ index.e8b7f461.js:31534
index.e8b7f461.js:29530 Mismatch: {child: '/dev/disk/by-id/wwn-0x5000039b38d12048', matched: Array(2), matchedName: 'sdh'}
handleDiskChild @ index.e8b7f461.js:29530
(anonymous) @ index.e8b7f461.js:29407
parseVDevData @ index.e8b7f461.js:29404
(anonymous) @ index.e8b7f461.js:29031
loadDisksThenPools @ index.e8b7f461.js:29031
await in loadDisksThenPools
initialLoad @ index.e8b7f461.js:29902
(anonymous) @ index.e8b7f461.js:29964
(anonymous) @ index.e8b7f461.js:3210
callWithErrorHandling @ index.e8b7f461.js:1890
callWithAsyncErrorHandling @ index.e8b7f461.js:1897
hook.__weh.hook.__weh @ index.e8b7f461.js:3195
flushPostFlushCbs @ index.e8b7f461.js:2044
render2 @ index.e8b7f461.js:5553
mount @ index.e8b7f461.js:3936
app2.mount @ index.e8b7f461.js:7861
(anonymous) @ index.e8b7f461.js:31534
index.e8b7f461.js:29473 Disk not found in inventory for path: /dev/disk/by-id/wwn-0x50014ee20b07fa13. ZFS status: ONLINE
handleDiskChild @ index.e8b7f461.js:29473
(anonymous) @ index.e8b7f461.js:29407
parseVDevData @ index.e8b7f461.js:29404
(anonymous) @ index.e8b7f461.js:29031
loadDisksThenPools @ index.e8b7f461.js:29031
await in loadDisksThenPools
initialLoad @ index.e8b7f461.js:29902
(anonymous) @ index.e8b7f461.js:29964
(anonymous) @ index.e8b7f461.js:3210
callWithErrorHandling @ index.e8b7f461.js:1890
callWithAsyncErrorHandling @ index.e8b7f461.js:1897
hook.__weh.hook.__weh @ index.e8b7f461.js:3195
flushPostFlushCbs @ index.e8b7f461.js:2044
render2 @ index.e8b7f461.js:5553
mount @ index.e8b7f461.js:3936
app2.mount @ index.e8b7f461.js:7861
(anonymous) @ index.e8b7f461.js:31534
index.e8b7f461.js:29473 Disk not found in inventory for path: /dev/disk/by-id/wwn-0x50014ee20b0a0789. ZFS status: ONLINE
handleDiskChild @ index.e8b7f461.js:29473
(anonymous) @ index.e8b7f461.js:29407
parseVDevData @ index.e8b7f461.js:29404
(anonymous) @ index.e8b7f461.js:29031
loadDisksThenPools @ index.e8b7f461.js:29031
await in loadDisksThenPools
initialLoad @ index.e8b7f461.js:29902
(anonymous) @ index.e8b7f461.js:29964
(anonymous) @ index.e8b7f461.js:3210
callWithErrorHandling @ index.e8b7f461.js:1890
callWithAsyncErrorHandling @ index.e8b7f461.js:1897
hook.__weh.hook.__weh @ index.e8b7f461.js:3195
flushPostFlushCbs @ index.e8b7f461.js:2044
render2 @ index.e8b7f461.js:5553
mount @ index.e8b7f461.js:3936
app2.mount @ index.e8b7f461.js:7861
(anonymous) @ index.e8b7f461.js:31534
index.e8b7f461.js:29473 Disk not found in inventory for path: /dev/logs. ZFS status: ONLINE
handleDiskChild @ index.e8b7f461.js:29473
(anonymous) @ index.e8b7f461.js:29407
parseVDevData @ index.e8b7f461.js:29404
(anonymous) @ index.e8b7f461.js:29031
loadDisksThenPools @ index.e8b7f461.js:29031
await in loadDisksThenPools
initialLoad @ index.e8b7f461.js:29902
(anonymous) @ index.e8b7f461.js:29964
(anonymous) @ index.e8b7f461.js:3210
callWithErrorHandling @ index.e8b7f461.js:1890
callWithAsyncErrorHandling @ index.e8b7f461.js:1897
hook.__weh.hook.__weh @ index.e8b7f461.js:3195
flushPostFlushCbs @ index.e8b7f461.js:2044
render2 @ index.e8b7f461.js:5553
mount @ index.e8b7f461.js:3936
app2.mount @ index.e8b7f461.js:7861
(anonymous) @ index.e8b7f461.js:31534
index.e8b7f461.js:29530 Mismatch: {child: '/dev/disk/by-id/nvme-nvme.8086-4356463837323236303…1-494e54454c205353445045434d453031365434-00000001', matched: Array(3), matchedName: 'nvme0n1'}
handleDiskChild @ index.e8b7f461.js:29530
(anonymous) @ index.e8b7f461.js:29407
parseVDevData @ index.e8b7f461.js:29404
(anonymous) @ index.e8b7f461.js:29031
loadDisksThenPools @ index.e8b7f461.js:29031
await in loadDisksThenPools
initialLoad @ index.e8b7f461.js:29902
(anonymous) @ index.e8b7f461.js:29964
(anonymous) @ index.e8b7f461.js:3210
callWithErrorHandling @ index.e8b7f461.js:1890
callWithAsyncErrorHandling @ index.e8b7f461.js:1897
hook.__weh.hook.__weh @ index.e8b7f461.js:3195
flushPostFlushCbs @ index.e8b7f461.js:2044
render2 @ index.e8b7f461.js:5553
mount @ index.e8b7f461.js:3936
app2.mount @ index.e8b7f461.js:7861
(anonymous) @ index.e8b7f461.js:31534
index.e8b7f461.js:29473 Disk not found in inventory for path: /dev/disk/by-id/nvme-nvme.8086-43564638373232363030303831503642474e2d32-494e54454c205353445045434d453031365434-00000001-part1. ZFS status: ONLINE
handleDiskChild @ index.e8b7f461.js:29473
(anonymous) @ index.e8b7f461.js:29407
parseVDevData @ index.e8b7f461.js:29404
(anonymous) @ index.e8b7f461.js:29031
loadDisksThenPools @ index.e8b7f461.js:29031
await in loadDisksThenPools
initialLoad @ index.e8b7f461.js:29902
(anonymous) @ index.e8b7f461.js:29964
(anonymous) @ index.e8b7f461.js:3210
callWithErrorHandling @ index.e8b7f461.js:1890
callWithAsyncErrorHandling @ index.e8b7f461.js:1897
hook.__weh.hook.__weh @ index.e8b7f461.js:3195
flushPostFlushCbs @ index.e8b7f461.js:2044
render2 @ index.e8b7f461.js:5553
mount @ index.e8b7f461.js:3936
app2.mount @ index.e8b7f461.js:7861
(anonymous) @ index.e8b7f461.js:31534
index.e8b7f461.js:29330 Disk not found for path: /dev/disk/by-id/nvme-nvme.8086-43564638373232363030303831503642474e2d32-494e54454c205353445045434d453031365434-00000001-part3.
parseVDevData @ index.e8b7f461.js:29330
(anonymous) @ index.e8b7f461.js:29032
loadDisksThenPools @ index.e8b7f461.js:29032
await in loadDisksThenPools
initialLoad @ index.e8b7f461.js:29902
(anonymous) @ index.e8b7f461.js:29964
(anonymous) @ index.e8b7f461.js:3210
callWithErrorHandling @ index.e8b7f461.js:1890
callWithAsyncErrorHandling @ index.e8b7f461.js:1897
hook.__weh.hook.__weh @ index.e8b7f461.js:3195
flushPostFlushCbs @ index.e8b7f461.js:2044
render2 @ index.e8b7f461.js:5553
mount @ index.e8b7f461.js:3936
app2.mount @ index.e8b7f461.js:7861
(anonymous) @ index.e8b7f461.js:31534
index.e8b7f461.js:29141 poolData after JSON load (no root): {name: 'workpool', status: 'ONLINE', guid: '6446805777961074128', properties: {…}, failMode: 'wait', …}
index.e8b7f461.js:29157 loaded Pools: RefImpl$1 {dep: Dep$1, __v_isRef: true, __v_isShallow: false, _rawValue: Array(4), _value: Proxy(Array)}
index.e8b7f461.js:29287 Selected disk not found Proxy(Object) {name: 'wwn-0x5000cca27ec9da8f', path: '/dev/disk/by-id/wwn-0x5000cca27ec9da8f', guid: '', type: 'N/A', health: 'ONLINE', …}
index.e8b7f461.js:29287 Selected disk not found Proxy(Object) {name: 'nvme-nvme.8086-43564638373232363030303831503642474…54454c205353445045434d453031365434-00000001-part5', path: '/dev/disk/by-id/nvme-nvme.8086-4356463837323236303…54454c205353445045434d453031365434-00000001-part5', guid: '', type: 'N/A', health: 'MISSING', …}
index.e8b7f461.js:29284 Original disk not found in the disks array
(anonymous) @ index.e8b7f461.js:29284
wrappedFn @ index.e8b7f461.js:972
apply$1 @ index.e8b7f461.js:980
forEach @ index.e8b7f461.js:890
(anonymous) @ index.e8b7f461.js:29258
wrappedFn @ index.e8b7f461.js:972
apply$1 @ index.e8b7f461.js:980
forEach @ index.e8b7f461.js:890
(anonymous) @ index.e8b7f461.js:29257
wrappedFn @ index.e8b7f461.js:972
apply$1 @ index.e8b7f461.js:980
forEach @ index.e8b7f461.js:890
loadDisksExtraData @ index.e8b7f461.js:29256
loadDisksThenPools @ index.e8b7f461.js:29158
await in loadDisksThenPools
initialLoad @ index.e8b7f461.js:29902
(anonymous) @ index.e8b7f461.js:29964
(anonymous) @ index.e8b7f461.js:3210
callWithErrorHandling @ index.e8b7f461.js:1890
callWithAsyncErrorHandling @ index.e8b7f461.js:1897
hook.__weh.hook.__weh @ index.e8b7f461.js:3195
flushPostFlushCbs @ index.e8b7f461.js:2044
render2 @ index.e8b7f461.js:5553
mount @ index.e8b7f461.js:3936
app2.mount @ index.e8b7f461.js:7861
(anonymous) @ index.e8b7f461.js:31534
index.e8b7f461.js:29284 Original disk not found in the disks array
(anonymous) @ index.e8b7f461.js:29284
wrappedFn @ index.e8b7f461.js:972
apply$1 @ index.e8b7f461.js:980
forEach @ index.e8b7f461.js:890
(anonymous) @ index.e8b7f461.js:29258
wrappedFn @ index.e8b7f461.js:972
apply$1 @ index.e8b7f461.js:980
forEach @ index.e8b7f461.js:890
(anonymous) @ index.e8b7f461.js:29257
wrappedFn @ index.e8b7f461.js:972
apply$1 @ index.e8b7f461.js:980
forEach @ index.e8b7f461.js:890
loadDisksExtraData @ index.e8b7f461.js:29256
loadDisksThenPools @ index.e8b7f461.js:29158
await in loadDisksThenPools
initialLoad @ index.e8b7f461.js:29902
(anonymous) @ index.e8b7f461.js:29964
(anonymous) @ index.e8b7f461.js:3210
callWithErrorHandling @ index.e8b7f461.js:1890
callWithAsyncErrorHandling @ index.e8b7f461.js:1897
hook.__weh.hook.__weh @ index.e8b7f461.js:3195
flushPostFlushCbs @ index.e8b7f461.js:2044
render2 @ index.e8b7f461.js:5553
mount @ index.e8b7f461.js:3936
app2.mount @ index.e8b7f461.js:7861
(anonymous) @ index.e8b7f461.js:31534
index.e8b7f461.js:29287 Selected disk not found Proxy(Object) {name: 'nvme-nvme.8086-43564638373232363030303831503642474…54454c205353445045434d453031365434-00000001-part6', path: '/dev/disk/by-id/nvme-nvme.8086-4356463837323236303…54454c205353445045434d453031365434-00000001-part6', guid: '', type: 'N/A', health: 'MISSING', …}
index.e8b7f461.js:29284 Original disk not found in the disks array
(anonymous) @ index.e8b7f461.js:29284
wrappedFn @ index.e8b7f461.js:972
apply$1 @ index.e8b7f461.js:980
forEach @ index.e8b7f461.js:890
(anonymous) @ index.e8b7f461.js:29258
wrappedFn @ index.e8b7f461.js:972
apply$1 @ index.e8b7f461.js:980
forEach @ index.e8b7f461.js:890
(anonymous) @ index.e8b7f461.js:29257
wrappedFn @ index.e8b7f461.js:972
apply$1 @ index.e8b7f461.js:980
forEach @ index.e8b7f461.js:890
loadDisksExtraData @ index.e8b7f461.js:29256
loadDisksThenPools @ index.e8b7f461.js:29158
await in loadDisksThenPools
initialLoad @ index.e8b7f461.js:29902
(anonymous) @ index.e8b7f461.js:29964
(anonymous) @ index.e8b7f461.js:3210
callWithErrorHandling @ index.e8b7f461.js:1890
callWithAsyncErrorHandling @ index.e8b7f461.js:1897
hook.__weh.hook.__weh @ index.e8b7f461.js:3195
flushPostFlushCbs @ index.e8b7f461.js:2044
render2 @ index.e8b7f461.js:5553
mount @ index.e8b7f461.js:3936
app2.mount @ index.e8b7f461.js:7861
(anonymous) @ index.e8b7f461.js:31534
index.e8b7f461.js:29284 Original disk not found in the disks array
(anonymous) @ index.e8b7f461.js:29284
wrappedFn @ index.e8b7f461.js:972
apply$1 @ index.e8b7f461.js:980
forEach @ index.e8b7f461.js:890
(anonymous) @ index.e8b7f461.js:29258
wrappedFn @ index.e8b7f461.js:972
apply$1 @ index.e8b7f461.js:980
forEach @ index.e8b7f461.js:890
(anonymous) @ index.e8b7f461.js:29257
wrappedFn @ index.e8b7f461.js:972
apply$1 @ index.e8b7f461.js:980
forEach @ index.e8b7f461.js:890
loadDisksExtraData @ index.e8b7f461.js:29256
loadDisksThenPools @ index.e8b7f461.js:29158
await in loadDisksThenPools
initialLoad @ index.e8b7f461.js:29902
(anonymous) @ index.e8b7f461.js:29964
(anonymous) @ index.e8b7f461.js:3210
callWithErrorHandling @ index.e8b7f461.js:1890
callWithAsyncErrorHandling @ index.e8b7f461.js:1897
hook.__weh.hook.__weh @ index.e8b7f461.js:3195
flushPostFlushCbs @ index.e8b7f461.js:2044
render2 @ index.e8b7f461.js:5553
mount @ index.e8b7f461.js:3936
app2.mount @ index.e8b7f461.js:7861
(anonymous) @ index.e8b7f461.js:31534
index.e8b7f461.js:29287 Selected disk not found Proxy(Object) {name: 'wwn-0x5000c5009441d53b', path: '/dev/disk/by-id/wwn-0x5000c5009441d53b', guid: '', type: 'N/A', health: 'ONLINE', …}
index.e8b7f461.js:29284 Original disk not found in the disks array
(anonymous) @ index.e8b7f461.js:29284
wrappedFn @ index.e8b7f461.js:972
apply$1 @ index.e8b7f461.js:980
forEach @ index.e8b7f461.js:890
(anonymous) @ index.e8b7f461.js:29258
wrappedFn @ index.e8b7f461.js:972
apply$1 @ index.e8b7f461.js:980
forEach @ index.e8b7f461.js:890
(anonymous) @ index.e8b7f461.js:29257
wrappedFn @ index.e8b7f461.js:972
apply$1 @ index.e8b7f461.js:980
forEach @ index.e8b7f461.js:890
loadDisksExtraData @ index.e8b7f461.js:29256
loadDisksThenPools @ index.e8b7f461.js:29158
await in loadDisksThenPools
initialLoad @ index.e8b7f461.js:29902
(anonymous) @ index.e8b7f461.js:29964
(anonymous) @ index.e8b7f461.js:3210
callWithErrorHandling @ index.e8b7f461.js:1890
callWithAsyncErrorHandling @ index.e8b7f461.js:1897
hook.__weh.hook.__weh @ index.e8b7f461.js:3195
flushPostFlushCbs @ index.e8b7f461.js:2044
render2 @ index.e8b7f461.js:5553
mount @ index.e8b7f461.js:3936
app2.mount @ index.e8b7f461.js:7861
(anonymous) @ index.e8b7f461.js:31534
index.e8b7f461.js:29287 Selected disk not found Proxy(Object) {name: 'nvme-nvme.8086-43564638373232363030303831503642474…54454c205353445045434d453031365434-00000001-part4', path: '/dev/disk/by-id/nvme-nvme.8086-4356463837323236303…54454c205353445045434d453031365434-00000001-part4', guid: '', type: 'N/A', health: 'MISSING', …}
index.e8b7f461.js:29284 Original disk not found in the disks array
(anonymous) @ index.e8b7f461.js:29284
wrappedFn @ index.e8b7f461.js:972
apply$1 @ index.e8b7f461.js:980
forEach @ index.e8b7f461.js:890
(anonymous) @ index.e8b7f461.js:29258
wrappedFn @ index.e8b7f461.js:972
apply$1 @ index.e8b7f461.js:980
forEach @ index.e8b7f461.js:890
(anonymous) @ index.e8b7f461.js:29257
wrappedFn @ index.e8b7f461.js:972
apply$1 @ index.e8b7f461.js:980
forEach @ index.e8b7f461.js:890
loadDisksExtraData @ index.e8b7f461.js:29256
loadDisksThenPools @ index.e8b7f461.js:29158
await in loadDisksThenPools
initialLoad @ index.e8b7f461.js:29902
(anonymous) @ index.e8b7f461.js:29964
(anonymous) @ index.e8b7f461.js:3210
callWithErrorHandling @ index.e8b7f461.js:1890
callWithAsyncErrorHandling @ index.e8b7f461.js:1897
hook.__weh.hook.__weh @ index.e8b7f461.js:3195
flushPostFlushCbs @ index.e8b7f461.js:2044
render2 @ index.e8b7f461.js:5553
mount @ index.e8b7f461.js:3936
app2.mount @ index.e8b7f461.js:7861
(anonymous) @ index.e8b7f461.js:31534
index.e8b7f461.js:29287 Selected disk not found Proxy(Object) {name: 'wwn-0x5000039b38d12099', path: '/dev/disk/by-id/wwn-0x5000039b38d12099', guid: '', type: 'N/A', health: 'ONLINE', …}
index.e8b7f461.js:29287 Selected disk not found Proxy(Object) {name: 'wwn-0x50014ee20b07fa13', path: '/dev/disk/by-id/wwn-0x50014ee20b07fa13', guid: '', type: 'N/A', health: 'ONLINE', …}
index.e8b7f461.js:29284 Original disk not found in the disks array
(anonymous) @ index.e8b7f461.js:29284
wrappedFn @ index.e8b7f461.js:972
apply$1 @ index.e8b7f461.js:980
forEach @ index.e8b7f461.js:890
(anonymous) @ index.e8b7f461.js:29258
wrappedFn @ index.e8b7f461.js:972
apply$1 @ index.e8b7f461.js:980
forEach @ index.e8b7f461.js:890
(anonymous) @ index.e8b7f461.js:29257
wrappedFn @ index.e8b7f461.js:972
apply$1 @ index.e8b7f461.js:980
forEach @ index.e8b7f461.js:890
loadDisksExtraData @ index.e8b7f461.js:29256
loadDisksThenPools @ index.e8b7f461.js:29158
await in loadDisksThenPools
initialLoad @ index.e8b7f461.js:29902
(anonymous) @ index.e8b7f461.js:29964
(anonymous) @ index.e8b7f461.js:3210
callWithErrorHandling @ index.e8b7f461.js:1890
callWithAsyncErrorHandling @ index.e8b7f461.js:1897
hook.__weh.hook.__weh @ index.e8b7f461.js:3195
flushPostFlushCbs @ index.e8b7f461.js:2044
render2 @ index.e8b7f461.js:5553
mount @ index.e8b7f461.js:3936
app2.mount @ index.e8b7f461.js:7861
(anonymous) @ index.e8b7f461.js:31534
index.e8b7f461.js:29287 Selected disk not found Proxy(Object) {name: 'nvme-nvme.8086-43564638373232363030303831503642474…54454c205353445045434d453031365434-00000001-part3', path: '/dev/disk/by-id/nvme-nvme.8086-4356463837323236303…54454c205353445045434d453031365434-00000001-part3', guid: '', type: 'N/A', health: 'MISSING', …}
index.e8b7f461.js:29284 Original disk not found in the disks array
(anonymous) @ index.e8b7f461.js:29284
wrappedFn @ index.e8b7f461.js:972
apply$1 @ index.e8b7f461.js:980
forEach @ index.e8b7f461.js:890
(anonymous) @ index.e8b7f461.js:29258
wrappedFn @ index.e8b7f461.js:972
apply$1 @ index.e8b7f461.js:980
forEach @ index.e8b7f461.js:890
(anonymous) @ index.e8b7f461.js:29257
wrappedFn @ index.e8b7f461.js:972
apply$1 @ index.e8b7f461.js:980
forEach @ index.e8b7f461.js:890
loadDisksExtraData @ index.e8b7f461.js:29256
loadDisksThenPools @ index.e8b7f461.js:29158
await in loadDisksThenPools
initialLoad @ index.e8b7f461.js:29902
(anonymous) @ index.e8b7f461.js:29964
(anonymous) @ index.e8b7f461.js:3210
callWithErrorHandling @ index.e8b7f461.js:1890
callWithAsyncErrorHandling @ index.e8b7f461.js:1897
hook.__weh.hook.__weh @ index.e8b7f461.js:3195
flushPostFlushCbs @ index.e8b7f461.js:2044
render2 @ index.e8b7f461.js:5553
mount @ index.e8b7f461.js:3936
app2.mount @ index.e8b7f461.js:7861
(anonymous) @ index.e8b7f461.js:31534
index.e8b7f461.js:29159 loaded Disks: RefImpl$1 {dep: Dep$1, __v_isRef: true, __v_isShallow: false, _rawValue: Array(32), _value: Proxy(Array)}
index.e8b7f461.js:27500 Traceback (most recent call last):
  File "<string>", line 3, in <module>
ModuleNotFoundError: No module named 'libzfs'
getDatasets @ index.e8b7f461.js:27500
await in getDatasets
loadDatasets @ index.e8b7f461.js:29170
initialLoad @ index.e8b7f461.js:29905
await in initialLoad
(anonymous) @ index.e8b7f461.js:29964
(anonymous) @ index.e8b7f461.js:3210
callWithErrorHandling @ index.e8b7f461.js:1890
callWithAsyncErrorHandling @ index.e8b7f461.js:1897
hook.__weh.hook.__weh @ index.e8b7f461.js:3195
flushPostFlushCbs @ index.e8b7f461.js:2044
render2 @ index.e8b7f461.js:5553
mount @ index.e8b7f461.js:3936
app2.mount @ index.e8b7f461.js:7861
(anonymous) @ index.e8b7f461.js:31534
index.e8b7f461.js:29233 loaded Datasets: RefImpl$1 {dep: Dep$1, __v_isRef: true, __v_isShallow: false, _rawValue: Array(0), _value: Proxy(Array)}
index.e8b7f461.js:29933 Setting up ZFS Notification DBus message handler...
index.e8b7f461.js:29945 Connected to ZFS Notification DBus. Subscribing to Message signal...
index.e8b7f461.js:29951 ZFS Notification DBus message handler successfully set up.
cockpit.js:6 cockpit.format_{bytes,bits}[_per_sec](..., 1000, true) is deprecated.
r @ cockpit.js:6
Hn.e.format_bits_per_sec @ cockpit.js:6
AF @ networkmanager.js:15
qh @ networkmanager.js:17
Au @ networkmanager.js:6
Ew @ networkmanager.js:8
Iw @ networkmanager.js:8
lE @ networkmanager.js:8
md @ networkmanager.js:8
kw @ networkmanager.js:8
Vv @ networkmanager.js:1
jv @ networkmanager.js:1
cockpit.js:6 python3-pcp not installed
$e @ cockpit.js:6
pe @ cockpit.js:6
jn @ cockpit.js:6
dispatch_data @ cockpit.js:4
x.onmessage @ cockpit.js:3
(anonymous) @ cockpit.js:1
postMessage
(anonymous) @ shell.js:104
dispatch_data @ cockpit.js:4
x.onmessage @ cockpit.js:3
cockpit.js:6 python3-pcp not installed
$e @ cockpit.js:6
pe @ cockpit.js:6
jn @ cockpit.js:6
dispatch_data @ cockpit.js:4
x.onmessage @ cockpit.js:3
(anonymous) @ cockpit.js:1
postMessage
(anonymous) @ shell.js:104
dispatch_data @ cockpit.js:4
x.onmessage @ cockpit.js:3
cockpit.js:6 python3-pcp not installed
$e @ cockpit.js:6
pe @ cockpit.js:6
jn @ cockpit.js:6
dispatch_data @ cockpit.js:4
x.onmessage @ cockpit.js:3
(anonymous) @ cockpit.js:1
postMessage
(anonymous) @ shell.js:104
dispatch_data @ cockpit.js:4
x.onmessage @ cockpit.js:3
cockpit.js:6 python3-pcp not installed
$e @ cockpit.js:6
pe @ cockpit.js:6
jn @ cockpit.js:6
dispatch_data @ cockpit.js:4
x.onmessage @ cockpit.js:3
(anonymous) @ cockpit.js:1
postMessage
(anonymous) @ shell.js:104
dispatch_data @ cockpit.js:4
x.onmessage @ cockpit.js:3
index.html:10  GET https://nas02.server.adhome.home:9090/cockpit/@localhost/*/po.js net::ERR_ABORTED 404 (ERROR)
cockpit/@localhost/file-sharing/index.html#/:1 Refused to execute script from 'https://nas02.server.adhome.home:9090/cockpit/@localhost/*/po.js' because its MIME type ('text/html') is not executable, and strict MIME type checking is enabled.
garageCliAdapter.ts:110 Garage health check failed: ProcessError (not found): garage: not-found
    at s.<anonymous> (index.js:1854:33)
    at $n (cockpit.js:1:3294)
    at cockpit.js:1:3491
    at Fn (cockpit.js:1:2327)
isGarageHealthy @ garageCliAdapter.ts:110
await in isGarageHealthy
(anonymous) @ App.vue:63
(anonymous) @ App.vue:174
callWithErrorHandling @ runtime-core.esm-bundler.js:199
callWithAsyncErrorHandling @ runtime-core.esm-bundler.js:206
(anonymous) @ runtime-core.esm-bundler.js:6280
(anonymous) @ reactivity.esm-bundler.js:1838
watch @ reactivity.esm-bundler.js:1873
doWatch @ runtime-core.esm-bundler.js:6308
watch @ runtime-core.esm-bundler.js:6241
(anonymous) @ App.vue:102
Promise.then
(anonymous) @ App.vue:74
callWithErrorHandling @ runtime-core.esm-bundler.js:199
setupStatefulComponent @ runtime-core.esm-bundler.js:7996
setupComponent @ runtime-core.esm-bundler.js:7957
(anonymous) @ runtime-core.esm-bundler.js:5285
(anonymous) @ runtime-core.esm-bundler.js:5251
(anonymous) @ runtime-core.esm-bundler.js:4767
(anonymous) @ runtime-core.esm-bundler.js:6062
mount @ runtime-core.esm-bundler.js:4004
(anonymous) @ runtime-dom.esm-bundler.js:1799
(anonymous) @ main.ts:10
index.js:3937 getServerCluster('ctdb'): File not found: /etc/ctdb/nodes. Assuming single-server.
(anonymous) @ index.js:3937
(anonymous) @ index.js:1618
Promise.then
andThen @ index.js:1614
(anonymous) @ index.js:3931
(anonymous) @ index.js:1618
Promise.then
andThen @ index.js:1614
(anonymous) @ index.js:3929
getServerCluster @ index.js:3961
(anonymous) @ SambaTabMain.vue:42
callWithErrorHandling @ runtime-core.esm-bundler.js:199
setupStatefulComponent @ runtime-core.esm-bundler.js:7996
setupComponent @ runtime-core.esm-bundler.js:7957
(anonymous) @ runtime-core.esm-bundler.js:5285
(anonymous) @ runtime-core.esm-bundler.js:5251
(anonymous) @ runtime-core.esm-bundler.js:4767
(anonymous) @ runtime-core.esm-bundler.js:5397
run @ reactivity.esm-bundler.js:237
(anonymous) @ runtime-core.esm-bundler.js:5525
(anonymous) @ runtime-core.esm-bundler.js:5299
(anonymous) @ runtime-core.esm-bundler.js:5251
(anonymous) @ runtime-core.esm-bundler.js:4767
(anonymous) @ runtime-core.esm-bundler.js:5397
run @ reactivity.esm-bundler.js:237
(anonymous) @ runtime-core.esm-bundler.js:5525
(anonymous) @ runtime-core.esm-bundler.js:5299
(anonymous) @ runtime-core.esm-bundler.js:5251
(anonymous) @ runtime-core.esm-bundler.js:4767
(anonymous) @ runtime-core.esm-bundler.js:5001
(anonymous) @ runtime-core.esm-bundler.js:5181
(anonymous) @ runtime-core.esm-bundler.js:4741
(anonymous) @ runtime-core.esm-bundler.js:5001
(anonymous) @ runtime-core.esm-bundler.js:4924
(anonymous) @ runtime-core.esm-bundler.js:4889
(anonymous) @ runtime-core.esm-bundler.js:4755
(anonymous) @ runtime-core.esm-bundler.js:5001
(anonymous) @ runtime-core.esm-bundler.js:4924
(anonymous) @ runtime-core.esm-bundler.js:4889
(anonymous) @ runtime-core.esm-bundler.js:4755
(anonymous) @ runtime-core.esm-bundler.js:5001
(anonymous) @ runtime-core.esm-bundler.js:4924
(anonymous) @ runtime-core.esm-bundler.js:4889
(anonymous) @ runtime-core.esm-bundler.js:4755
(anonymous) @ runtime-core.esm-bundler.js:5397
run @ reactivity.esm-bundler.js:237
(anonymous) @ runtime-core.esm-bundler.js:5525
(anonymous) @ runtime-core.esm-bundler.js:5299
(anonymous) @ runtime-core.esm-bundler.js:5251
(anonymous) @ runtime-core.esm-bundler.js:4767
(anonymous) @ runtime-core.esm-bundler.js:5001
(anonymous) @ runtime-core.esm-bundler.js:5181
(anonymous) @ runtime-core.esm-bundler.js:4741
(anonymous) @ runtime-core.esm-bundler.js:5397
run @ reactivity.esm-bundler.js:237
(anonymous) @ runtime-core.esm-bundler.js:5525
(anonymous) @ runtime-core.esm-bundler.js:5299
(anonymous) @ runtime-core.esm-bundler.js:5251
(anonymous) @ runtime-core.esm-bundler.js:4767
(anonymous) @ runtime-core.esm-bundler.js:6062
mount @ runtime-core.esm-bundler.js:4004
(anonymous) @ runtime-dom.esm-bundler.js:1799
(anonymous) @ main.ts:10
rustfsCliAdapter.ts:1324 RustFS availability check failed (admin API probe); checking install/runtime presence: {message: 'Unable to resolve RustFS connection parameters.', stderr: undefined, stdout: undefined, exitStatus: undefined}
isRustfsAvailable @ rustfsCliAdapter.ts:1324
await in isRustfsAvailable
(anonymous) @ App.vue:62
(anonymous) @ App.vue:174
callWithErrorHandling @ runtime-core.esm-bundler.js:199
callWithAsyncErrorHandling @ runtime-core.esm-bundler.js:206
(anonymous) @ runtime-core.esm-bundler.js:6280
(anonymous) @ reactivity.esm-bundler.js:1838
watch @ reactivity.esm-bundler.js:1873
doWatch @ runtime-core.esm-bundler.js:6308
watch @ runtime-core.esm-bundler.js:6241
(anonymous) @ App.vue:102
Promise.then
(anonymous) @ App.vue:74
callWithErrorHandling @ runtime-core.esm-bundler.js:199
setupStatefulComponent @ runtime-core.esm-bundler.js:7996
setupComponent @ runtime-core.esm-bundler.js:7957
(anonymous) @ runtime-core.esm-bundler.js:5285
(anonymous) @ runtime-core.esm-bundler.js:5251
(anonymous) @ runtime-core.esm-bundler.js:4767
(anonymous) @ runtime-core.esm-bundler.js:6062
mount @ runtime-core.esm-bundler.js:4004
(anonymous) @ runtime-dom.esm-bundler.js:1799
(anonymous) @ main.ts:10
index.html:10  GET https://nas02.server.adhome.home:9090/cockpit/@localhost/*/po.js net::ERR_ABORTED 404 (ERROR)
cockpit/@localhost/identities/index.html#/:1 Refused to execute script from 'https://nas02.server.adhome.home:9090/cockpit/@localhost/*/po.js' because its MIME type ('text/html') is not executable, and strict MIME type checking is enabled.
attribution.js:1 Font Awesome Free 5.15.3 by @fontawesome - https://fontawesome.com
License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)

index.html:31  GET https://nas02.server.adhome.home:9090/cockpit/@localhost/*/po.js net::ERR_ABORTED 404 (ERROR)
cockpit/@localhost/navigator/index.html#/:1 Refused to execute script from 'https://nas02.server.adhome.home:9090/cockpit/@localhost/*/po.js' because its MIME type ('text/html') is not executable, and strict MIME type checking is enabled.
networkmanager.css:1  GET https://nas02.server.adhome.home:9090/cockpit/@localhost/network/assets/fonts/RedHatDisplay/RedHatDisplayVF.woff2 net::ERR_ABORTED 404 (ERROR)
index.e8b7f461.js:27500 Traceback (most recent call last):
  File "<string>", line 3, in <module>
ModuleNotFoundError: No module named 'libzfs'
getDatasets @ index.e8b7f461.js:27500
await in getDatasets
loadDatasets @ index.e8b7f461.js:29170
refreshData @ FileSystemList.f1805631.js:261
(anonymous) @ FileSystemList.f1805631.js:331
(anonymous) @ index.e8b7f461.js:3210
callWithErrorHandling @ index.e8b7f461.js:1890
callWithAsyncErrorHandling @ index.e8b7f461.js:1897
hook.__weh.hook.__weh @ index.e8b7f461.js:3195
flushPostFlushCbs @ index.e8b7f461.js:2044
flushJobs @ index.e8b7f461.js:2082
Promise.then
queueFlush @ index.e8b7f461.js:1992
queueJob @ index.e8b7f461.js:1987
effect.scheduler @ index.e8b7f461.js:5038
trigger @ index.e8b7f461.js:463
endBatch$1 @ index.e8b7f461.js:518
notify @ index.e8b7f461.js:732
trigger @ index.e8b7f461.js:718
set value @ index.e8b7f461.js:1503
loadFileSystemListComponent @ index.e8b7f461.js:30049
await in loadFileSystemListComponent
(anonymous) @ index.e8b7f461.js:30064
callWithErrorHandling @ index.e8b7f461.js:1890
callWithAsyncErrorHandling @ index.e8b7f461.js:1897
baseWatchOptions.call @ index.e8b7f461.js:5713
getter @ index.e8b7f461.js:1655
run @ index.e8b7f461.js:440
job @ index.e8b7f461.js:1709
flushPreFlushCbs @ index.e8b7f461.js:2020
updateComponentPreRender @ index.e8b7f461.js:5050
componentUpdateFn @ index.e8b7f461.js:4993
run @ index.e8b7f461.js:440
updateComponent @ index.e8b7f461.js:4898
processComponent @ index.e8b7f461.js:4857
patch @ index.e8b7f461.js:4431
patchBlockChildren @ index.e8b7f461.js:4738
processFragment @ index.e8b7f461.js:4803
patch @ index.e8b7f461.js:4405
patchBlockChildren @ index.e8b7f461.js:4738
patchElement @ index.e8b7f461.js:4672
processElement @ index.e8b7f461.js:4546
patch @ index.e8b7f461.js:4419
componentUpdateFn @ index.e8b7f461.js:5007
run @ index.e8b7f461.js:440
runIfDirty @ index.e8b7f461.js:470
callWithErrorHandling @ index.e8b7f461.js:1890
flushJobs @ index.e8b7f461.js:2063
Promise.then
queueFlush @ index.e8b7f461.js:1992
queueJob @ index.e8b7f461.js:1987
effect.scheduler @ index.e8b7f461.js:5038
trigger @ index.e8b7f461.js:463
endBatch$1 @ index.e8b7f461.js:518
notify @ index.e8b7f461.js:732
trigger @ index.e8b7f461.js:718
set value @ index.e8b7f461.js:1503
navigationCallback @ index.e8b7f461.js:31504
(anonymous) @ index.e8b7f461.js:24592
cache.<computed>.cache.<computed> @ index.e8b7f461.js:7815
callWithErrorHandling @ index.e8b7f461.js:1890
callWithAsyncErrorHandling @ index.e8b7f461.js:1897
invoker @ index.e8b7f461.js:7372
index.e8b7f461.js:29233 loaded Datasets: RefImpl$1 {dep: Dep$1, __v_isRef: true, __v_isShallow: false, _rawValue: Array(0), _value: Proxy(Array)}
FileSystemList.f1805631.js:287 Added only datasets from moviespool
FileSystemList.f1805631.js:287 Added only datasets from moviespool2
FileSystemList.f1805631.js:287 Added only datasets from storagepool
FileSystemList.f1805631.js:287 Added only datasets from workpool

root@nas02:~/cockpit-zfs# zfs list
NAME                      USED  AVAIL  REFER  MOUNTPOINT
moviespool               13.8T  13.0T   185K  /mnt/moviespool
moviespool/3D             460G  13.0T   460G  /mnt/moviespool/3D
moviespool/animations    1.49T  13.0T  1.49T  /mnt/moviespool/animations
moviespool/movies        11.9T  13.0T  11.9T  /mnt/moviespool/movies
moviespool2              13.1T  18.8T   185K  /mnt/moviespool2
moviespool2/chinese      1.13T  18.8T  1.13T  /mnt/moviespool2/chinese
moviespool2/movies       12.0T  18.8T  11.9T  /mnt/moviespool2/movies
storagepool              9.32T  6.70T   256K  /mnt/storagepool
storagepool/TV           3.04T  6.70T  3.04T  /mnt/storagepool/TV
storagepool/ftp          16.8G  2.98T  16.8G  /mnt/storagepool/ftp
storagepool/music        1.02T  6.70T  1.02T  /mnt/storagepool/music
storagepool/repository   42.8G  6.70T  42.8G  /mnt/storagepool/repository
storagepool/test_videos   213K  6.70T   213K  /mnt/storagepool/test_videos
workpool                 5.77T  5.00T   256M  /mnt/workpool
workpool/new_releases    3.54T  5.00T  3.54T  /mnt/workpool/new_releases

I hope that’s enough log from the console. Let me know what else you need


The pools automatically shows up, just not the dataset.

Here is the compile log for python3-libzfs, since I can’t attach a text file nor it will fit with the 32600 character

Thanks for all that info. I’ve let the R&D team know about this thread, and they’re going to look into it. @Keo is already on the issue

Thanks for your patience while our team looked into this.

It appears the issue is related to the python3-libzfs package not being compiled for Debian 12 Bookworm. Our tools currently officially support Rocky 8/9 and Ubuntu 20/22 with ZFS 2.2. Since Debian 12 uses ZFS 2.3, the packages have not yet been updated or fully validated for that newer ZFS version.

Because of this, Debian 12 is considered a non-standard configuration for our tools at this time, which is why this issue has come up.

We do plan to move to the newer ZFS version in the future, but that work is not available yet. For now, the best workaround is to use the ZFS manager available through Cockpit instead.

1 Like