diff options
| author | Craig Jennings <c@cjennings.net> | 2026-01-22 23:21:18 -0600 |
|---|---|---|
| committer | Craig Jennings <c@cjennings.net> | 2026-01-22 23:21:18 -0600 |
| commit | 3e70ba84c15d69f48f436239e7f0ac9628464c55 (patch) | |
| tree | 7850e50ac618a661a9c9d0b09b531a89d0696071 /docs/session-context.org | |
| parent | 8c5f6c19dbcf744dd239f23146b0a6d4cb8070d9 (diff) | |
| download | archangel-3e70ba84c15d69f48f436239e7f0ac9628464c55.tar.gz archangel-3e70ba84c15d69f48f436239e7f0ac9628464c55.zip | |
Replace GRUB with ZFSBootMenu bootloader
This is a major change that replaces the GRUB bootloader with ZFSBootMenu,
providing native ZFS boot environment support.
Key changes:
- EFI partition reduced from 1GB to 512MB (only holds ZFSBootMenu)
- EFI now mounts at /efi instead of /boot
- Kernel and initramfs live on ZFS root (enables snapshot boot with matching kernel)
- Downloads pre-built ZFSBootMenu EFI binary from get.zfsbootmenu.org
- Creates EFI boot entries for all disks in multi-disk configurations
- Syncs ZFSBootMenu to all EFI partitions for redundancy
- Sets org.zfsbootmenu:commandline on zroot/ROOT for kernel cmdline inheritance
- Sets bootfs pool property for default boot environment
- AMD GPU workarounds (pg_mask, cwsr_enable) added to kernel cmdline when AMD detected
Deleted GRUB snapshot tooling (no longer needed):
- custom/grub-zfs-snap
- custom/40_zfs_snapshots
- custom/zz-grub-zfs-snap.hook
- custom/zfs-snap-prune
Updated helper scripts:
- zfssnapshot: removed grub-zfs-snap call, shows ZFSBootMenu tip
- zfsrollback: removed grub-zfs-snap call, notes auto-detection
Tested configurations:
- Single disk installation
- 2-disk mirror (mirror-0)
- 3-disk RAIDZ1 (raidz1-0)
- All boot correctly with ZFSBootMenu
Diffstat (limited to 'docs/session-context.org')
| -rw-r--r-- | docs/session-context.org | 52 |
1 files changed, 52 insertions, 0 deletions
diff --git a/docs/session-context.org b/docs/session-context.org new file mode 100644 index 0000000..2cf29bd --- /dev/null +++ b/docs/session-context.org @@ -0,0 +1,52 @@ +#+TITLE: Session Context +#+DATE: 2026-01-22 + +* Session: Thursday 2026-01-22 21:37 CST - ongoing + +** Current Task +Creating implementation plan to replace GRUB with ZFSBootMenu in install-archzfs. + +** Status +Plan written and updated with research findings. + +** Work Completed This Session + +1. Read protocols.org and NOTES.org +2. Ran session startup workflow +3. Found inbox item: instructions.txt (AMD GPU fix guide from earlier session) +4. Created detailed ZFSBootMenu implementation plan +5. Researched 5 comparable open-source projects: + - eoli3n/archiso-zfs + arch-config + - PandaScience/arch-on-zfs + - sandreas/zarch + - danboid/ALEZ + - danfossi/Arch-ZFS-Root-Installation-Script +6. Updated plan with best practices from research + +** Key Corrections from Research + +CRITICAL: The original plan incorrectly proposed creating a /boot dataset. +All researched projects agree: /boot must be a DIRECTORY inside ROOT/default, +NOT a separate ZFS dataset. This ensures snapshots include the kernel. + +Other improvements adopted: +- Set org.zfsbootmenu:commandline on ROOT parent (not ROOT/default) for inheritance +- Add ZFSBootMenu EFI parameters: zbm.timeout, zbm.prefer, zbm.import_policy +- Copy hostid to installed system +- Set bootfs pool property + +** Files Created/Modified + +- PLAN-zfsbootmenu-implementation.org - Main implementation plan (project root) +- docs/session-context.org - This file + +** Inbox Status + +1 item pending: instructions.txt (AMD GPU fix guide) +- Recommendation: file to docs/2026-01-22-ratio-amd-gpu-freeze-fix-instructions.org + +** Next Steps + +1. File inbox item (instructions.txt) +2. Decide whether to implement the ZFSBootMenu plan now or later +3. If implementing: create git branch, follow plan steps, test |
