# Session Context - 2026-01-19 ## Summary Added ZFS snapshot management scripts, fixed grub-zfs-snap syntax error, and created build-release workflow. ## Key Changes This Session ### 1. Added zfssnapshot and zfsrollback to ISO - Copied from archsetup to `custom/zfssnapshot` and `custom/zfsrollback` - Now installed to `/usr/local/bin/` on live ISO and target systems - Added fzf to `install-archzfs` pacstrap list (required dependency) - Increased fzf height in zfsrollback from 40% to 70% for better usability - Created task in archsetup inbox to remove duplicate scripts there ### 2. Fixed grub-zfs-snap Syntax Error - **Bug**: `\$(grub-probe ...)` was writing literal string to grub.cfg - **Fix**: Removed backslash so command executes at config generation time - **File**: `custom/grub-zfs-snap` line 106 - GRUB doesn't support bash-style `$()` command substitution ### 3. Created build-release Workflow - **Script**: `scripts/build-release` - **Purpose**: Automate full ISO build and distribution - **Steps**: Build → Sanity test (QEMU) → Distribute - **Targets**: - `~/Downloads/isos` (always) - `truenas.local:/mnt/vault/isos` (if reachable) - ARCHZFS labeled USB drive (detected via `blkid -L ARCHZFS`) - Ventoy USB drive (detected by label "Ventoy" or `ventoy/` directory) - **Options**: `--skip-build`, `--skip-test` ### 4. Added eBPF Tracing Tools (earlier in session) - Added to ISO: bpftrace, bcc-tools, perf, w3m - Updated RESCUE-GUIDE.txt with sections 9 (System Tracing) and 10 (Terminal Web Browsing) ## Technical Notes ### os-prober Warning ``` Warning: os-prober will not be executed to detect other bootable partitions. Systems on them will not be added to the GRUB boot configuration. Check GRUB_DISABLE_OS_PROBER documentation entry. ``` - **Meaning**: GRUB won't scan for other OSes (Windows, etc.) to add to boot menu - **Why**: Disabled by default since GRUB 2.06 for security (avoids probing untrusted partitions) - **Impact**: None for single-OS ZFS systems; dual-boot would need to enable it - **To enable**: Add `GRUB_DISABLE_OS_PROBER=false` to `/etc/default/grub`, then regenerate config - **Decision**: Not needed for archzfs default config ### Genesis Snapshot Best Practice When rolling back to genesis, the rollback script itself must be part of genesis. We now: 1. Install zfssnapshot, zfsrollback, and fzf via `install-archzfs` 2. These are present before genesis snapshot is taken 3. Future rollbacks preserve the tools needed to perform rollbacks ### Ratio Machine Credentials - Host: ratio (192.168.86.48) - Login: root - Password: welcome ## Files Modified - `custom/zfssnapshot` (new) - `custom/zfsrollback` (new) - `custom/grub-zfs-snap` (fixed syntax error) - `custom/install-archzfs` (added fzf to pacstrap) - `custom/RESCUE-GUIDE.txt` (added sections 9, 10) - `build.sh` (added bpftrace, bcc-tools, perf, w3m, copy commands for new scripts) - `scripts/build-release` (new) - `TODO.org` (marked zfsrollback/zfssnapshot task done) - `assets/cogito-hardware-specs.txt` (moved from inbox) ## Commits This Session ``` 4e7e3fe Fix grub-zfs-snap command substitution syntax error ee668df Increase fzf height in zfsrollback to 70% 7c0d655 Add fzf to target system packages 156dde5 Add zfssnapshot and zfsrollback scripts to ISO e924c53 Add TODO for zfsrollback and zfssnapshot scripts d2c2cca Add eBPF tracing tools and w3m terminal browser c719d45 Add build-release script for ISO build and distribution ``` ## Pending - Run `sudo ./scripts/build-release` to build and distribute the ISO - Verify on ratio after archsetup completes ## Related Files in Other Projects - `/home/cjennings/code/archsetup/inbox/remove-zfs-scripts.md` - Task to remove duplicate scripts from archsetup