<feed xmlns='http://www.w3.org/2005/Atom'>
<title>archangel/custom/grub-zfs-snap, branch main</title>
<subtitle>Arch Linux installer ISO — ZFS-on-root or BTRFS, doubles as rescue disk
</subtitle>
<id>https://git.cjennings.net/archangel/atom?h=main</id>
<link rel='self' href='https://git.cjennings.net/archangel/atom?h=main'/>
<link rel='alternate' type='text/html' href='https://git.cjennings.net/archangel/'/>
<updated>2026-01-23T05:21:18+00:00</updated>
<entry>
<title>Replace GRUB with ZFSBootMenu bootloader</title>
<updated>2026-01-23T05:21:18+00:00</updated>
<author>
<name>Craig Jennings</name>
<email>c@cjennings.net</email>
</author>
<published>2026-01-23T05:21:18+00:00</published>
<link rel='alternate' type='text/html' href='https://git.cjennings.net/archangel/commit/?id=3e70ba84c15d69f48f436239e7f0ac9628464c55'/>
<id>urn:sha1:3e70ba84c15d69f48f436239e7f0ac9628464c55</id>
<content type='text'>
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
</content>
</entry>
<entry>
<title>Fix grub-zfs-snap command substitution syntax error</title>
<updated>2026-01-19T15:11:00+00:00</updated>
<author>
<name>Craig Jennings</name>
<email>c@cjennings.net</email>
</author>
<published>2026-01-19T15:11:00+00:00</published>
<link rel='alternate' type='text/html' href='https://git.cjennings.net/archangel/commit/?id=23f25246c8470866c2461a5bd8e6c720280a1996'/>
<id>urn:sha1:23f25246c8470866c2461a5bd8e6c720280a1996</id>
<content type='text'>
Remove backslash escape from grub-probe command substitution so it
executes at config generation time instead of writing the literal
string "$(grub-probe ...)" into grub.cfg.

GRUB's scripting language doesn't support bash-style $() command
substitution, causing syntax errors on boot.
</content>
</entry>
<entry>
<title>Add grub-zfs-snap for ZFS snapshot boot entries</title>
<updated>2026-01-18T16:55:18+00:00</updated>
<author>
<name>Craig Jennings</name>
<email>c@cjennings.net</email>
</author>
<published>2026-01-18T16:55:18+00:00</published>
<link rel='alternate' type='text/html' href='https://git.cjennings.net/archangel/commit/?id=6505511f2e6b43a37570fc840f6d2851c7cc170c'/>
<id>urn:sha1:6505511f2e6b43a37570fc840f6d2851c7cc170c</id>
<content type='text'>
Add ability to boot into ZFS snapshots directly from GRUB menu:
- grub-zfs-snap: generates GRUB submenu entries for recent snapshots
- 40_zfs_snapshots: GRUB generator script installed to /etc/grub.d/
- zz-grub-zfs-snap.hook: pacman hook for automatic GRUB regeneration

The GRUB menu automatically updates after kernel/ZFS package changes.
Up to 10 most recent snapshots appear in a "ZFS Snapshots" submenu.
</content>
</entry>
</feed>
