aboutsummaryrefslogtreecommitdiff
path: root/custom/lib
Commit message (Collapse)AuthorAgeFilesLines
* Add LUKS testing infrastructure and documentationCraig Jennings2026-01-251-5/+63
| | | | | | | | | | | | - 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.
* Fix GRUB boot for btrfs with subvolumesCraig Jennings2026-01-251-11/+21
| | | | | | | | | | - Store GRUB modules on EFI partition (FAT32) to avoid btrfs subvolume path prefix issues (/@/boot/grub not found) - Create symlink /boot/grub -> /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
* Fix LUKS encryption for btrfs (single and multi-disk)Craig Jennings2026-01-241-13/+13
| | | | | | | - 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
* Phase 3: Add multi-disk btrfs support (RAID0/RAID1)Craig Jennings2026-01-241-15/+261
| | | | | | | | - 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
* Fix LUKS btrfs installation and reduce ISO sizeCraig Jennings2026-01-241-1/+23
| | | | | | | | | | | | | - 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.
* Phase 2.8: Add LUKS encryption for btrfsCraig Jennings2026-01-242-1/+90
| | | | | | | | | | | | | - Add LUKS functions to btrfs.sh (create/open/close container) - Add crypttab configuration for boot - Add encrypt hook to mkinitcpio HOOKS - Add cryptdevice parameter to GRUB cmdline - Add get_btrfs_encryption_choice and get_luks_passphrase prompts - Add LUKS_PASSPHRASE to config variables - Update show_summary and print_btrfs_summary for encryption status - Add btrfs-luks.conf test config VM test pending.
* Fix btrfs GRUB boot and snapper firstbootCraig Jennings2026-01-241-84/+93
| | | | | | | | | | - Add GRUB serial console configuration for headless/VM testing - Add GRUB_BTRFS_OVERRIDE_BOOT_PARTITION_DETECTION for btrfs - Fix snapper-firstboot script (use echo instead of HEREDOC) - Add dbus.service dependency to firstboot service - Remove duplicate rootflags from GRUB_CMDLINE_LINUX VM test verified: GRUB boots, all subvolumes mount, snapper works.
* Fix btrfs bugs from VM testingCraig Jennings2026-01-231-19/+35
| | | | | | | | | | | - Fix GRUB config path (remove GRUB_BTRFS_GRUB_DIRNAME, use default) - Create snapper config manually (D-Bus not available in chroot) - Create genesis snapshot with btrfs command (not snapper) - Add btrfs-single.conf test config - Update test-install.sh to copy lib/ directory - Update test-install.sh to handle btrfs verification VM test now passes for btrfs single-disk installation.
* Phase 2.1: Implement btrfs supportCraig Jennings2026-01-232-2/+432
| | | | | | | | | | | - Create lib/btrfs.sh with full btrfs installation functions - Subvolume layout matching ZFS datasets (10 subvols) - Snapper configuration with timeline policy - GRUB + grub-btrfs for snapshot boot menu - Update disk.sh for filesystem-aware partition type - Update archangel with install_btrfs() path - Update build.sh to include lib/btrfs.sh - Update plan with Phase 2.7 (test) and 2.8 (LUKS)
* Phase 1.4: Add filesystem selection promptCraig Jennings2026-01-232-0/+33
| | | | | | | | | | | | | - Add FILESYSTEM variable to config (zfs or btrfs) - Add select_filesystem() function with fzf support - Update gather_input() to prompt for filesystem in interactive mode - Add validation for FILESYSTEM in unattended mode - Btrfs selection errors with "not yet implemented" - Update banner to show "Archangel" branding - Update config example with FILESYSTEM option Groundwork for btrfs support - filesystem choice is now captured, installation logic gates on FILESYSTEM variable.
* Fix set -e compatibility in lib functionsCraig Jennings2026-01-233-3/+9
| | | | | | | | | - Replace [[ ]] && error pattern with if/then/fi - Pattern causes exit when condition is false with set -e - Fixed in: common.sh, config.sh, disk.sh, install-archzfs Discovered during VM testing: the && short-circuit returns exit code 1 when condition is false, triggering set -e to abort.
* Phase 1.1: Create lib/ directory structure for archangel refactorCraig Jennings2026-01-234-0/+812
- Add custom/lib/common.sh: output, validation, fzf prompts, disk utils - Add custom/lib/config.sh: argument parsing, config loading, validation - Add custom/lib/disk.sh: partitioning, EFI management, disk selection - Add custom/lib/zfs.sh: pool, datasets, ZFSBootMenu, services, hooks - Update install-archzfs to source libs - Remove duplicated output/config functions from main script Prepares codebase for btrfs filesystem support (Phase 2).