Skip to content

Commit b743893

Browse files
committed
contrib/README.md: document contrib scripts
1 parent a3f15ed commit b743893

File tree

1 file changed

+54
-0
lines changed

1 file changed

+54
-0
lines changed

contrib/README.md

Lines changed: 54 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,54 @@
1+
# User-Contributed Scripts for ZFSBootMenu
2+
3+
The `contrib` directory contains an assorted collection of helper scripts that
4+
augment core functionality. These scripts are reviewed and approved by members
5+
of the core team, but not all are thoroughly tested. Some have not been tested
6+
at all. User-contributed scripts are intended as starting points for customized
7+
[setup hooks](../docs/pod/zfsbootmenu.7.pod) that can be deployed within the
8+
ZFSBootMenu environment or for [`generate-zbm`
9+
hooks](../docs/pod/generate-zbm.5.pod) that alter the process of creating
10+
ZFSBootMenu images.
11+
12+
## Script Directory
13+
14+
Brief descriptions of contributed scripts appear below for convenience. Please
15+
review the scripts themselves for more thorough descriptions of their use.
16+
17+
- `console-init.sh` - In some configurations, the dracut event loop that
18+
configures the ZFSBootMenu environment will fail to initialize the console
19+
with desired font and keymap settings. This script can be added as an "early
20+
setup" hook to force console initialization.
21+
22+
- `esp-sync.sh` - This script can run as a "post-image" hook to `generate-zbm`
23+
to synchronize the contents of one EFI system partition with others, providing
24+
tolerance against disk failures.
25+
26+
- `keycache.sh` - This early-setup hook provided a simple means for run-time
27+
caching of ZFS encryption keys. Although the script has been retained for
28+
historical reference, use of the `org.zfsbootmenu:keysource` property is now
29+
the preferred method to control caching of filesystem credentials.
30+
31+
- `luks-unlock.sh` - This is a proof of concept for storing ZFS
32+
native-encryption keys on a LUKS-encrypted volume. When installed as an
33+
early-setup hook, this facilitates, *e.g.*, multiple-slot keys for ZFS pools
34+
that use native encryption.
35+
36+
- `remote-ssh-build.sh` - This is a standalone script intended to wrap the
37+
`zbm-builder.sh` image-builder script, incorporating a dropbear SSH server,
38+
host keys and an `authorized_keys` file that permit remote access and pool
39+
unlocking within a ZFSBootMenu image.
40+
41+
- `snapshot-teardown.sh` - This "teardown" hook will capture a pre-boot
42+
snapshot of the boot environment that has been selected for booting.
43+
44+
- `syslinux-update.sh` - This script can run as a post-image hook for
45+
`generate-zbm` to construct a configuration file for syslinux. This provides
46+
an extension to basic functionality that was originally built into
47+
`generate-zbm` itself.
48+
49+
- `xhci-teardown.sh` - ZFSBootMenu relies on `kexec` to launch kernels
50+
within boot environments. Some hardware, including certain XHCI USB
51+
controllers, cannot be properly re-initialized after `kexec` jumps into the
52+
new kernel. This teardown hook unbinds all detected XHCI controllers from the
53+
ZFSBootMenu kernel before jumping into the new kernel, allowing devices to be
54+
properly initialized.

0 commit comments

Comments
 (0)