diff options
| -rw-r--r-- | TODO.org | 47 | ||||
| -rw-r--r-- | docs/session-context.org | 79 | ||||
| -rw-r--r-- | vm/OVMF_VARS.fd | bin | 540672 -> 0 bytes | |||
| -rw-r--r-- | vm/archzfs-test.qcow2 | bin | 197408 -> 0 bytes |
4 files changed, 68 insertions, 58 deletions
@@ -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 Binary files differdeleted file mode 100644 index 90366ac..0000000 --- a/vm/OVMF_VARS.fd +++ /dev/null diff --git a/vm/archzfs-test.qcow2 b/vm/archzfs-test.qcow2 Binary files differdeleted file mode 100644 index 1436695..0000000 --- a/vm/archzfs-test.qcow2 +++ /dev/null |
