zfsbootmenu/contrib
Zach Dykstra abf96499a5 zfsbootmenu: rename UI library, normalize imports
Rename zfsbootmenu-lib to zfsbootmenu-ui-lib to more accurately
represent which functions are contained therein.

Additionally, normalize how libraries are sourced.
2023-09-20 13:05:02 -05:00
..
20-console-autosize.sh contrib/: expand font setting capabilities 2023-01-30 13:59:39 -06:00
README.md contrib/README.md: sync with contrib contents 2023-03-29 22:28:48 -04:00
esp-sync.sh Add minimal documentation to ESP sync hook 2022-03-11 08:53:50 -06:00
keycache.sh zfsbootmenu: rename UI library, normalize imports 2023-09-20 13:05:02 -05:00
luks-unlock.sh Make the emergency shell slightly fancy 2022-03-04 22:06:21 -06:00
remote-ssh-build.sh contrib/remote-ssh-build.sh: Add pool key to system mkinitcpio config 2023-07-26 09:36:54 -04:00
snapshot-teardown.sh Add a contrib script to snapshot the BE prior to boot 2022-06-28 10:46:00 -05:00
syslinux-update.sh generate-zbm: deprecate syslinux support 2022-11-02 12:41:46 -04:00
zbm-sign.pl contrib/zbm-sign.pl: add hook to sign ZBM EFI images for Secure Boot 2023-03-29 22:22:28 -04:00

README.md

User-Contributed Scripts for ZFSBootMenu

The contrib directory contains an assorted collection of helper scripts that augment core functionality. These scripts are reviewed and approved by members of the core team, but not all are thoroughly tested. Some have not been tested at all. User-contributed scripts are intended as starting points for customized setup hooks that can be deployed within the ZFSBootMenu environment or for generate-zbm hooks that alter the process of creating ZFSBootMenu images.

Script Directory

Brief descriptions of contributed scripts appear below for convenience. Please review the scripts themselves for more thorough descriptions of their use.

  • 10-console-init.sh - In some configurations, the dracut event loop that configures the ZFSBootMenu environment will fail to initialize the console with desired font and keymap settings. This script can be added as an "early setup" hook to force console initialization.

  • 20-console-autosize.sh - This early-setup hook will run through a set of fonts, selecting the largest font that guarantees a console with at least 100 columns. This should ensure a usable default font even on high-DPI displays.

  • esp-sync.sh - This script can run as a "post-image" hook to generate-zbm to synchronize the contents of one EFI system partition with others, providing tolerance against disk failures.

  • keycache.sh - This early-setup hook provided a simple means for run-time caching of ZFS encryption keys. Although the script has been retained for historical reference, use of the org.zfsbootmenu:keysource property is now the preferred method to control caching of filesystem credentials.

  • luks-unlock.sh - This is a proof of concept for storing ZFS native-encryption keys on a LUKS-encrypted volume. When installed as an early-setup hook, this facilitates, e.g., multiple-slot keys for ZFS pools that use native encryption.

  • remote-ssh-build.sh - This is a standalone script intended to wrap the zbm-builder.sh image-builder script, incorporating a dropbear SSH server, host keys and an authorized_keys file that permit remote access and pool unlocking within a ZFSBootMenu image.

  • snapshot-teardown.sh - This "teardown" hook will capture a pre-boot snapshot of the boot environment that has been selected for booting.

  • syslinux-update.sh - This script can run as a post-image hook for generate-zbm to construct a configuration file for syslinux. This provides an extension to basic functionality that was originally built into generate-zbm itself.

  • xhci-teardown.sh - ZFSBootMenu relies on kexec to launch kernels within boot environments. Some hardware, including certain XHCI USB controllers, cannot be properly re-initialized after kexec jumps into the new kernel. This teardown hook unbinds all detected XHCI controllers from the ZFSBootMenu kernel before jumping into the new kernel, allowing devices to be properly initialized.

  • zbm-sign.pl - A Perl script, suitable for use as a generate-zbm post-run hook, that will sign ZFSBootMenu EFI images for use with Secure Boot.