Resource icon

Move jails to another pool

Joined
Jan 27, 2020
Messages
577
mistermanko submitted a new resource:

Move jails to another pool - How to switch jail pools in a few simple steps.

Made this a resource, as this has helped me a couple of times and is simple enough for inexperienced users to succeed.

I'd like to add a step-by-step guide that help me to do that. I it found over at lawrencesystems.com

I wanted to move jails from bluePool to ssdPool



  • logged out from the UI (don’t know if it played a part, thought to be safe)
  • iocage stop ALL
  • zfs unmount -f bluePool/iocage
  • zfs snapshot -r bluePool/iocage@migration...

Read more about this resource...
 
Joined
Jan 27, 2020
Messages
577
@moderators please move this into the according truenas section. The ressource template for "jails and bhyve" is still attached to the legacy forums it seems.
 

joeschmuck

Old Man
Moderator
Joined
May 28, 2011
Messages
10,994
Nicely written instructions. It looks too easy to actually work :wink:
Moved hopefully to a more appropriate area.
 
Last edited:

diskdiddler

Wizard
Joined
Jul 9, 2014
Messages
2,377
Unfortunately this is not slid for all instances, followed this to the letter and it's failed on the iocage clean command.

root@truenas[/mnt/SSD1/iocage/images]# iocage activate BKUP1
Traceback (most recent call last):
File "/usr/local/lib/python3.9/site-packages/git/__init__.py", line 87, in <module>
refresh()
File "/usr/local/lib/python3.9/site-packages/git/__init__.py", line 76, in refresh
if not Git.refresh(path=path):
File "/usr/local/lib/python3.9/site-packages/git/cmd.py", line 277, in refresh
cls().version()
File "/usr/local/lib/python3.9/site-packages/git/cmd.py", line 638, in <lambda>
return lambda *args, **kwargs: self._call_process(name, *args, **kwargs)
File "/usr/local/lib/python3.9/site-packages/git/cmd.py", line 1183, in _call_process
return self.execute(call, **exec_kwargs)
File "/usr/local/lib/python3.9/site-packages/git/cmd.py", line 836, in execute
cwd = self._working_dir or os.getcwd() # type: Union[None, str]
NotADirectoryError: [Errno 20] Not a directory

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

Traceback (most recent call last):
File "/usr/local/bin/iocage", line 6, in <module>
from iocage_cli import cli
File "/usr/local/lib/python3.9/site-packages/iocage_cli/__init__.py", line 38, in <module>
import iocage_lib.ioc_check as ioc_check
File "/usr/local/lib/python3.9/site-packages/iocage_lib/ioc_check.py", line 30, in <module>
import iocage_lib.ioc_common
File "/usr/local/lib/python3.9/site-packages/iocage_lib/ioc_common.py", line 46, in <module>
import iocage_lib.ioc_exec
File "/usr/local/lib/python3.9/site-packages/iocage_lib/ioc_exec.py", line 28, in <module>
import iocage_lib.ioc_json
File "/usr/local/lib/python3.9/site-packages/iocage_lib/ioc_json.py", line 39, in <module>
import iocage_lib.ioc_create
File "/usr/local/lib/python3.9/site-packages/iocage_lib/ioc_create.py", line 35, in <module>
import iocage_lib.ioc_fstab
File "/usr/local/lib/python3.9/site-packages/iocage_lib/ioc_fstab.py", line 35, in <module>
import iocage_lib.ioc_list
File "/usr/local/lib/python3.9/site-packages/iocage_lib/ioc_list.py", line 33, in <module>
import iocage_lib.ioc_plugin
File "/usr/local/lib/python3.9/site-packages/iocage_lib/ioc_plugin.py", line 33, in <module>
import git
File "/usr/local/lib/python3.9/site-packages/git/__init__.py", line 89, in <module>
raise ImportError('Failed to initialize: {0}'.format(exc)) from exc
ImportError: Failed to initialize: [Errno 20] Not a directory
root@truenas[/mnt/SSD1/iocage/images]# iocage clean -a
Traceback (most recent call last):
File "/usr/local/lib/python3.9/site-packages/git/__init__.py", line 87, in <module>
refresh()
File "/usr/local/lib/python3.9/site-packages/git/__init__.py", line 76, in refresh
if not Git.refresh(path=path):
File "/usr/local/lib/python3.9/site-packages/git/cmd.py", line 277, in refresh
cls().version()
File "/usr/local/lib/python3.9/site-packages/git/cmd.py", line 638, in <lambda>
return lambda *args, **kwargs: self._call_process(name, *args, **kwargs)
File "/usr/local/lib/python3.9/site-packages/git/cmd.py", line 1183, in _call_process
return self.execute(call, **exec_kwargs)
File "/usr/local/lib/python3.9/site-packages/git/cmd.py", line 836, in execute
cwd = self._working_dir or os.getcwd() # type: Union[None, str]
NotADirectoryError: [Errno 20] Not a directory

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

