flawlessgr
Cadet
- Joined
- Dec 2, 2020
- Messages
- 4
After successfully importing an existing encrypted pool to new hardware, I cannot remove the passphrase or even use it for unlocking the pool.
I had a freenas system for 2 years now, recently updated to 11.2
The only pool was encrypted without passphrase. Recently I decided to move to new hardware and started reading the documentation for how to migrate the pool.
I had to set a passphrase to the encrypted pool or else I wouldn't be able to import it again. The detailed steps I took follow:
1. I set a passphrase, downloaded the encryption key, downloaded the recovery key
2. I saved the config including the Password Secret Seed
3. I disconnected the pool selecting only Confirm Export/Disconnect
4. I installed freenas 11.3 on a new server
5. I connected the 6 disks of the pool to the new server
6. Through GUI I imported the encrypted pool. When prompted I uploaded the encryption key and entered the passphrase. The import was successful. I immediately restored the config of the old system and the freenas rebooted to complete the process.
7. After rebooting I had to unlock the pool. When I entered the passphrase the unlock failed. I didn't keep the message. I tried to unlock the pool using the recovery key and was able to unlock it.
8. I tried to remove the passphrase but the operation failed and the detail message was:
Error: concurrent.futures.process._RemoteTraceback:
"""
Traceback (most recent call last):
File "/usr/local/lib/python3.7/concurrent/futures/process.py", line 239, in _process_worker
r = call_item.fn(*call_item.args, **call_item.kwargs)
File "/usr/local/lib/python3.7/site-packages/middlewared/worker.py", line 97, in main_worker
res = loop.run_until_complete(coro)
File "/usr/local/lib/python3.7/asyncio/base_events.py", line 587, in run_until_complete
return future.result()
File "/usr/local/lib/python3.7/site-packages/middlewared/worker.py", line 53, in _run
return await self._call(name, serviceobj, methodobj, params=args, job=job)
File "/usr/local/lib/python3.7/site-packages/middlewared/worker.py", line 45, in _call
return methodobj(*params)
File "/usr/local/lib/python3.7/site-packages/middlewared/worker.py", line 45, in _call
return methodobj(*params)
File "/usr/local/lib/python3.7/site-packages/middlewared/schema.py", line 965, in nf
return f(*args, **kwargs)
File "/usr/local/lib/python3.7/site-packages/middlewared/plugins/zfs.py", line 390, in import_pool
'Failed to mount datasets after importing "%s" pool: %s', name_or_guid, str(e), exc_info=True
File "libzfs.pyx", line 369, in libzfs.ZFS.__exit__
File "/usr/local/lib/python3.7/site-packages/middlewared/plugins/zfs.py", line 380, in import_pool
raise CallError(f'Pool {name_or_guid} not found.', errno.ENOENT)
middlewared.service_exception.CallError: [ENOENT] Pool 14733605188247631968 not found.
"""
The above exception was the direct cause of the following exception:
Traceback (most recent call last):
File "/usr/local/lib/python3.7/site-packages/middlewared/plugins/pool.py", line 1667, in unlock
'cachefile': ZPOOL_CACHE_FILE,
File "/usr/local/lib/python3.7/site-packages/middlewared/main.py", line 1141, in call
app=app, pipes=pipes, job_on_progress_cb=job_on_progress_cb, io_thread=True,
File "/usr/local/lib/python3.7/site-packages/middlewared/main.py", line 1081, in _call
return await self._call_worker(name, *args)
File "/usr/local/lib/python3.7/site-packages/middlewared/main.py", line 1101, in _call_worker
return await self.run_in_proc(main_worker, name, args, job)
File "/usr/local/lib/python3.7/site-packages/middlewared/main.py", line 1036, in run_in_proc
return await self.run_in_executor(self.__procpool, method, *args, **kwargs)
File "/usr/local/lib/python3.7/site-packages/middlewared/main.py", line 1010, in run_in_executor
return await loop.run_in_executor(pool, functools.partial(method, *args, **kwargs))
middlewared.service_exception.CallError: [ENOENT] Pool 14733605188247631968 not found.
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/usr/local/lib/python3.7/site-packages/middlewared/job.py", line 349, in run
await self.future
File "/usr/local/lib/python3.7/site-packages/middlewared/job.py", line 385, in __run_body
rv = await self.method(*([self] + args))
File "/usr/local/lib/python3.7/site-packages/middlewared/schema.py", line 961, in nf
return await f(*args, **kwargs)
File "/usr/local/lib/python3.7/site-packages/middlewared/plugins/pool.py", line 1679, in unlock
raise CallError(msg)
middlewared.service_exception.CallError: [EFAULT] Pool could not be imported: 6 devices failed to decrypt.
To avoid any wrong action that could destroy everything I left it as is and ask for your help.
Please explain what caused the error and how it can be resolved. At least it is not a disaster yet as I have a working system with an available pool.
Thank you in advance for any help.
New system info can be shared if needed, but I don't think is relevant to my problem.
I had a freenas system for 2 years now, recently updated to 11.2
The only pool was encrypted without passphrase. Recently I decided to move to new hardware and started reading the documentation for how to migrate the pool.
I had to set a passphrase to the encrypted pool or else I wouldn't be able to import it again. The detailed steps I took follow:
1. I set a passphrase, downloaded the encryption key, downloaded the recovery key
2. I saved the config including the Password Secret Seed
3. I disconnected the pool selecting only Confirm Export/Disconnect
4. I installed freenas 11.3 on a new server
5. I connected the 6 disks of the pool to the new server
6. Through GUI I imported the encrypted pool. When prompted I uploaded the encryption key and entered the passphrase. The import was successful. I immediately restored the config of the old system and the freenas rebooted to complete the process.
7. After rebooting I had to unlock the pool. When I entered the passphrase the unlock failed. I didn't keep the message. I tried to unlock the pool using the recovery key and was able to unlock it.
8. I tried to remove the passphrase but the operation failed and the detail message was:
Error: concurrent.futures.process._RemoteTraceback:
"""
Traceback (most recent call last):
File "/usr/local/lib/python3.7/concurrent/futures/process.py", line 239, in _process_worker
r = call_item.fn(*call_item.args, **call_item.kwargs)
File "/usr/local/lib/python3.7/site-packages/middlewared/worker.py", line 97, in main_worker
res = loop.run_until_complete(coro)
File "/usr/local/lib/python3.7/asyncio/base_events.py", line 587, in run_until_complete
return future.result()
File "/usr/local/lib/python3.7/site-packages/middlewared/worker.py", line 53, in _run
return await self._call(name, serviceobj, methodobj, params=args, job=job)
File "/usr/local/lib/python3.7/site-packages/middlewared/worker.py", line 45, in _call
return methodobj(*params)
File "/usr/local/lib/python3.7/site-packages/middlewared/worker.py", line 45, in _call
return methodobj(*params)
File "/usr/local/lib/python3.7/site-packages/middlewared/schema.py", line 965, in nf
return f(*args, **kwargs)
File "/usr/local/lib/python3.7/site-packages/middlewared/plugins/zfs.py", line 390, in import_pool
'Failed to mount datasets after importing "%s" pool: %s', name_or_guid, str(e), exc_info=True
File "libzfs.pyx", line 369, in libzfs.ZFS.__exit__
File "/usr/local/lib/python3.7/site-packages/middlewared/plugins/zfs.py", line 380, in import_pool
raise CallError(f'Pool {name_or_guid} not found.', errno.ENOENT)
middlewared.service_exception.CallError: [ENOENT] Pool 14733605188247631968 not found.
"""
The above exception was the direct cause of the following exception:
Traceback (most recent call last):
File "/usr/local/lib/python3.7/site-packages/middlewared/plugins/pool.py", line 1667, in unlock
'cachefile': ZPOOL_CACHE_FILE,
File "/usr/local/lib/python3.7/site-packages/middlewared/main.py", line 1141, in call
app=app, pipes=pipes, job_on_progress_cb=job_on_progress_cb, io_thread=True,
File "/usr/local/lib/python3.7/site-packages/middlewared/main.py", line 1081, in _call
return await self._call_worker(name, *args)
File "/usr/local/lib/python3.7/site-packages/middlewared/main.py", line 1101, in _call_worker
return await self.run_in_proc(main_worker, name, args, job)
File "/usr/local/lib/python3.7/site-packages/middlewared/main.py", line 1036, in run_in_proc
return await self.run_in_executor(self.__procpool, method, *args, **kwargs)
File "/usr/local/lib/python3.7/site-packages/middlewared/main.py", line 1010, in run_in_executor
return await loop.run_in_executor(pool, functools.partial(method, *args, **kwargs))
middlewared.service_exception.CallError: [ENOENT] Pool 14733605188247631968 not found.
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/usr/local/lib/python3.7/site-packages/middlewared/job.py", line 349, in run
await self.future
File "/usr/local/lib/python3.7/site-packages/middlewared/job.py", line 385, in __run_body
rv = await self.method(*([self] + args))
File "/usr/local/lib/python3.7/site-packages/middlewared/schema.py", line 961, in nf
return await f(*args, **kwargs)
File "/usr/local/lib/python3.7/site-packages/middlewared/plugins/pool.py", line 1679, in unlock
raise CallError(msg)
middlewared.service_exception.CallError: [EFAULT] Pool could not be imported: 6 devices failed to decrypt.
To avoid any wrong action that could destroy everything I left it as is and ask for your help.
Please explain what caused the error and how it can be resolved. At least it is not a disaster yet as I have a working system with an available pool.
Thank you in advance for any help.
New system info can be shared if needed, but I don't think is relevant to my problem.