Guide and reference

ZFS

pālana records ZFS datasets and mountpoints as host facts. Those facts affect file-move classification and provide a dataset tree.

Filesystem boundaries#

A filled drive mark identifies a dataset mountpoint, and a hollow mark identifies another filesystem boundary. A move that crosses one of these boundaries requires data transfer. A directory merge also requires copy and verification, including when both paths are on one dataset.

Dataset tree#

Z changes the focused remote pane between files and its dataset tree. Mounted datasets can be opened at their mountpoints. Unmounted, legacy, and unavailable mount states remain visible with their state labels.

The available mutation keys create, destroy, or rename datasets; create, destroy, or roll back snapshots; set or inherit mountpoints; and mount or unmount. Each mutation composes a plan with a postcondition command that checks the requested state.

Fresh topology#

ZFS planning re-reads topology before composing a mutation. The plan records the relevant dataset identity, mountpoint, mounted state, and property source. Enactment re-reads those facts and refuses when they changed or became unavailable.

Completion refreshes both panes on the affected host and probes its topology again. The field cache is updated with those new facts.

Destructive operations#

Dataset destroy requires the word destroy by default, and the setting can disable that typed confirmation. Recursive destroy and rollback options state which children or newer snapshots they remove. Pool-root destroy is refused.

Dataset transfer#

A whole-dataset transfer can use a recursive snapshot followed by zfs send -R and zfs receive -u. The receive uses -u to leave the destination unmounted, which avoids an implicit mount requiring root on Linux.

Before cleanup or source destruction, pālana checks that the requested destination dataset exists. File moves use rsync source removal and a final remaining-source check when they cannot use an immediate mv; a tar-only file-move route is refused.

Mount permissions#

Delegated ZFS permissions cover ordinary dataset and snapshot operations. Linux mount and unmount commands use sudo -n and require the narrow passwordless sudo rule described in The mount grant.