| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
| |
Enable undefined variable checking (set -u) and pipefail across
standalone scripts. Guard SUDO_USER references with ${SUDO_USER:-}
for set -u compatibility.
|
| |
|
|
|
|
|
| |
Remove personal email addresses, hardcoded paths, and infrastructure
references to prepare for open-source release. Distribution targets
in build-release are now configurable via environment variables,
and archsetup inclusion is opt-in.
|
| |
|
|
|
|
| |
Optional TrustAll is misleading — it implies signature checking when
none is actually happening. Use Never to match the installer and be
explicit. Repo is served over HTTPS; GPG adds no value in build env.
|
| |
|
|
|
|
|
| |
- Change all script shebangs to #!/usr/bin/env bash for portability
(heredocs writing to installed systems keep #!/bin/bash)
- Remove || true from Makefile lint target so shellcheck errors fail the build
- Add .editorconfig for consistent formatting across editors
|
| |
|
|
|
|
|
|
|
|
| |
- Remove personal hardware specs, machine-specific troubleshooting docs,
and video transcript from assets/
- Remove stale PLAN-zfsbootmenu-implementation.org (feature complete)
- Remove .stignore (Syncthing config, not project-relevant)
- Untrack todo.org (personal task tracker with private infra details)
- Make archsetup path configurable via ARCHSETUP_DIR env var in build.sh
- Use $REAL_USER instead of hardcoded username in build-release scp
|
| |
|
|
|
| |
Non-functional stub that printed "this is a skeleton" — worse than
not having it. Removed from build.sh, Makefile, and file permissions.
|
| |
|
|
|
|
|
|
| |
- 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
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
- 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.
|
| |
|
|
|
|
|
|
|
|
|
| |
- 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)
|
| |
|
|
|
|
|
|
|
|
|
| |
- Rename install-archzfs → archangel
- Rename install-archzfs.conf.example → archangel.conf.example
- Update build.sh to use new names
- Update script header with dual-filesystem description
- Update log file names to archangel-*
The installer is now called "archangel" reflecting its expanded
scope: snapshot-based recovery for both ZFS and Btrfs filesystems.
|
| |
|
|
|
|
| |
- Copy custom/lib/ to /usr/local/bin/lib/ in airootfs
- Add file permissions for lib/*.sh files
- Required for refactored install-archzfs to work
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
| |
|
|
|
|
|
| |
- Add chown step to build.sh to restore ownership to invoking user
after mkarchiso completes (fixes root-owned out/work/profile dirs)
- Rename TODO.org to todo.org (lowercase)
- Add todo item for post-install reboot countdown timer
|
| |
|
|
|
|
|
|
| |
- 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
|
| |
|
|
|
|
|
| |
- 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
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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 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
|
| |
|
|
|
|
|
|
|
| |
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.
|
| |
|
|
|
|
|
| |
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.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
Packages added: os-prober, syslinux, ms-sys
Rescue guide section 3 covers:
- Chroot into broken system (including ZFS)
- Reinstall GRUB (UEFI and Legacy)
- Fix UEFI boot entries with efibootmgr
- Rebuild initramfs with mkinitcpio
- Dual-boot GRUB/Windows with os-prober
- Restore Windows MBR with ms-sys
- ZFS-specific boot issues (hostid, hooks)
- Emergency GRUB command line boot
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
Packages added: ddrescue, testdisk, foremost, sleuthkit, safecopy, smartmontools
Rescue guide section 2 covers:
- SMART health assessment
- ddrescue for cloning failing drives
- PhotoRec/TestDisk for file/partition recovery
- Foremost for file carving
- Filesystem repair (ext4, NTFS, XFS, FAT)
- Mounting disk images
- Safecopy for very damaged media
|
| |
|
|
|
|
|
| |
- Add tealdeer, pv, rsync, mbuffer, lsof to ISO packages
- Pre-populate tealdeer cache during build for offline tldr
- Create RESCUE-GUIDE.txt with comprehensive ZFS recovery section
- Copy rescue guide to /root/ on ISO
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Implements hybrid retention policy:
- Always keep 20 most recent snapshots
- Delete snapshots beyond #20 only if older than 180 days
- Genesis snapshot is always protected
Features:
- zfs-snap-prune script with --dry-run, --test, --verbose modes
- Comprehensive test suite (22 tests)
- Runs automatically after pacman operations
- Daily systemd timer for cleanup
- Regenerates GRUB menu after pruning
This prevents unbounded snapshot growth while preserving
recent history and the genesis snapshot.
|
| |
|
|
|
|
|
|
|
|
| |
Add ability to boot into ZFS snapshots directly from GRUB menu:
- grub-zfs-snap: generates GRUB submenu entries for recent snapshots
- 40_zfs_snapshots: GRUB generator script installed to /etc/grub.d/
- zz-grub-zfs-snap.hook: pacman hook for automatic GRUB regeneration
The GRUB menu automatically updates after kernel/ZFS package changes.
Up to 10 most recent snapshots appear in a "ZFS Snapshots" submenu.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Bug fixes:
- Fix depmod using wrong kernel version during initramfs generation
The script now explicitly specifies the installed kernel version
instead of relying on uname -r (which returns the live ISO kernel)
- Add kernel module verification before mkinitcpio
- Add hostid 0x prefix to spl.spl_hostid kernel parameter
ISO naming:
- Changed format to: archzfs-vmlinuz-{version}-lts-{date}-{arch}.iso
- Example: archzfs-vmlinuz-6.12.65-lts-2026-01-18-x86_64.iso
test-vm.sh:
- Add QEMU monitor socket for automation support
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Features:
- --config-file option for automated installs
- Example config at /root/install-archzfs.conf.example
- Validates required fields before install
- Config only used when explicitly specified (safety)
Bug fixes:
- Fix pacstrap hanging on provider prompts (use yes pipe)
- Remove fsck from mkinitcpio HOOKS (ZFS doesn't use fsck)
- Add hostid support for ZFS boot
- Add spl.spl_hostid to kernel command line
Documentation:
- Comprehensive README.org with 15 sections
- Session context tracking file
|
| |
|
|
|
|
|
|
|
|
|
| |
- Multi-disk RAID support: mirror, stripe, raidz1/2/3
- EFI partitions on all disks for boot redundancy
- SSH configuration prompt (default yes) with sshd enabled
- Stripe option for max capacity without redundancy
- Genesis snapshot with rollback-to-genesis script
- NetworkManager added to ISO for WiFi config
- Remove color codes for better terminal compatibility
- archsetup launcher via curl
|
|
|
Build scripts for creating custom Arch Linux ISO with ZFS support.
Includes installer scripts and VM testing setup.
|