<feed xmlns='http://www.w3.org/2005/Atom'>
<title>archangel/custom/lib, branch v0.8</title>
<subtitle>Arch Linux installer ISO — ZFS-on-root or BTRFS, doubles as rescue disk
</subtitle>
<id>https://git.cjennings.net/archangel/atom?h=v0.8</id>
<link rel='self' href='https://git.cjennings.net/archangel/atom?h=v0.8'/>
<link rel='alternate' type='text/html' href='https://git.cjennings.net/archangel/'/>
<updated>2026-02-23T17:54:25+00:00</updated>
<entry>
<title>refactor: rename custom/ to installer/ for clarity</title>
<updated>2026-02-23T17:54:25+00:00</updated>
<author>
<name>Craig Jennings</name>
<email>c@cjennings.net</email>
</author>
<published>2026-02-23T17:54:25+00:00</published>
<link rel='alternate' type='text/html' href='https://git.cjennings.net/archangel/commit/?id=6631521d9f45b73f9b4df76db9148d82af8d57b9'/>
<id>urn:sha1:6631521d9f45b73f9b4df76db9148d82af8d57b9</id>
<content type='text'>
The custom/ directory name was an archiso implementation detail. Renamed
to installer/ which clearly communicates that this directory contains the
installer scripts and utilities that ship on the ISO.

Updated all references in build.sh, Makefile, test-install.sh, and README.
</content>
</entry>
<entry>
<title>fix: support multi-disk LUKS and fix cryptkey format for btrfs</title>
<updated>2026-02-23T16:31:01+00:00</updated>
<author>
<name>Craig Jennings</name>
<email>c@cjennings.net</email>
</author>
<published>2026-02-23T16:31:01+00:00</published>
<link rel='alternate' type='text/html' href='https://git.cjennings.net/archangel/commit/?id=29f464638ab4342d00459d079e93f873962e5409'/>
<id>urn:sha1:29f464638ab4342d00459d079e93f873962e5409</id>
<content type='text'>
- Fix cryptkey parameter format: use rootfs: prefix so the encrypt hook
  finds the keyfile embedded in the initramfs (was treating bare path as
  a device name)
- Switch multi-disk LUKS to sd-encrypt hook which reads crypttab.initramfs
  to open ALL LUKS containers (the traditional encrypt hook only supports
  a single cryptdevice)
- Create crypttab.initramfs during LUKS initramfs setup
- Skip cryptdevice/cryptkey cmdline params for multi-disk LUKS since
  sd-encrypt reads crypttab instead
</content>
</entry>
<entry>
<title>fix: resolve remaining SC2155 warnings across all scripts</title>
<updated>2026-02-23T12:10:51+00:00</updated>
<author>
<name>Craig Jennings</name>
<email>c@cjennings.net</email>
</author>
<published>2026-02-23T12:10:51+00:00</published>
<link rel='alternate' type='text/html' href='https://git.cjennings.net/archangel/commit/?id=396a85ab21d2519e83b59640971dd2b1a130469d'/>
<id>urn:sha1:396a85ab21d2519e83b59640971dd2b1a130469d</id>
<content type='text'>
Declare and assign local variables separately in custom/archangel,
scripts/full-test.sh, scripts/test-install.sh, and remove unused
variable in custom/lib/zfs.sh.
</content>
</entry>
<entry>
<title>fix: resolve SC2155 shellcheck warnings in custom/lib/</title>
<updated>2026-02-23T12:05:25+00:00</updated>
<author>
<name>Craig Jennings</name>
<email>c@cjennings.net</email>
</author>
<published>2026-02-23T12:05:25+00:00</published>
<link rel='alternate' type='text/html' href='https://git.cjennings.net/archangel/commit/?id=b37f0b357bb2ad7da0d2de311540af5553de96cd'/>
<id>urn:sha1:b37f0b357bb2ad7da0d2de311540af5553de96cd</id>
<content type='text'>
Declare and assign local variables separately to avoid masking
return values from command substitutions.
</content>
</entry>
<entry>
<title>refactor: remove archsetup references, make installer standalone</title>
<updated>2026-01-25T17:37:06+00:00</updated>
<author>
<name>Craig Jennings</name>
<email>c@cjennings.net</email>
</author>
<published>2026-01-25T17:37:06+00:00</published>
<link rel='alternate' type='text/html' href='https://git.cjennings.net/archangel/commit/?id=239536ce0722c2da81760a223e5bd526fcc67184'/>
<id>urn:sha1:239536ce0722c2da81760a223e5bd526fcc67184</id>
<content type='text'>
- Remove copy_archsetup function and calls from ZFS/Btrfs paths
- Update SSH hardening messages to generic advice
- Change sanoid references to tips without archsetup dependency
- Improve filesystem dialog descriptions
</content>
</entry>
<entry>
<title>Add LUKS testing infrastructure and documentation</title>
<updated>2026-01-25T13:36:24+00:00</updated>
<author>
<name>Craig Jennings</name>
<email>c@cjennings.net</email>
</author>
<published>2026-01-25T13:36:24+00:00</published>
<link rel='alternate' type='text/html' href='https://git.cjennings.net/archangel/commit/?id=06b9cbefbf519da2da13b82e23050d7ada31f3f6'/>
<id>urn:sha1:06b9cbefbf519da2da13b82e23050d7ada31f3f6</id>
<content type='text'>
- Add setup_luks_testing_keyfile() for automated LUKS testing
- Modify configure_crypttab() and configure_luks_initramfs() for keyfile support
- Fix configure_btrfs_initramfs() to preserve encrypt hook when LUKS enabled
- Add TESTING=yes to LUKS test configs
- Create docs/TESTING-STRATEGY.org documenting testing approach

