Skim hasn't seen a release since February 2021. It's starting to miss a
few features that we come to expect in fzf. Additionally, it has a few
rendering bugs / keybind issues that aren't easily resolved.
Removing skim support ends support for any platform not supported by Go,
but ZFS usage on those platforms isn't really common.
With all debug logging now running through the ztrace script, zlogtail
has been heavily simplified. It's now exclusively geared towards showing
warnning and error logs generated by the zwarn() and zerror() functions.
Nvidia is poorly documented and this could be a big roadblock for many
to use zfsbootmenu, unless if they beg for help on the issues page or
look deep. So I'm gonna add a section for Nvidia based on the advice I
got from @ahesford.
Co-authored-by: RoundDuckKira <71993575+RoundDuckKira@users.noreply.github.com>
Co-authored-by: Andrew J. Hesford <ajh@sideband.org>
Closes: #141Closes: #142 [via git-merge-pr]
The historical pool import process relied on scraping the pool status
and attempting to import any pool that is marked as ONLINE. This process
fails for pools with feature flags enabled from a newer version of ZFS
than what is in the initramfs. The process has been reworked as follows:
* Rely on zpool to import every pool possible in read-only mode
* If any pool has unavailable feature flags, set a global flag
disabling read-write pool operations for that pool, and
then provide a warning indicating that ZFS in the initramfs
should be upgraded.
* If the preferred zpool could not be imported, warn and then
drop to a recovery shell.
Additionally, the read_write kernel command line option has been
removed, as this behavior conflicts with the requirement to import
pools read-only initially.
Closes#87
Co-authored-by: Andrew J. Hesford <ajh@sideband.org>
Co-authored-by: Zach Dykstra <dykstra.zachary@gmail.com>
fzf, while excellent, has limited support for older architectures due to
Go. skim is flag-compatible with fzf and supports more architectures.
Supporting this in ZFSBootMenu required the following changes:
- Setup a proper TTY; this is done by creating a stub pre-mount hook
that is sourced into the Dracut master shell. Required variables are
exported and then a new shell is exec'd that launches the master
bootmenu script.
- Export defaults for skim and fzf depending on which is found
- Work around a bug in skim where the preview height is off by -1
Co-Authored-by: Andrew J. Hesford <ajh@sideband.org>
Co-Authored-by: Zach Dykstra <dykstra.zachary@gmail.com>
Master documents reside in the `pod` subdirectory (except for
`generate-zbm.8`, which is inlined in `bin/generate-zbm` and may be
converted to man pages by running, from the repository root, the helper
`releng/pod2man.sh`. The `releng/tag-release.sh` helper will convert the
docs as part of the release process.
Co-authored-by: Zach Dykstra <dykstra.zachary@gmail.com>
Co-authored-by: Andrew J. Hesford <ajh@sideband.org>
Co-authored-by: Érico Rolim <erico.erc@gmail.com>
Conversion from INI to YAML is no longer fully automatic, but is instead
accomplished by specifying --migrate with an optional path to the INI
file to migrate. Combined with --config, this allows totally
customizable migration sources and targets.
generate-zbm always terminates immediately after attempted migration,
with the exit code indicating success (zero) or failure (nonzero).
Closes#65
- Convert existing INI to YAML if the former exists and the latter doesn't
- In versioned images, increment revision number to distinguish multiple
images with the same version
- Prune versioned images more intelligently: save the latest N revisions of the
current image version, along with the last revision of each of the latest N
prior image versions, where N is a configuration parameter.
- Support string interpolation in references to Kernel.Version (--kver, the
input kernel version) and Global.Version (--version, the output ZBM version)
- Add support --cmdline argument to override Kernel.CommandLine
- Improve defaults in proposed YAML config
Closes#64.
Co-authored-by: Zach Dykstra <dykstra.zachary@gmail.com>
Co-authored-by: Andrew J. Hesford <ajh@sideband.org>
Co-authored-by: Érico Rolim <erico.erc@gmail.com>
The options "Path", "Version" and "Prefix" in the "[Kernel]" section of
the configuration file now provide respective defaults for the
"--kernel", "--kernel_version" and "--kernel_prefix" command-line args.
The kernel command line for Arch Linux is supposed to take the form
`zfs=<dataset>` instead of `root=zfs=<dataset>`. The dracut module now
generalizes `org.zfsbootmenu:rootprefix` so the `root=` prefix is not
automatically added, making custom or distribution-specific behavior
more adaptable.
Also, Arch Linux refuses to boot with `mountpoint=legacy` set on the BE;
README.md now notes this restriction.
If a BE has mountpoint=/, setting org.zfsbootmenu:active=off will hide
the BE from the boot menu; all other values will cause it to be shown.
Conversely, if a BE has mountpoint=legacy, setting
org.zfsbootmenu:active=on will cause the BE to be shown in the boot
menu; all other values will prevent its display.