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/zedenvTo 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/activateEnter the repos and install.
cd pyzfscmds
python setup.py install
cd ../zedenv
python setup.py installEnter the packaging directory in the repos run make, pyzfscmds must
be installed first.
cd pyzfscmds/packaging
make
cd ../../zedenv/packaging
makezedenv 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-0This will make it the Boot Environment used on reboot.
$ zedenv listName 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)