Files
indiekit-blog/content/notes/bed63.md
svemagie 7f2f770752
Some checks failed
Build & Deploy / build-and-deploy (push) Has been cancelled
update note post
2026-04-01 16:01:45 +02:00

2.0 KiB
Raw Permalink Blame History

date, category, aiTextLevel, syndication, updated, mpUrl, permalink
date category aiTextLevel syndication updated mpUrl permalink
2026-04-01T13:59:14.462Z bsd/zfs 0
https://blog.giersig.eu/notes/bed63/
2026-04-01T14:01:45.287Z https://blog.giersig.eu/notes/bed63/ /notes/bed63/

The beauty of ZFS! Ive got some extra space, so Im moving some large jails there, where they can live happily ever after.

Step 1 - Stop both jails.

Step 2 - Create parent datasets on new pool "store":

zfs create -o mountpoint=none store/bastille
zfs create -o mountpoint=none store/bastille/jails

Step 3 - Snapshot both jail datasets:

zfs snapshot -r zroot/bastille/jails/audio@migrate
zfs snapshot -r zroot/bastille/jails/cloud@migrate

Step 4 - Transfer to "store":

zfs send -R zroot/bastille/jails/audio@migrate | zfs recv -o mountpoint=none store/bastille/jails/audio
zfs send -R zroot/bastille/jails/cloud@migrate | zfs recv -o mountpoint=none store/bastille/jails/cloud

Step 5 - Unmount old datasets and disable auto-mount:

zfs unmount -f zroot/bastille/jails/audio
zfs unmount -f zroot/bastille/jails/cloud
zfs set canmount=noauto zroot/bastille/jails/audio
zfs set canmount=noauto zroot/bastille/jails/audio/root
zfs set canmount=noauto zroot/bastille/jails/cloud
zfs set canmount=noauto zroot/bastille/jails/cloud/root

Step 6 - Set mountpoints on new datasets (children inherit):

zfs set mountpoint=/usr/local/bastille/jails/audio store/bastille/jails/audio
zfs set mountpoint=/usr/local/bastille/jails/cloud store/bastille/jails/cloud

Step 7 - Mount new datasets:

zfs mount store/bastille/jails/audio
zfs mount store/bastille/jails/audio/root
zfs mount store/bastille/jails/cloud
zfs mount store/bastille/jails/cloud/root

Step 8 - Quick sanity check:

ls /usr/local/bastille/jails/audio/root/srv/funkwhale/
ls /usr/local/bastille/jails/cloud/root/usr/local/www/cloud/

Step 9 - destroy the old datasets:

zfs destroy -r zroot/bastille/jails/audio
zfs destroy -r zroot/bastille/jails/cloud