Traceback (most recent call last):
File "/usr/local/bin/iocage", line 6, in <module>
from iocage_cli import cli
File "/usr/local/lib/python3.9/site-packages/iocage_cli/__init__.py", line 38, in <module>
import iocage_lib.ioc_check as ioc_check
File "/usr/local/lib/python3.9/site-packages/iocage_lib/ioc_check.py", line 30, in <module>
import iocage_lib.ioc_common
File "/usr/local/lib/python3.9/site-packages/iocage_lib/ioc_common.py", line 46, in <module>
import iocage_lib.ioc_exec
File "/usr/local/lib/python3.9/site-packages/iocage_lib/ioc_exec.py", line 28, in <module>
import iocage_lib.ioc_json
File "/usr/local/lib/python3.9/site-packages/iocage_lib/ioc_json.py", line 39, in <module>
import iocage_lib.ioc_create
File "/usr/local/lib/python3.9/site-packages/iocage_lib/ioc_create.py", line 35, in <module>
import iocage_lib.ioc_fstab
File "/usr/local/lib/python3.9/site-packages/iocage_lib/ioc_fstab.py", line 35, in <module>
import iocage_lib.ioc_list
File "/usr/local/lib/python3.9/site-packages/iocage_lib/ioc_list.py", line 33, in <module>
import iocage_lib.ioc_plugin
File "/usr/local/lib/python3.9/site-packages/iocage_lib/ioc_plugin.py", line 33, in <module>
import git
File "/usr/local/lib/python3.9/site-packages/git/__init__.py", line 89, in <module>
raise ImportError('Failed to initialize: {0}'.format(exc)) from exc
ImportError: Failed to initialize: [Errno 20] Not a directory

I ran ZFS destroy on the old one anyhow, this worked.
Clearly can't activate the new one though.

root@truenas[/mnt/SSD1/iocage/images]# iocage activate BKUP1
Traceback (most recent call last):
File "/usr/local/lib/python3.9/site-packages/git/__init__.py", line 87, in <module>
refresh()
File "/usr/local/lib/python3.9/site-packages/git/__init__.py", line 76, in refresh
if not Git.refresh(path=path):
File "/usr/local/lib/python3.9/site-packages/git/cmd.py", line 277, in refresh
cls().version()
File "/usr/local/lib/python3.9/site-packages/git/cmd.py", line 638, in <lambda>
return lambda *args, **kwargs: self._call_process(name, *args, **kwargs)
File "/usr/local/lib/python3.9/site-packages/git/cmd.py", line 1183, in _call_process
return self.execute(call, **exec_kwargs)
File "/usr/local/lib/python3.9/site-packages/git/cmd.py", line 836, in execute
cwd = self._working_dir or os.getcwd() # type: Union[None, str]
NotADirectoryError: [Errno 20] Not a directory

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

Traceback (most recent call last):
File "/usr/local/bin/iocage", line 6, in <module>
from iocage_cli import cli
File "/usr/local/lib/python3.9/site-packages/iocage_cli/__init__.py", line 38, in <module>
import iocage_lib.ioc_check as ioc_check
File "/usr/local/lib/python3.9/site-packages/iocage_lib/ioc_check.py", line 30, in <module>
import iocage_lib.ioc_common
File "/usr/local/lib/python3.9/site-packages/iocage_lib/ioc_common.py", line 46, in <module>
import iocage_lib.ioc_exec
File "/usr/local/lib/python3.9/site-packages/iocage_lib/ioc_exec.py", line 28, in <module>
import iocage_lib.ioc_json
File "/usr/local/lib/python3.9/site-packages/iocage_lib/ioc_json.py", line 39, in <module>
import iocage_lib.ioc_create
File "/usr/local/lib/python3.9/site-packages/iocage_lib/ioc_create.py", line 35, in <module>
import iocage_lib.ioc_fstab
File "/usr/local/lib/python3.9/site-packages/iocage_lib/ioc_fstab.py", line 35, in <module>
import iocage_lib.ioc_list
File "/usr/local/lib/python3.9/site-packages/iocage_lib/ioc_list.py", line 33, in <module>
import iocage_lib.ioc_plugin
File "/usr/local/lib/python3.9/site-packages/iocage_lib/ioc_plugin.py", line 33, in <module>
import git
File "/usr/local/lib/python3.9/site-packages/git/__init__.py", line 89, in <module>
raise ImportError('Failed to initialize: {0}'.format(exc)) from exc
ImportError: Failed to initialize: [Errno 20] Not a directory


So I'm a bit boned for the time being until I google up a solution for this.
 

diskdiddler

Wizard
Joined
Jul 9, 2014
Messages
2,377
I found the command :
iocage fstab -e

This resulted in the following:

root@truenas[/usr/local/etc/rc.d]# iocage fstab -e
Creating SSD1/iocage
Creating SSD1/iocage/download
Creating SSD1/iocage/images
Creating SSD1/iocage/jails
Creating SSD1/iocage/log
Creating SSD1/iocage/releases
Creating SSD1/iocage/templates
Usage: iocage fstab [OPTIONS] JAIL [FSTAB_STRING]...
Try 'iocage fstab --help' for help.

Error: Missing argument 'JAIL'.

Re-activating iocage on the old storage location, why I don't know.
So clearly a file or process should be added at some point or edited, which would point it to the new location.
 
Top