LUKS automated reboot testing remains a work-in-progress due to
complexity of sending passphrase to initramfs encrypt hook.
Non-LUKS tests all pass: btrfs-single, btrfs-mirror, btrfs-stripe.
</content>
</entry>
<entry>
<title>Fix GRUB boot for btrfs with subvolumes</title>
<updated>2026-01-25T06:10:21+00:00</updated>
<author>
<name>Craig Jennings</name>
<email>c@cjennings.net</email>
</author>
<published>2026-01-25T06:10:21+00:00</published>
<link rel='alternate' type='text/html' href='https://git.cjennings.net/archangel/commit/?id=dc36ae7bd98ecaadd7b5e9a9d44d4e4e4da532b8'/>
<id>urn:sha1:dc36ae7bd98ecaadd7b5e9a9d44d4e4e4da532b8</id>
<content type='text'>
- Store GRUB modules on EFI partition (FAT32) to avoid btrfs
  subvolume path prefix issues (/@/boot/grub not found)
- Create symlink /boot/grub -&gt; /efi/grub for grub-btrfs compatibility
- Add sync after grub-mkconfig to ensure FAT32 write completion
- Add sync before unmounting to prevent data loss on VM shutdown
- Update snapper-firstboot to use /efi/grub/grub.cfg path
- Update multi-disk GRUB functions for consistency
</content>
</entry>
<entry>
<title>Fix LUKS encryption for btrfs (single and multi-disk)</title>
<updated>2026-01-24T23:29:24+00:00</updated>
<author>
<name>Craig Jennings</name>
<email>c@cjennings.net</email>
</author>
<published>2026-01-24T23:29:24+00:00</published>
<link rel='alternate' type='text/html' href='https://git.cjennings.net/archangel/commit/?id=9423f1f3253bdf32ae182d1f9d04df55ffb5f9aa'/>
<id>urn:sha1:9423f1f3253bdf32ae182d1f9d04df55ffb5f9aa</id>
<content type='text'>
- Use -d - flag for cryptsetup stdin key input (matches easy-arch)
- Change ((i++)) to ((++i)) to avoid set -e exit on 0 increment
- Add btrfs-mirror-luks test config
- Update status protocol with sound notifications
</content>
</entry>
<entry>
<title>Phase 3: Add multi-disk btrfs support (RAID0/RAID1)</title>
<updated>2026-01-24T20:28:51+00:00</updated>
<author>
<name>Craig Jennings</name>
<email>c@cjennings.net</email>
</author>
<published>2026-01-24T20:28:51+00:00</published>
<link rel='alternate' type='text/html' href='https://git.cjennings.net/archangel/commit/?id=613c09c6d4afd4d9c9ea858578ccce29d635941c'/>
<id>urn:sha1:613c09c6d4afd4d9c9ea858578ccce29d635941c</id>
<content type='text'>
- RAID1 (mirror) and RAID0 (stripe) for 2+ disks
- Multi-disk LUKS with single passphrase prompt
- EFI redundancy: GRUB installed on all disks
- Pacman hook syncs GRUB updates across EFI partitions
- btrfs initramfs hook for multi-device assembly at boot
</content>
</entry>
<entry>
<title>Fix LUKS btrfs installation and reduce ISO size</title>
<updated>2026-01-24T18:23:45+00:00</updated>
<author>
<name>Craig Jennings</name>
<email>c@cjennings.net</email>
</author>
<published>2026-01-24T18:23:45+00:00</published>
<link rel='alternate' type='text/html' href='https://git.cjennings.net/archangel/commit/?id=3fc34866ab9092445039f1da3c9f71c60f30f2ee'/>
<id>urn:sha1:3fc34866ab9092445039f1da3c9f71c60f30f2ee</id>
<content type='text'>
- Fix GRUB cryptodisk: configure_grub() heredoc was overwriting LUKS
  settings added by configure_luks_grub(). Moved LUKS GRUB config
  (GRUB_ENABLE_CRYPTODISK=y, cryptdevice cmdline) into configure_grub()
  after the heredoc writes the base config.

- Fix ISO bloat: archsetup copy was including vm-images (17GB).
  Changed from cp -r to rsync with exclusions for vm-images,
  test-results, .qcow2, and .iso files. ISO now 2.0GB.

- btrfs-luks VM test now passes.
</content>
</entry>
</feed>
