aboutsummaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* Fix ZFS boot failure: set cachefile property after pool creationCraig Jennings2026-01-203-37/+63
| | | | | | | - 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
* Fix downloads path (lowercase)Craig Jennings2026-01-201-2/+2
|
* Fix mDNS, hostname, and build safetyCraig Jennings2026-01-202-6/+128
| | | | | | | | - Add safe_cleanup_work_dir() to prevent /dev corruption on interrupted builds - Fix shadow file: use sed to modify root entry instead of replacing file - Add /etc/hosts and /etc/nsswitch.conf for proper hostname/mDNS resolution - Add inetutils package for hostname command - Add sanity tests for password, avahi, mdns, and hostname
* Update session contextCraig Jennings2026-01-201-58/+30
|
* Fix full-test.sh exiting after first passed testCraig Jennings2026-01-201-1/+1
| | | | | | | | Bug: ((TESTS_PASSED++)) returns exit code 1 when TESTS_PASSED is 0, because post-increment evaluates the old value (0) which is falsy. With set -e, this caused the script to exit after the first test passed. Fix: Use pre-increment ((++TESTS_PASSED)) which returns the new value.
* Add Avahi mDNS validation to test scriptsCraig Jennings2026-01-202-2/+25
| | | | | | | | | | sanity-test.sh (live ISO): - Check avahi-daemon is enabled - Check avahi-daemon is running test-install.sh (installed system): - Check avahi and nss-mdns packages installed - Check avahi-daemon service enabled
* Add Avahi mDNS to installed systems for network discoveryCraig Jennings2026-01-192-21/+9
| | | | | | | | Install avahi and nss-mdns packages, enable avahi-daemon service. Matches archsetup's implementation for consistency. After installation, systems are accessible as <hostname>.local (e.g., ratio.local, framework.local) for easier SSH access.
* Fix hostid mismatch bug that prevented booting installed systemsCraig Jennings2026-01-192-32/+67
| | | | | | | | | | | | | | | | | | 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-192-99/+56
| | | | | | - 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-193-63/+115
| | | | | | | - 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
* Add wireless-regdb for proper WiFi regulatory complianceCraig Jennings2026-01-191-1/+2
|
* Add AMD ISP firmware to initramfs for APUs with camerasCraig Jennings2026-01-191-0/+17
|
* Sync templates, add session contextCraig Jennings2026-01-192-0/+95
|
* Fix journald on ZFS: wait for mounts, enable persistent storageCraig Jennings2026-01-191-0/+17
|
* Add wget to target system packagesCraig Jennings2026-01-191-1/+2
|
* Add comprehensive installation tests and ZFS script deploymentCraig Jennings2026-01-197-10/+614
| | | | | | | - 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
* Update session context with full workflow detailsCraig Jennings2026-01-191-54/+110
| | | | | Documents automated sanity test, build-release workflow, and all fixes made during this session.
* Add --yes flag for fully automated distributionCraig Jennings2026-01-191-7/+14
| | | | | | | | New --yes/-y flag skips the dd confirmation prompt, allowing build-release to run completely unattended for CI/CD workflows. The ARCHZFS label on the drive is sufficient safety - if it has that label, it was created by this process and is the intended target.
* Update build-release for TrueNAS and Framework drivesCraig Jennings2026-01-191-10/+6
| | | | | | | - Use cjennings@truenas.local instead of root (has SSH keys) - Remove removable check for ARCHZFS drives (Framework expansion cards show as internal but are hot-swappable) - Still requires 'yes' confirmation before dd for safety
* Fix build-release for running with sudoCraig Jennings2026-01-191-6/+31
| | | | | | | - Use SUDO_USER to get real user's home directory - Run SSH/SCP as real user to use their SSH keys - Handle TrueNAS SSH failure gracefully (warn and continue) - Track actual TrueNAS success status for summary
* Add automated sanity test for ISO verificationCraig Jennings2026-01-192-20/+336
| | | | | | | | | | | | | | | | | New scripts/sanity-test.sh: - Boots ISO in headless QEMU - Waits for SSH availability - Runs 13 automated verification tests: - ZFS module loaded and working - Custom scripts present (zfsrollback, zfssnapshot, etc.) - fzf installed - LTS kernel running - archsetup directory present - Reports pass/fail with summary - Fully automated - no human input required Updated build-release to use automated sanity test instead of manual verification prompt.
* Fix zfsrollback to process children before parentsCraig Jennings2026-01-191-2/+3
| | | | | | Sort datasets by path depth (deepest first) before rolling back. ZFS requires children to be rolled back before their parents, otherwise rollback can fail or skip datasets.
* Add session context for 2026-01-19Craig Jennings2026-01-191-0/+88
| | | | | Documents changes made this session including zfs scripts, grub fix, build-release workflow, and technical notes on os-prober.
* Add build-release script for ISO build and distributionCraig Jennings2026-01-191-0/+346
| | | | | | | | | | | | | | | Automates the full release workflow: 1. Build ISO (via build.sh) 2. Sanity test (boot in QEMU, manual verification) 3. Distribute to multiple targets: - ~/Downloads/isos (always) - truenas.local:/mnt/vault/isos (if reachable) - ARCHZFS labeled USB drive (detected via blkid, writes via dd) - Ventoy USB drive (detected by label or ventoy/ directory) Options: --skip-build Distribute existing ISO without rebuilding --skip-test Skip the QEMU sanity test
* Fix grub-zfs-snap command substitution syntax errorCraig Jennings2026-01-191-1/+1
| | | | | | | | | Remove backslash escape from grub-probe command substitution so it executes at config generation time instead of writing the literal string "$(grub-probe ...)" into grub.cfg. GRUB's scripting language doesn't support bash-style $() command substitution, causing syntax errors on boot.
* Increase fzf height in zfsrollback to 70%Craig Jennings2026-01-191-3/+3
| | | | | 40% was too small on console, showing only ~2 lines. 70% gives roughly 2/3 of screen for snapshot selection.
* Add fzf to target system packagesCraig Jennings2026-01-191-1/+2
| | | | | Required for zfsrollback interactive snapshot selection to work on freshly installed systems before archsetup runs.
* Add zfssnapshot and zfsrollback scripts to ISOCraig Jennings2026-01-194-1/+307
| | | | | | | | | | | | | | | | Copied from archsetup to make these tools available on the live ISO for rescue scenarios and post-install management. zfssnapshot: - Creates recursive snapshots across all pools - Timestamps with descriptive labels (YYYY-MM-DD_HH-MM-SS_description) - Integrates with grub-zfs-snap for boot menu updates zfsrollback: - Interactive fzf-based snapshot selection - Two modes: single dataset or all matching datasets - Safety warnings showing what will be destroyed - Special genesis rollback warning
* Add TODO for zfsrollback and zfssnapshot scriptsCraig Jennings2026-01-191-0/+66
| | | | | | | | | | These ZFS snapshot management scripts belong in archzfs ISO rather than archsetup because: - Rescue scenarios: rollback from live USB when system won't boot - Standalone utility: works on any ZFS system - ISO always available: no need to install archsetup first Includes example implementations using fzf for interactive selection.
* Add eBPF tracing tools and w3m terminal browserCraig Jennings2026-01-192-0/+166
| | | | | | | | | | | | | Add bpftrace, bcc-tools, and perf for system tracing and profiling. These are Linux's eBPF-based equivalents to DTrace, essential for debugging and performance analysis in rescue scenarios. Add w3m terminal browser alongside existing lynx for better rendering of complex pages. Update RESCUE-GUIDE.txt with new sections covering: - Section 9: System Tracing with bpftrace examples, BCC tools, perf - Section 10: Terminal web browsing with lynx/w3m basics
* Restore Arch Wiki to Priority A, add reader solutionCraig Jennings2026-01-191-8/+38
| | | | | | | | | | | When networking is broken, that's exactly when you need docs most. Added arch-wiki-lite (AUR) as the recommended reader: - wiki-search <term> for CLI searching - Displays articles as plain text in terminal - Added to AUR packages list Also documented Option 2: arch-wiki-docs + w3m with wrapper script.
* Rebalance TODO priorities based on reviewCraig Jennings2026-01-191-10/+42
| | | | | | | | | | | | | | Priority changes: - Arch Wiki offline: A→B (adds 500MB, network usually available) - mkosi research: B→C (current solution works, added detailed analysis) - Avahi discoverability: B→C (nice to have, not critical) - GRUB ISO boot: B→C (advanced feature) - Build logging: B→C (simple but low urgency) Removed vague "Check for methods to abstract" task. Added comprehensive mkosi vs mkarchiso comparison with verdict: keep mkarchiso for now, mkosi useful for future VM images and UKI boot.
* Expand AUR package TODO with implementation plan and package listCraig Jennings2026-01-191-6/+99
| | | | | | | | | | | | | | Detailed implementation plan for building AUR packages into local repo: - Build script infrastructure - Pacman.conf integration - Installation integration AUR packages organized by priority: - Essential: downgrade, yay, informant - ZFS Management: sanoid, syncoid, zrepl - System Maintenance: rate-mirrors, paru, pacman-cleanup-hook, arch-audit - Recovery Tools: ventoy-bin, topgrade, mkinitcpio-firmware - Nice to Have: zfs-auto-snapshot, btop, duf, dust, procs
* Add ideas from arch-linux-live-cd-iso-with-zfs projectCraig Jennings2026-01-191-0/+98
| | | | | | | | | | | | | | | | | | | Reviewed https://github.com/stevleibelt/arch-linux-live-cd-iso-with-zfs and extracted valuable ideas for our project: Priority A: - ZFSBootMenu integration (alternative boot manager for ZFS) Priority B: - Docker/Podman container support for builds - Arch Linux Archive snapshot support (version pinning) - Build logging with tee Priority C: - Multi-variant ISO builds (kernel/DKMS options) - Pre-clone tools and documentation - Environment file configuration (.env pattern) - Dry-run mode for build.sh
* Fix EFI_PART typo causing empty UUID in fstabCraig Jennings2026-01-181-1/+1
| | | | | | | | Used $EFI_PART (undefined) instead of ${EFI_PARTS[0]} when generating fstab, resulting in empty/wrong UUID for /boot mount. This caused "Timed out waiting for device /dev/disk/by-uuid" on boot of newly installed systems.
* Add TODOs for Arch Wiki offline docs and mkosi researchCraig Jennings2026-01-181-0/+17
|
* Add TODO for downgrade package (AUR)Craig Jennings2026-01-181-42/+50
|
* Remove autodetect hook from mkinitcpio for bare metal compatibilityCraig Jennings2026-01-181-2/+4
| | | | | | | | | | | | The autodetect hook filters modules based on currently loaded hardware, which when running from a live ISO means the target system's storage drivers (NVMe, AHCI, etc.) may not be included in the initramfs. This caused boot failures on bare metal with "Timed out waiting for device /dev/disk/by-uuid" because the disk controller wasn't detected. Removing autodetect includes all storage drivers, making the initramfs larger but ensuring compatibility with any hardware configuration.
* Update TODO with correct log filename formatCraig Jennings2026-01-181-3/+3
|
* Include timestamp in install-archzfs log filenameCraig Jennings2026-01-182-3/+3
|
* Add timestamp header to install-archzfs.logCraig Jennings2026-01-182-1/+8
|
* Make ZFS encryption optional with interactive promptCraig Jennings2026-01-185-13/+57
| | | | | | | | | Add get_encryption_choice() to ask user whether to enable encryption during interactive install. Remove --no-encrypt CLI flag in favor of config file NO_ENCRYPT option for unattended installs. Update tests to rely on config file setting instead of flag. Also: fix ISO label to ARCHZFS for stable GRUB entries, add TODO items.
* Remove session context file (session complete)Craig Jennings2026-01-181-72/+0
|
* Complete rescue tools and session wrap-upCraig Jennings2026-01-183-30/+88
| | | | | | - Mark recovery tools task as DONE in TODO.org - Update session context with completed work - Add session history entry to NOTES.org
* Remove AUR-only packages from ISO buildCraig Jennings2026-01-181-4/+0
| | | | | | | Removed safecopy, ms-sys, dislocker, and nwipe as they are only available in the AUR and cannot be installed during mkarchiso build. These tools are still documented in RESCUE-GUIDE.txt with AUR installation instructions for users who need them.
* Add utility tools and rescue guide documentationCraig Jennings2026-01-183-32/+399
| | | | | | | | | | | | | | | | | | | 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-183-78/+405
| | | | | | | | | | | | | | | | | | | | | | 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
* Add disk, network, and encryption tools with rescue guide sectionsCraig Jennings2026-01-182-2/+696
| | | | | | | | | | | | | Packages added: - partimage: legacy partition imaging - f2fs-tools: Flash-Friendly FS support - exfatprogs: exFAT filesystem tools - emacs: editor Rescue guide sections 6-8: - Disk Operations: partclone, fsarchiver, nwipe, filesystem tools - Network Troubleshooting: connectivity, sshfs, file transfers - Encryption & GPG: symmetric/asymmetric decryption, LUKS, eCryptfs
* Add hardware diagnostics tools and rescue guide sectionCraig Jennings2026-01-182-1/+218
| | | | | | | | | | | | | | | | | | | | Packages added: - memtester: userspace memory testing - stress-ng: CPU/memory/IO stress testing - lm_sensors: temperature/fan/voltage monitoring - lshw: detailed hardware inventory - dmidecode: SMBIOS/DMI system information - nvme-cli: NVMe drive management - hdparm: HDD/SSD parameter tuning Rescue guide Section 5 covers: - SMART disk health monitoring - Memory testing with memtester - System stress testing - Temperature monitoring with sensors - Hardware inventory commands - Disk benchmarking - Bad block checking
* Add Windows recovery tools and rescue guide sectionCraig Jennings2026-01-182-1/+234
| | | | | | | | | | | | | | Packages added: chntpw, ntfs-3g, dislocker, hivex Rescue guide section 4 covers: - Mounting NTFS partitions (including hibernated) - Reset/blank Windows passwords with chntpw - Unlock disabled accounts, promote to admin - Access BitLocker drives with dislocker - Copy files from non-booting Windows - Edit Windows registry with hivex - Offline malware scanning with ClamAV - Disable Fast Startup from Linux