aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCraig Jennings <c@cjennings.net>2026-01-18 06:27:27 -0600
committerCraig Jennings <c@cjennings.net>2026-01-18 06:27:27 -0600
commite10223f5ba70e6af675aaec231346a8f616a94f5 (patch)
treed684ad60e0840ecf1e37796d6bdcb42abd4a39a7
parentc941b6b797175b64566f43c97fd669a71d9a7871 (diff)
downloadarchangel-e10223f5ba70e6af675aaec231346a8f616a94f5.tar.gz
archangel-e10223f5ba70e6af675aaec231346a8f616a94f5.zip
Update documentation with testing results and bug fixes
- Mark README documentation task as complete in TODO.org - Add config file documentation task - Update session-context.org with bugs found and fixed - Remove VM binary files from git tracking Testing completed: - 2-disk mirror: PASSED - 2-disk stripe: PASSED - Single disk: PASSED
-rw-r--r--TODO.org47
-rw-r--r--docs/session-context.org79
-rw-r--r--vm/OVMF_VARS.fdbin540672 -> 0 bytes
-rw-r--r--vm/archzfs-test.qcow2bin197408 -> 0 bytes
4 files changed, 68 insertions, 58 deletions
diff --git a/TODO.org b/TODO.org
index 8db26e9..938dd47 100644
--- a/TODO.org
+++ b/TODO.org
@@ -1,26 +1,5 @@
* Open Work
-** TODO [#A] Create comprehensive project documentation (README.org)
-*** Proposed sections in order
-1. Overview - What this project is
-2. Features - Key capabilities
-3. Quick Start - Minimal steps to build/boot/install
-4. Prerequisites - Arch Linux host, sudo, dependencies
-5. Building the ISO - build.sh usage and output
-6. Project Structure - File/script locations and descriptions
-7. Testing with VMs - test-vm.sh options, SSH access, multi-disk
-8. Development Workflow - Rollback to genesis, re-run VM, iterative testing
-9. Installation Walkthrough - fzf interface, RAID options, each step explained
-10. Bare Metal Installation - Laptop/server installs, WiFi, SSH access after reboot
-11. Post-Installation - Genesis snapshot, rollback script, archsetup
-12. Keeping Up-to-Date - Rebuilding for new kernel/ZFS versions
-13. Troubleshooting - Common pitfalls, known issues, tips
-14. Links - archzfs.com, ZFS documentation, Arch Wiki
-15. License - GPL
-
-*** Also needed
-- Add GPL header to all scripts (build.sh, install-archzfs, test-vm.sh)
-- Create LICENSE file in project root
-
+** TODO [#B] Add config file information to README
** TODO [#B] Set up CI/CD pipeline for automated ISO builds
*** Options to evaluate
- Self-hosted on TrueNAS (primary target)
@@ -57,3 +36,27 @@ Using fzf instead.
** DONE [#C] Consider fzf interface for choices
Implemented fzf for timezone, locale, keymap, disk, RAID, and WiFi selection.
+** DONE [#A] Create comprehensive project documentation (README.org)
+CLOSED: [2026-01-18 Sun 02:01]
+- State "DONE" from "TODO" [2026-01-18 Sun 02:01]
+*** Proposed sections in order
+1. Overview - What this project is
+2. Features - Key capabilities
+3. Quick Start - Minimal steps to build/boot/install
+4. Prerequisites - Arch Linux host, sudo, dependencies
+5. Building the ISO - build.sh usage and output
+6. Project Structure - File/script locations and descriptions
+7. Testing with VMs - test-vm.sh options, SSH access, multi-disk
+8. Development Workflow - Rollback to genesis, re-run VM, iterative testing
+9. Installation Walkthrough - fzf interface, RAID options, each step explained
+10. Bare Metal Installation - Laptop/server installs, WiFi, SSH access after reboot
+11. Post-Installation - Genesis snapshot, rollback script, archsetup
+12. Keeping Up-to-Date - Rebuilding for new kernel/ZFS versions
+13. Troubleshooting - Common pitfalls, known issues, tips
+14. Links - archzfs.com, ZFS documentation, Arch Wiki
+15. License - GPL
+
+*** Also needed
+- Add GPL header to all scripts (build.sh, install-archzfs, test-vm.sh)
+- Create LICENSE file in project root
+
diff --git a/docs/session-context.org b/docs/session-context.org
index 5274ae3..c6a2a4a 100644
--- a/docs/session-context.org
+++ b/docs/session-context.org
@@ -4,7 +4,39 @@
* Current Session State
** What We're Working On
-Testing unattended installation with --config-file option. Currently running 2-disk mirror test.
+All 3 unattended installation tests completed successfully.
+
+** Bugs Found and Fixed This Session
+
+*** Bug 1: gather_input returns non-zero exit code
+- Cause: `[[ -n "$WIFI_SSID" ]] && info "..."` returns 1 when WIFI_SSID is empty
+- The bare `return` inherits this exit code
+- With `set -e`, script exits immediately
+- Fix: Changed `return` to `return 0`
+- Commit: 2f5bb37
+
+*** Bug 2: pacstrap hangs on provider prompts
+- Cause: pacstrap prompts for package provider selection (iptables, initramfs)
+- In unattended mode, no input is available
+- Fix: Pipe `yes ""` to pacstrap to auto-select defaults
+- Commit: 1dc4e95
+
+*** Bug 3: fsck hook in mkinitcpio
+- Cause: fsck hook was included in HOOKS for ZFS root
+- ZFS doesn't use fsck, causes error messages
+- Fix: Removed fsck from HOOKS line
+- Commit: 1dc4e95
+
+*** Bug 4: Missing hostid for ZFS boot
+- Cause: ZFS uses hostid to identify pool ownership
+- Without hostid, pool import can fail
+- Fix: Generate/copy hostid and add spl.spl_hostid to kernel cmdline
+- Commit: 1dc4e95
+
+** Testing Status
+- Test 1: 2-disk mirror - PASSED (installation complete, boots to passphrase prompt)
+- Test 2: 2-disk stripe - PASSED (installation complete)
+- Test 3: Single disk - PASSED (installation complete)
** Key Progress This Session
@@ -13,52 +45,27 @@ Testing unattended installation with --config-file option. Currently running 2-d
- Config only used when explicitly specified (prevents accidental disk wipes)
- Example config at /root/install-archzfs.conf.example on ISO
- Validates required fields: HOSTNAME, TIMEZONE, DISKS, ZFS_PASSPHRASE, ROOT_PASSWORD
-- Sets sensible defaults for optional fields
*** Boot Fixes for ZFS
-- Removed fsck from mkinitcpio HOOKS (ZFS doesn't use fsck)
+- Removed fsck from mkinitcpio HOOKS
- Added hostid generation/copy to installed system
- Added spl.spl_hostid to kernel command line
- Removed 'quiet' from kernel params for visible boot messages
-*** Multi-Disk RAID Support
-- RAID level selection: mirror, stripe, raidz1/2/3
-- EFI partitions on all disks for boot redundancy
-- Stripe option for max capacity (no redundancy)
-- Dynamic capacity calculations in preview
-
-*** fzf-Based User Interface
-- Replaced all select menus with fzf fuzzy finder
-- Timezone: fuzzy search with current time preview
-- Locale: all locales shown, format examples in preview
-- Keymap: all keymaps with layout info
-- Disk selection: multi-select (TAB), disk details preview
-- RAID level: explanatory preview with capacity calculations
-- WiFi: network list by signal strength, security info preview
-
-*** Documentation
-- Created comprehensive README.org (15 sections)
-- TODO.org with project tasks
-
** Files Modified This Session
-- custom/install-archzfs - Config file support, boot fixes
-- custom/install-archzfs.conf.example - NEW: template for unattended installs
+- custom/install-archzfs - Config file support, bug fixes
+- custom/install-archzfs.conf.example - Template for unattended installs
- build.sh - Copies example config to ISO
-- README.org - Comprehensive documentation
-- TODO.org - Project task tracking
-
-** Bugs Being Investigated
-- Install script exiting early in unattended mode - FIXED with return 0
-- Still need to verify full installation completes and boots successfully
+- .gitignore - Ignore VM disk images
-** Testing Status
-- Test 1: 2-disk mirror - IN PROGRESS (packages installing)
-- Test 2: 2-disk stripe - PENDING
-- Test 3: Single disk - PENDING
+** Recent Commits
+- 2f5bb37: Fix unattended mode exit issue (return 0)
+- 1dc4e95: Add config file support for unattended installations
** Test Configuration
-- VM: ./scripts/test-vm.sh --multi-disk
-- SSH: sshpass -p archzfs ssh -p 2222 root@localhost
+- VM: ./scripts/test-vm.sh --multi-disk (for RAID testing)
+- VM: ./scripts/test-vm.sh (for single disk)
+- SSH: sshpass -p archzfs ssh -p 2222 root@localhost (live ISO)
- Config file: /root/test-mirror.conf
** Test Credentials
diff --git a/vm/OVMF_VARS.fd b/vm/OVMF_VARS.fd
deleted file mode 100644
index 90366ac..0000000
--- a/vm/OVMF_VARS.fd
+++ /dev/null
Binary files differ
diff --git a/vm/archzfs-test.qcow2 b/vm/archzfs-test.qcow2
deleted file mode 100644
index 1436695..0000000
--- a/vm/archzfs-test.qcow2
+++ /dev/null
Binary files differ