aboutsummaryrefslogtreecommitdiff
path: root/docs
Commit message (Collapse)AuthorAgeFilesLines
* session: rebuild ISO for linux-lts 6.12.70, fix install test bugsCraig Jennings2026-02-122-119/+157
| | | | | Fixed archzfs GPG key hang and pgrep false positive in test suite. Added local distribution targets to build-release. All tests passing.
* fix: archzfs key prompt hang, test false positive, add local distributionCraig Jennings2026-02-124-5/+328
| | | | | | | | | - Change archzfs SigLevel to Never (pacstrap -K empty keyring caused interactive GPG prompt blocking unattended installs) - Fix pgrep matching avahi-daemon's [archangel.local] in full-test.sh - Bump install timeout to 30min for DKMS builds - Add ~/downloads/isos and archsetup inbox to build-release distribution - Sync templates
* docs: sync templates, rename workflows and notes.orgCraig Jennings2026-02-0736-651/+2650
| | | | | | Sync from templates. Rename NOTES.org to notes.org, session-wrap-up to wrap-it-up, retrospective-workflow to retrospective, session-start to startup. Update all references.
* docs: add new workflows and AMD GPU workaroundCraig Jennings2026-01-314-0/+686
| | | | | | | - Add email workflow (msmtp direct sending) - Add assemble-email workflow (document gathering for manual send) - Add retrospective workflow - Add AMD GPU suspend workaround notes
* docs: update protocols and session wrap-up workflowCraig Jennings2026-01-312-2/+55
| | | | | | | - Add Wayland environment section to protocols (wl-copy, Hyprland) - Add session-context deletion step to wrap-up workflow - Add clean git state verification before valediction - Update todo.org tasks
* refactor: rename archzfs to archangel, simplify build-releaseCraig Jennings2026-01-311-14/+12
| | | | | | | | - Standardize naming: VM names, hostname, passwords, ISO naming - Remove USB, Ventoy, and local deployment from build-release - Add snapper package and Btrfs validation tests to sanity-test - Update README for dual ZFS/Btrfs architecture - Delete obsolete SESSION-CONTEXT.md and download-archzfs-iso.sh
* Remove session-context.org (session complete)Craig Jennings2026-01-251-105/+0
|
* Phase 4.3 complete: btrfs validation testingCraig Jennings2026-01-251-0/+42
| | | | | | | - Non-LUKS tests all pass (single, mirror, stripe) - LUKS reboot automation attempted but blocked (encrypt hook limitation) - Added manual LUKS verification task to todo.org - Session notes updated
* Add LUKS testing infrastructure and documentationCraig Jennings2026-01-252-100/+237
| | | | | | | | | | | | - 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.
* Add ISO naming task, update session contextCraig Jennings2026-01-251-20/+102
| | | | | | | | - Add TODO for ISO naming convention change (date after project name) - Update session context with test results: - btrfs-single, btrfs-mirror, btrfs-stripe: PASS - btrfs-luks, btrfs-mirror-luks: reboot test blocked by passphrase prompt - Sync fix validated for non-encrypted btrfs
* Fix LUKS encryption for btrfs (single and multi-disk)Craig Jennings2026-01-241-11/+33
| | | | | | | - 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
* Sync templates, update session contextCraig Jennings2026-01-242-44/+33
|
* Fix LUKS btrfs installation and reduce ISO sizeCraig Jennings2026-01-241-55/+29
| | | | | | | | | | | | | - 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-241-7/+12
| | | | | | | | | | | | | - 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.
* Update session context: Phase 2.7 completeCraig Jennings2026-01-241-19/+27
|
* Fix btrfs bugs from VM testingCraig Jennings2026-01-231-25/+17
| | | | | | | | | | | - 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-66/+69
| | | | | | | | | | | - 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)
* Update session context: Phase 1 completeCraig Jennings2026-01-231-29/+34
|
* Phase 1.1 complete: VM test passed, lib refactor validatedCraig Jennings2026-01-231-6/+17
|
* Update session context with VM testing progressCraig Jennings2026-01-231-49/+43
|
* Phase 1.1: Create lib/ directory structure for archangel refactorCraig Jennings2026-01-231-1/+13
| | | | | | | | | | | - 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).
* Add btrfs implementation planCraig Jennings2026-01-231-0/+209
| | | | | | - Create PLAN-archangel-btrfs.org with 6-phase implementation - Phases: Refactor, Btrfs, Multi-disk, Testing, CLI tools, Docs - Add TODO referencing the plan
* Expand testing validation checks in btrfs researchCraig Jennings2026-01-231-28/+71
| | | | | | | - Add reboot survival checks (catches misconfigured services) - Rollback tests must include reboot for full validation - Document ZFSBootMenu rollback bug (needs filing) - Expand failure recovery and encryption checks
* Add archsetup --chroot task, update session contextCraig Jennings2026-01-231-80/+40
| | | | | | | - Add TODO [#B] for archsetup --chroot mode to enable full workstation setup during install-archangel chroot phase - Document required changes: skip systemctl start, ping checks, tmpfs mount - Update session context with archangel naming decision
* session: Code review workflow and btrfs expansion researchCraig Jennings2026-01-231-56/+78
|
* Research: Btrfs expansion and multi-filesystem supportCraig Jennings2026-01-232-37/+467
| | | | | | | | | | | | | | | | Comprehensive research for expanding project to support both ZFS and Btrfs: - Feature parity analysis (ZFS vs Btrfs equivalents) - Btrfs limitations: RAID 5/6 unstable, no native encryption (use LUKS) - Recommended subvolume layout: @, @home, @snapshots, @var_log, @var_cache - Snapshot stack: snapper + snap-pac + grub-btrfs + btrfs-assistant - Multi-disk support: raid1 (mirror), raid10 only - Installer architecture proposal with modular lib/ structure - Testing strategy and VM test matrix - Project rename recommendation: archsnap Cloned 8 reference repos: grub-btrfs, easy-arch, arch-btrfs-installation, btrfs-assistant, snap-pac, btrbk, buttermanager, alis
* Add code review workflow and project cleanup tasksCraig Jennings2026-01-232-0/+326
| | | | | | | | | | | - Create docs/project-workflows/code-review.org with comprehensive code review checklist based on Code Review Pyramid framework - Add 14 new tasks to todo.org from senior developer code review: - Priority A: README GRUB refs, missing LICENSE, skeleton script - Priority B: Stale files, Makefile lint, documentation gaps - Priority C: Style consistency, .editorconfig, test docs - Add Makefile targets to todo.org: deps, lint, deploy - Create docs/session-context.org for session tracking
* Remove session context after wrap-upCraig Jennings2026-01-231-52/+0
|
* session: Bare metal ZFSBootMenu validation on ratioCraig Jennings2026-01-231-0/+34
| | | | | Validated install-archzfs on Framework Desktop with 2-disk NVMe mirror. ZFSBootMenu installed on both EFI partitions with redundant boot entries.
* session: ZFSBootMenu implementation and testing completeCraig Jennings2026-01-232-27/+85
| | | | | Implemented and tested ZFSBootMenu bootloader replacement. All VM tests passed (single disk, mirror, raidz1). ISO copied to Ventoy drive.
* Replace GRUB with ZFSBootMenu bootloaderCraig Jennings2026-01-223-0/+641
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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
* Document Strix Halo VPE/CWSR freeze issues and workaroundsCraig Jennings2026-01-221-0/+31
| | | | | | | | - Add instructions for applying pg_mask=0 and cwsr_enable=0 workarounds - Document that kernel 6.18.x has critical bugs, stay on 6.15.x-6.17.x - Add session docs, mkinitcpio fixes, and Donato Capitella video transcript - Add PRINCIPLES.org for behavioral lessons learned - Update protocols.org from template
* Clean up session context and add .stignoreCraig Jennings2026-01-221-50/+0
|
* Simplify session startup instructions in protocols.orgCraig Jennings2026-01-221-2/+1
|
* Remove autodetect from mkinitcpio HOOKS documentationCraig Jennings2026-01-221-5/+7
| | | | | autodetect during chroot install detects live ISO hardware, not target machine. Could leave out NVMe/AHCI drivers.
* Add session notes for ratio boot fix and retrospective workflowCraig Jennings2026-01-221-0/+36
| | | | | Documented boot fix session including firmware requirement, GRUB configuration, and behavioral principles for future sessions.
* Add retrospective workflow and PRINCIPLES.org for continuous improvementCraig Jennings2026-01-223-14/+140
| | | | | | | | | - docs/PRINCIPLES.org: Behavioral lessons from retrospectives - docs/retrospectives/: Directory for retrospective records - docs/protocols.org: Add PRINCIPLES.org to session startup reading list Establishes pattern for learning from problem-solving sessions and capturing behavioral (not just technical) lessons.
* Update ratio session doc: kernel 6.15.2 now default with clean GRUB menuCraig Jennings2026-01-221-0/+66
| | | | | | | - Created custom GRUB entries for cleaner boot menu - Set kernel 6.15.2 as default, LTS as fallback - Pinned linux package in pacman.conf - Documented UUID gotcha with mirrored NVMe boot partitions
* Fix ratio boot issues: firmware, mkinitcpio, and document ZFS rollback dangersCraig Jennings2026-01-222-0/+334
| | | | | | | | | | | | | | | | | Root cause: Missing/outdated linux-firmware broke AMD Strix Halo GPU init. Fixed by installing linux-firmware 20260110-1. Changes: - install-archzfs: Fix mkinitcpio config (remove archiso.conf, fix preset) - todo.org: Add ZFS rollback + /boot mismatch issue, recommend ZFSBootMenu - docs/2026-01-22-ratio-boot-fix-session.org: Full troubleshooting session - docs/2026-01-22-mkinitcpio-config-boot-failure.org: Bug report - assets/: Supporting documentation and video transcript Key learnings: - AMD Strix Halo requires linux-firmware 20260110+ - ZFS rollback with /boot on EFI partition can break boot - zpool import -R can permanently change mountpoints
* Fix ZFS boot failure: set cachefile property after pool creationCraig Jennings2026-01-201-37/+47
| | | | | | | - Add zpool set cachefile=/etc/zfs/zpool.cache after pool creation - Without this, initramfs ZFS hook can't import pool at boot - Causes "cannot import '(null)': no such pool available" error - Add cachefile property test to full-test.sh
* Update session contextCraig Jennings2026-01-201-58/+30
|
* Fix hostid mismatch bug that prevented booting installed systemsCraig Jennings2026-01-191-24/+57
| | | | | | | | | | | | | | | | | | Root cause: The `hostid` command returns a value even without /etc/hostid, but `zgenhostid` generates a DIFFERENT random value. The install script was calling `hostid` for the GRUB kernel parameter, then later calling `zgenhostid` to create /etc/hostid - resulting in a mismatch. ZFS refuses to auto-import pools when spl.spl_hostid doesn't match /etc/hostid, causing "Failed to mount /sysroot" at boot. Fix: Generate hostid with zgenhostid FIRST (in configure_bootloader), then read the consistent value for the GRUB kernel parameter. The configure_zfs_services function now just copies the already-existing /etc/hostid to the installed system. Verified in VM: GRUB and /etc/hostid both show identical values after installation.
* Add TODO for Avahi on installed systems, mark live ISO Avahi as doneCraig Jennings2026-01-191-96/+24
| | | | | | - Live ISO Avahi implemented in 906cc6f (archzfs.local works) - Added TODO to implement Avahi on installed systems - Update session context
* Add Avahi mDNS for easy SSH access, fix ISP firmware pathCraig Jennings2026-01-191-62/+99
| | | | | | | - Add avahi and nss-mdns packages to live ISO - Enable avahi-daemon.service for mDNS discovery - Set hostname to "archzfs" so machines are accessible at archzfs.local - Fix ISP firmware path in install-archzfs: remove /mnt prefix for chroot
* Sync templates, add session contextCraig Jennings2026-01-192-0/+95
|
* Add comprehensive installation tests and ZFS script deploymentCraig Jennings2026-01-191-0/+19
| | | | | | | - Add scripts/full-test.sh for automated install testing (single, mirror, raidz1) - Add --full-test option to build-release workflow - Install zfssnapshot and zfsrollback to target system during install - Simplify .gitignore to exclude entire vm/ directory
* Remove session context file (session complete)Craig Jennings2026-01-181-72/+0
|
* Complete rescue tools and session wrap-upCraig Jennings2026-01-182-29/+85
| | | | | | - Mark recovery tools task as DONE in TODO.org - Update session context with completed work - Add session history entry to NOTES.org
* Add utility tools and rescue guide documentationCraig Jennings2026-01-181-32/+33
| | | | | | | | | | | | | | | | | | | Packages added: - iotop: disk I/O monitor by process - ncdu: interactive disk usage analyzer - tree: directory tree viewer - speedtest-cli: internet speed test - mosh: mobile shell (survives disconnects) - aria2: multi-protocol downloader with resume - tmate: terminal sharing for remote assistance - sshuttle: VPN over SSH - pass: password manager Rescue guide expanded: - Section 5: iotop for finding disk I/O culprits - Section 6: ncdu and tree for disk space analysis - Section 7: speedtest-cli, mosh, aria2, tmate, sshuttle - Section 8: pass password manager access
* Add network diagnostics tools and rescue guide documentationCraig Jennings2026-01-181-69/+52
| | | | | | | | | | | | | | | | | | | | | | Packages added: - mtr: combined ping + traceroute - iperf3: bandwidth testing - iftop: live bandwidth monitor by connection - nethogs: bandwidth monitor by process - ethtool: NIC configuration and diagnostics - tcpdump: packet capture - bind: dig/nslookup DNS tools - nmap: network scanner - wireshark-cli: tshark packet analysis Rescue guide section 7 expanded with scenarios for: - Network path analysis with mtr - Bandwidth testing with iperf3 - Live monitoring with iftop and nethogs - Interface diagnostics with ethtool - Packet capture with tcpdump - Network scanning with nmap - Deep packet analysis with tshark