<feed xmlns='http://www.w3.org/2005/Atom'>
<title>archangel/custom/lib, 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-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=fd2ea796b20bcbebea19c43978fb08e3cd6754ed'/>
<id>urn:sha1:fd2ea796b20bcbebea19c43978fb08e3cd6754ed</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=d5c98ed92942192b169ebb74b560d5ed81848df0'/>
<id>urn:sha1:d5c98ed92942192b169ebb74b560d5ed81848df0</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=f667957b77eb5862248f41a89c68a4cbd7c633d9'/>
<id>urn:sha1:f667957b77eb5862248f41a89c68a4cbd7c633d9</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=1268a283526ca4b1d11d391ede944f055b4abafd'/>
<id>urn:sha1:1268a283526ca4b1d11d391ede944f055b4abafd</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=c288a4f5dcf83c54de287af2640923c458fc85d6'/>
<id>urn:sha1:c288a4f5dcf83c54de287af2640923c458fc85d6</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=d3d0e8ef4035b7a397ed623a97604679bfd00c47'/>
<id>urn:sha1:d3d0e8ef4035b7a397ed623a97604679bfd00c47</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=124ccfabcf6a029d2c98fb22903b7f9576f459ee'/>
<id>urn:sha1:124ccfabcf6a029d2c98fb22903b7f9576f459ee</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=5d35df670a6780a12634e6f0ccbb918f53f355eb'/>
<id>urn:sha1:5d35df670a6780a12634e6f0ccbb918f53f355eb</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=33ab3dba2cdba0c94f8dde7b421a2a2b0ec8dae3'/>
<id>urn:sha1:33ab3dba2cdba0c94f8dde7b421a2a2b0ec8dae3</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=9a9232aeed72e2d319418d06c790620db0db4ad2'/>
<id>urn:sha1:9a9232aeed72e2d319418d06c790620db0db4ad2</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>
