Cannot Import a Exported ZFS HDD error EZFS_IO

Error: concurrent.futures.process._RemoteTraceback:
“”"
Traceback (most recent call last):
File “/usr/lib/python3/dist-packages/middlewared/plugins/zfs_/pool_actions.py”, line 233, in import_pool
zfs.import_pool(found, pool_name, properties, missing_log=missing_log, any_host=any_host)
File “libzfs.pyx”, line 1374, in libzfs.ZFS.import_pool
File “libzfs.pyx”, line 1402, in libzfs.ZFS.__import_pool
libzfs.ZFSException: cannot import ‘MAIN-STORAGE’ as ‘MAIN-STORAGE’: I/O error

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
File “/usr/lib/python3.11/concurrent/futures/process.py”, line 261, in _process_worker
r = call_item.fn(*call_item.args, **call_item.kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File “/usr/lib/python3/dist-packages/middlewared/worker.py”, line 116, in main_worker
res = MIDDLEWARE._run(*call_args)
^^^^^^^^^^^^^^^^^^^^^^^^^^^
File “/usr/lib/python3/dist-packages/middlewared/worker.py”, line 47, in _run
return self._call(name, serviceobj, methodobj, args, job=job)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File “/usr/lib/python3/dist-packages/middlewared/worker.py”, line 41, in _call
return methodobj(*params)
^^^^^^^^^^^^^^^^^^
File “/usr/lib/python3/dist-packages/middlewared/schema/processor.py”, line 178, in nf
return func(*args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^
File “/usr/lib/python3/dist-packages/middlewared/plugins/zfs_/pool_actions.py”, line 213, in import_pool
with libzfs.ZFS() as zfs:
File “libzfs.pyx”, line 534, in libzfs.ZFS._exit_
File “/usr/lib/python3/dist-packages/middlewared/plugins/zfs_/pool_actions.py”, line 237, in import_pool
raise CallError(f’Failed to import {pool_name!r} pool: {e}', e.code)
middlewared.service_exception.CallError: [EZFS_IO] Failed to import ‘MAIN-STORAGE’ pool: cannot import ‘MAIN-STORAGE’ as ‘MAIN-STORAGE’: I/O error
“”"

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
File “/usr/lib/python3/dist-packages/middlewared/job.py”, line 515, in run
await self.future
File “/usr/lib/python3/dist-packages/middlewared/job.py”, line 560, in __run_body
rv = await self.method(*args)
^^^^^^^^^^^^^^^^^^^^^^^^
File “/usr/lib/python3/dist-packages/middlewared/schema/processor.py”, line 174, in nf
return await func(*args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^
File “/usr/lib/python3/dist-packages/middlewared/schema/processor.py”, line 48, in nf
res = await f(*args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^
File “/usr/lib/python3/dist-packages/middlewared/plugins/pool_/import_pool.py”, line 118, in import_pool
await self.middleware.call(‘zfs.pool.import_pool’, guid, opts, any_host, use_cachefile, new_name)
File “/usr/lib/python3/dist-packages/middlewared/main.py”, line 1005, in call
return await self._call(
^^^^^^^^^^^^^^^^^
File “/usr/lib/python3/dist-packages/middlewared/main.py”, line 728, in _call
return await self._call_worker(name, *prepared_call.args)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File “/usr/lib/python3/dist-packages/middlewared/main.py”, line 734, in _call_worker
return await self.run_in_proc(main_worker, name, args, job)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File “/usr/lib/python3/dist-packages/middlewared/main.py”, line 640, in run_in_proc
return await self.run_in_executor(self.__procpool, method, *args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File “/usr/lib/python3/dist-packages/middlewared/main.py”, line 624, in run_in_executor
return await loop.run_in_executor(pool, functools.partial(method, *args, **kwargs))
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
middlewared.service_exception.CallError: [EZFS_IO] Failed to import ‘MAIN-STORAGE’ pool: cannot import ‘MAIN-STORAGE’ as ‘MAIN-STORAGE’: I/O error

Hello, My proxmox vm took a dump and I had Truenas on it. all the data is on it and is partitioned still with the pool. when I go to import it again, it says this. Can someone help? Am I able to just get the data off the drive at this point? Ive seen other people discussing this issue, is there any luck out there?

Thank you for the help

Im going to see if it is recognized by windows and at least try to get the data from a live enviroment then ill reformat it

Don’t subject any ZFS disk to Microsoft Windows. There have been known cases of problems with Microsoft Windows doing odd things to ZFS disks.

Are you really using Core?
And not SCALE / Community Edition?

Next, we will want the output of sudo zpool import, in CODE tags.

Please confirm that you are using Proxmox as a Hypervisor and using TrueNAS as a Virtual Machine under Proxmox.

As for your data, ZFS was specifically written to survive crashes and power losses, without loosing existing data.

Welcome to TrueNAS
Last login: Sun Feb 15 21:18:57 PST 2026 on pts/2
truenas_admin@truenas[~]$ sudo zpool import -f MAIN-STORAGE
[sudo] password for truenas_admin: 
Sorry, try again.
[sudo] password for truenas_admin: 
cannot import 'MAIN-STORAGE': I/O error
        Destroy and re-create the pool from
        a backup source.
truenas_admin@truenas[~]$ sudo zpool import MAIN-STORAGE   
cannot import 'MAIN-STORAGE': pool was previously in use from another system.
Last accessed by truenas (hostid=54f4e0a2) at Sun Feb 15 13:32:14 2026
The pool can be imported, use 'zpool import -f' to import the pool.
truenas_admin@truenas[~]$ sudo zpool import -f          
  pool: MAIN-STORAGE
    id: 5357766656850366255
 state: FAULTED
status: The pool was last accessed by another system.
action: The pool cannot be imported due to damaged devices or data.
        The pool may be active on another system, but can be imported using
        the '-f' flag.
   see: https://openzfs.github.io/openzfs-docs/msg/ZFS-8000-EY
config:

        MAIN-STORAGE                            FAULTED  corrupted data
          5b831019-0fd3-4572-97f4-5b45c11b9402  ONLINE

This is what i get when I try to mount, also ill look into switching to a different version. So, if i shouldn’t use a windows environment, what is my best bet of at least recovering data possibly?

Yes, Im running a proxmox with the hdd passthrough

The ZFS pool “MAIN-STORAGE” is a single disk pool, which means there is no external redundancy. That means any corruption could be fatal.

TrueNAS should be able to recover the data, if possible.

Using Proxmox HDD pass through to a TrueNAS VM is NOT enough. For reliable operation, you have to pass the entire storage controller through to the TrueNAS VM. Then, you have to blacklist the storage controller on the Proxmox side to prevent Proxmox from ever looking at any attached disk to that storage controller.

Without using proper storage controller pass through and blacklisting, the odds of recovery are greatly reduced. ZFS was designed for direct access to the disks, not through a Hypervisor virtualization.

Naturally, implementing it after the corruption has occurred may be too late. But, this may prevent further corruption.

There are steps that can be done to attempt extreme recovery. For example, you could try the following command. It will attempt to import the pool by temporarily throwing out the more recent writes, (which probably contain the corruption). Note that we do so Read Only, just in case you want the more recent writes.

sudo zpool import -fFX -o readonly=on -R /mnt MAIN-STORAGE
2 Likes

I will try this and let you know, thank you

it is saying one or more device is currently unavailable. I can try installing TrueNas Directly on my homelab pc and read it from there?

Let me re-read this and I will come back after I setup the proxmox settings, if anything, i will do a fresh install of truenas directly and see if i can import that way. If there is anything else you think I should try shoot away, thanks again!

This type of problem is somewhat beyond me. Hopefully someone else will be able to help.