Future development has been moved to zectl
ZFS boot environment manager
Documentation for the project can be found at readthedocs.
zedenv
is still experimental and should not be used on production systems.
zedenv
requires python 3.6+, pyzfscmds, and ZFS running as the root
filesystem.
The system should also be configured in the format:
${zpool}/${optional_datasets}/${boot_environment_root}/${root_dataset}
For example, zpool/ROOT/default
or zpool/sys/hostname/ROOT/default
.
zedenv
can be installed a few ways:
First, clone the git repos.
git clone https://github.com/johnramsden/pyzfscmds
git clone https://github.com/johnramsden/zedenv
To install without poluting your system, you can also create a directory somewhere
and install in a venv
, otherwise install to the system.
Optionally, create a venv
and activate.
python3.6 -m venv venv
. venv/bin/activate
Enter the repos and install.
cd pyzfscmds
python setup.py install
cd ../zedenv
python setup.py install
Enter the packaging
directory in the repos run make
, pyzfscmds
must
be installed first.
cd pyzfscmds/packaging
make
cd ../../zedenv/packaging
make
zedenv
can be used to manage boot environments using ZFS. If your system
is set up in a way compatible with boot environments, you can start using
them right away.
Create and activate a new Boot Environment.
$ zedenv create default-0
$ zedenv activate default-0
This will make it the Boot Environment used on reboot.
$ zedenv list
Name Active Mountpoint Creation
default N - Wed-May-23-23:48-2018
default-0 R / Thu-May-24-23:54-2018
This can be shown with a list, command. The boot environment currently being used will have a 'N' in the active column signifying the boot environment is being used now. An 'R' in the active column means this environment will be used on reboot.
Bootloader plugins are available for:
- Systemd-boot
- FreeBSD loader
- GRUB (via external plugin)