diff options
| author | Craig Jennings <c@cjennings.net> | 2026-01-21 00:49:53 -0600 |
|---|---|---|
| committer | Craig Jennings <c@cjennings.net> | 2026-01-21 00:49:53 -0600 |
| commit | 9ad87d1805174c9dc7ea92131bdce9c859614b57 (patch) | |
| tree | 827480f3bfdaa923fdced4e67fd63d37b587b04a /TODO.org | |
| parent | cb6d684aff1f2321c56c5b1de6c4da539e3a7a64 (diff) | |
| download | archangel-9ad87d1805174c9dc7ea92131bdce9c859614b57.tar.gz archangel-9ad87d1805174c9dc7ea92131bdce9c859614b57.zip | |
Restore file ownership after build and rename todo.org
- 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
Diffstat (limited to 'TODO.org')
| -rw-r--r-- | TODO.org | 638 |
1 files changed, 0 insertions, 638 deletions
diff --git a/TODO.org b/TODO.org deleted file mode 100644 index c7d53d5..0000000 --- a/TODO.org +++ /dev/null @@ -1,638 +0,0 @@ -* Open Work -** TODO [#A] Build AUR packages and include in ISO as local repository -Build AUR packages during ISO creation and include them in a local pacman repository. -This allows AUR software to work both in the live environment AND be installable to target systems. - -*** Implementation Plan - -**** 1. Create build infrastructure -Add to build.sh or separate script (build-aur.sh): -#+BEGIN_SRC bash -build_aur_packages() { - local aur_packages=(downgrade yay sanoid informant rate-mirrors) - local repo_dir="$PROJECT_DIR/aur-packages" - local build_dir="/tmp/aur-build" - - mkdir -p "$repo_dir" "$build_dir" - - for pkg in "${aur_packages[@]}"; do - info "Building AUR package: $pkg" - git clone --depth 1 "https://aur.archlinux.org/${pkg}.git" "$build_dir/${pkg}" - (cd "$build_dir/${pkg}" && makepkg -s --noconfirm --needed) - cp "$build_dir/${pkg}"/*.pkg.tar.zst "$repo_dir/" - done - - # Create/update repo database - repo-add "$repo_dir/aur.db.tar.gz" "$repo_dir"/*.pkg.tar.zst -} -#+END_SRC - -**** 2. Add local repo to ISO's pacman.conf -In profile/pacman.conf, add: -#+BEGIN_SRC ini -[aur] -SigLevel = Optional TrustAll -Server = file:///usr/share/aur-packages -#+END_SRC - -**** 3. Copy repo into ISO -In build.sh, copy aur-packages/ to profile/airootfs/usr/share/aur-packages/ - -**** 4. Add packages to packages.x86_64 -Once in local repo, packages can be listed normally and pacman will find them. - -**** 5. Make available during installation -In install-archzfs, copy local repo to target or mount it: -#+BEGIN_SRC bash -# Copy AUR repo to target for installation -cp -r /usr/share/aur-packages /mnt/usr/share/ -# Add repo to target's pacman.conf temporarily -#+END_SRC - -*** AUR Packages to Include - -**** Essential (Priority A) -| Package | Description | Why needed | -|---------+-------------+------------| -| downgrade | Roll back to previous package versions | Essential for recovery when updates break | -| yay | AUR helper | Users can install additional AUR packages | -| informant | Check Arch news before upgrading | Prevents breaking changes from surprises | -| arch-wiki-lite | Offline Arch Wiki with CLI reader | Documentation when network is down | - -**** ZFS Management (Priority A) -| Package | Description | Why needed | -|---------+-------------+------------| -| sanoid | ZFS snapshot policy management | Automated snapshot creation/pruning | -| syncoid | ZFS replication tool (part of sanoid) | Backup to remote systems | -| zrepl | ZFS replication daemon | Alternative to sanoid for replication | - -**** System Maintenance (Priority B) -| Package | Description | Why needed | -|---------+-------------+------------| -| rate-mirrors | Fast Arch mirror selection | Better than reflector for speed | -| paru | Alternative AUR helper (Rust) | Some prefer over yay | -| pacman-cleanup-hook | Auto-remove old package cache | Disk space management | -| arch-audit | CVE security monitoring | Check for vulnerable packages | - -**** Recovery Tools (Priority B) -| Package | Description | Why needed | -|---------+-------------+------------| -| ventoy-bin | Create multiboot USB drives | Useful rescue tool | -| topgrade | Universal upgrade tool | Update everything at once | -| mkinitcpio-firmware | Suppress firmware warnings | Cleaner initramfs builds | - -**** Nice to Have (Priority C) -| Package | Description | Why needed | -|---------+-------------+------------| -| zfs-auto-snapshot | Automatic ZFS snapshots | Simple cron-based snapshots | -| btop | Modern resource monitor | Better than htop | -| duf | Modern disk usage viewer | Better than df | -| dust | Modern du replacement | Intuitive disk usage | -| procs | Modern ps replacement | Better process viewer | - -*** Considerations -- Build must run on Arch Linux (or in Arch container) -- Some AUR packages have dependencies that are also AUR - need to handle build order -- Package versions will be frozen at ISO build time -- Consider caching built packages to speed rebuilds -- May want to GPG sign the local repo for security - -*** Size Estimate -Most AUR packages are small (<5MB each). Estimate ~50-100MB for full suite. -Significantly less than pre-cloning git repos. - -** TODO [#A] Install Arch Wiki on ISO for offline package help -Include offline Arch Wiki on the ISO for package documentation and troubleshooting. -Invaluable for rescue scenarios when networking is broken - exactly when you need docs most. - -*** Reader Options - -**** Option 1: arch-wiki-lite (AUR) - Recommended -Purpose-built CLI reader for offline Arch Wiki. -#+BEGIN_SRC bash -$ wiki-search zfs -$ wiki-search mkinitcpio -#+END_SRC -- Searches articles by keyword -- Displays content as plain text in terminal -- Add to our AUR package build list - -**** Option 2: arch-wiki-docs (official) + text browser -- Package installs HTML to /usr/share/doc/arch-wiki/html/ -- Use w3m, lynx, or elinks to browse -- Would need wrapper script for searching: -#+BEGIN_SRC bash -#!/bin/bash -# archwiki - search and display offline Arch Wiki -WIKI_DIR="/usr/share/doc/arch-wiki/html" -SEARCH="$1" -MATCHES=$(find "$WIKI_DIR" -iname "*${SEARCH}*" -type f) -if [[ -n "$MATCHES" ]]; then - echo "$MATCHES" | fzf --preview 'w3m -dump {}' | xargs w3m -fi -#+END_SRC - -*** Implementation -1. Add arch-wiki-lite to AUR package list (leverages existing AUR infrastructure) -2. Also install arch-wiki-docs for complete HTML version -3. Add w3m for HTML viewing as backup -4. Document in RESCUE-GUIDE.txt - -*** Size -- arch-wiki-docs: ~500MB compressed -- arch-wiki-lite: ~200MB (text only, smaller) -- Could include both for ~600MB total - -** DONE [#B] Add zfsrollback and zfssnapshot scripts to ISO -CLOSED: [2026-01-19 Sun] -Include dedicated ZFS snapshot management scripts in the archzfs ISO rather than archsetup. -These tools belong here since they're useful for rescue scenarios and post-install management. - -*** Scripts to create - -**** zfssnapshot -Create manual or automated snapshots with consistent naming: -#+BEGIN_SRC bash -#!/bin/bash -# zfssnapshot - Create ZFS snapshots with optional retention -# Usage: zfssnapshot <dataset> [label] -# Example: zfssnapshot zroot/ROOT/arch pre-upgrade - -DATASET="$1" -LABEL="${2:-manual}" -TIMESTAMP=$(date +%Y-%m-%d_%H-%M-%S) -SNAPNAME="${DATASET}@${LABEL}_${TIMESTAMP}" - -zfs snapshot "$SNAPNAME" -echo "Created snapshot: $SNAPNAME" -#+END_SRC - -Features to consider: -- Recursive snapshots (-r flag) -- Pre-defined labels (pre-upgrade, daily, hourly) -- Integration with pacman hooks for automatic pre-upgrade snapshots -- Quiet mode for cron/systemd usage - -**** zfsrollback -Interactive rollback with safety checks: -#+BEGIN_SRC bash -#!/bin/bash -# zfsrollback - Safely rollback to a previous ZFS snapshot -# Usage: zfsrollback [dataset] -# Without args, shows all snapshots and prompts for selection - -# List snapshots with fzf for selection -SNAP=$(zfs list -t snapshot -o name,creation -s creation | \ - fzf --header "Select snapshot to rollback to") - -# Confirm before destructive operation -echo "WARNING: This will destroy all data created after the snapshot" -read -p "Rollback to $SNAP? [y/N] " confirm -[[ "$confirm" == "y" ]] && zfs rollback -r "$SNAP" -#+END_SRC - -Features to consider: -- Show snapshot diff (what will be lost) -- Create safety snapshot before rollback -- Boot environment awareness (warn if rolling back root) -- Clone instead of rollback option (preserve current state) - -*** Implementation -1. Create scripts in custom/zfssnapshot and custom/zfsrollback -2. Add to build.sh to copy to /usr/local/bin/ -3. Add file_permissions entries in profiledef.sh -4. Document in RESCUE-GUIDE.txt -5. Consider systemd timers for automated snapshots - -*** Why in archzfs instead of archsetup -- Rescue scenarios: rollback from live USB when system won't boot -- Standalone utility: works on any ZFS system, not just archsetup installs -- ISO always available: no need to install archsetup first -- Simpler: self-contained scripts vs. dependency on archsetup - -** TODO [#B] Set up CI/CD pipeline for automated ISO builds -*** Options to evaluate -- Self-hosted on TrueNAS (primary target) - - Gitea + Gitea Actions or Drone CI - - Jenkins in a jail/VM - - Woodpecker CI (lightweight Drone fork) -- GitHub Actions (if repo mirrored to GitHub) -- GitLab CI (self-hosted or gitlab.com) - -*** Requirements -- Arch Linux build environment (container or VM) -- Sudo/root access for mkarchiso -- ~10GB disk space per build -- Caching for pacman packages to speed builds - -*** Considerations -- Trigger builds on push to main -- Scheduled builds (weekly?) to catch upstream updates -- Store artifacts (ISO) with retention policy -- Notifications on build failure -- Test automation (boot ISO in QEMU, run checks) - -*** TrueNAS-specific tips -- Use a jail or VM for the CI runner -- Consider bhyve VM with Arch Linux for native builds -- Mount dataset for build artifacts and cache -- Snapshot before/after builds for easy cleanup - -** DONE [#C] Consider Avahi for USB boot disk discoverability -CLOSED: [2026-01-19 Sun] -Make the live ISO discoverable on the network by name (e.g., archzfs.local) when booted. -This would make SSH access easier without needing to find the IP address. - -Implemented in commit 0bd172a: -- Added avahi and nss-mdns packages to ISO -- Enabled avahi-daemon.service -- Set hostname to "archzfs" -- Live ISO now accessible as root@archzfs.local - -** DONE [#B] Add Avahi mDNS to installed systems -CLOSED: [2026-01-19 Sun] -Matches archsetup's implementation: install avahi + nss-mdns, enable avahi-daemon. - -Added to install-archzfs: -- Packages: avahi, nss-mdns (in pacstrap) -- Service: avahi-daemon enabled - -After installation, system will be accessible as <hostname>.local on the local network. -Example: ratio.local, framework.local, etc. - -** TODO [#C] Consider adding bootable archzfs ISO to GRUB boot menu -Store the archzfs ISO on disk and add a GRUB menu entry to boot it directly - no USB drive needed for recovery/reinstall. - -*** Benefits -- Always have a rescue environment available -- Can reinstall or rollback without external media -- Useful for remote/headless servers - -*** Challenges -1. Storage location - ISO is 5GB. Can't live on ZFS (GRUB can't read it). Options: - - EFI partition (currently 1GB - would need to be larger) - - Dedicated recovery partition (ext4 or FAT32) - - Second EFI partition just for the ISO - -2. GRUB loopback boot - Arch ISOs support this with the right kernel params: - #+BEGIN_SRC - menuentry "Archzfs Recovery" { - loopback loop /path/to/archzfs.iso - linux (loop)/arch/boot/x86_64/vmlinuz-linux archisolabel=ARCHZFS - initrd (loop)/arch/boot/x86_64/initramfs-linux.img - } - #+END_SRC - -3. Keeping it updated - Would need a mechanism to update the ISO when rebuilding - -*** Questions to resolve -- Is this for recovery scenarios, or would you actually reinstall from it? -- Would you want this integrated into the installer (auto-create recovery partition)? -- Or just document how to set it up manually? - -** TODO [#C] Research mkosi as alternative to mkarchiso -Investigate whether mkosi (systemd project) offers advantages over mkarchiso. - -*** Comparison -| Aspect | mkarchiso | mkosi | -|--------|-----------|-------| -| Purpose | Live ISO images | Disk images, containers, ISOs | -| Config | Shell scripts + file structure | Declarative TOML files | -| Output | ISO9660 (USB/CD) | GPT disk images, tarballs, ISOs | -| Boot | GRUB/syslinux/systemd-boot | UKI (Unified Kernel Images) | -| Distros | Arch only | Arch, Fedora, Debian, Ubuntu | -| Build env | Host or chroot | Container-native, reproducible | - -*** Where mkosi shines -- Reproducible builds - designed for CI/CD, hermetic builds -- Unified Kernel Images - modern secure boot (kernel+initrd+cmdline in one signed EFI) -- VM images - can output raw disk images directly (great for QEMU testing) -- Declarative - TOML config instead of shell scripts - -*** Where mkarchiso is better for us -- Arch ecosystem - all docs, examples, community use it -- ZFS live environment - archiso has the hooks we need -- Proven - we know it works for our use case - -*** Verdict -Keep mkarchiso for now. mkosi could be valuable for: -- VM test images instead of booting ISOs -- Future UKI boot (more secure boot chain) -- Reproducibility when CI/CD becomes important - -*** References -- https://wiki.archlinux.org/title/Mkosi -- https://github.com/systemd/mkosi - -** Ideas from arch-linux-live-cd-iso-with-zfs project -Reference: /home/cjennings/code/arch-linux-live-cd-iso-with-zfs -GitHub: https://github.com/stevleibelt/arch-linux-live-cd-iso-with-zfs - -*** TODO [#A] Integrate ZFSBootMenu as alternative boot manager -ZFSBootMenu is a powerful boot manager specifically designed for ZFS root systems. -It provides boot environment selection, snapshot rollback from boot menu, and recovery options. - -Benefits: -- Boot directly into any ZFS snapshot -- Rollback to previous boot environment without booting first -- Better ZFS-native boot experience than GRUB -- Single EFI file (~15MB) that can be updated independently - -Implementation: -- Download portable EFI from https://get.zfsbootmenu.org/efi -- Include in ISO's /root/software/zfsbootmenu/ -- Add update script for post-installation updates -- Consider as GRUB alternative or supplement - -Reference: https://zfsbootmenu.org/ - -*** TODO [#B] Add Docker/Podman container support for builds -The reference project uses containers with minimal capabilities instead of full root/privileged mode. -This improves security and reproducibility. - -Capabilities needed for mkarchiso: -- DAC_OVERRIDE -- SYS_ADMIN -- SYS_CHROOT -- SYS_MODULE -- Device: /dev/loop-control - -Benefits: -- Reproducible builds across different host systems -- No need to install archiso on host -- Cleaner build environment -- Easier CI/CD integration - -*** TODO [#B] Support building against Arch Linux Archive snapshots -When archzfs lags behind the main Arch repos, builds can fail due to kernel version mismatch. -The reference project supports pinning to historical repo snapshots. - -Implementation: -- Add -r/--repo-date flag to build.sh -- Use archive.archlinux.org for historical packages -- Example: ./build.sh -r 2026/01/15 or ./build.sh -r week - -This solves the common problem of ZFS packages not being available for the latest kernel. - -*** TODO [#C] Add build logging with tee -Capture all build output to a log file for debugging and CI artifact collection. - -Implementation: -#+BEGIN_SRC bash -exec &> >(tee "build-$(date +%Y%m%d-%H%M%S).log") -#+END_SRC - -Also useful: Check log for known error patterns (e.g., DKMS failures) and fail fast. - -Note: Simple to implement but low urgency. - -*** TODO [#C] Support multi-variant ISO builds -The reference project builds 8 variants automatically: -- linux vs linux-lts kernel -- DKMS vs native ZFS packages -- Default vs experimental archzfs repos - -Could be useful for offering users choice between stability and bleeding-edge. -Lower priority since we currently focus on linux-lts + DKMS for maximum compatibility. - -*** TODO [#C] Pre-clone useful tools and documentation into ISO -The reference project bundles Git repos (without .git dirs) into /root: -- archinstall (official installer) -- downgrade (package rollback) -- ZFS howtos and documentation -- Recovery scripts - -Already partially implemented (have rescue tools), but could expand with: -- Pre-cloned arch-linux-configuration scripts -- ZFS administration cheatsheets -- Offline troubleshooting guides - -*** TODO [#C] Add environment file configuration (.env pattern) -Allow build customization via .env file instead of command-line flags. -Useful for CI/CD and reproducible builds. - -Example .env: -#+BEGIN_SRC -KERNEL=linux-lts -USE_DKMS=1 -BE_VERBOSE=0 -PACKAGES_TO_ADD=git,vim -PACKAGES_TO_REMOVE=b43-fwcutter -#+END_SRC - -*** TODO [#C] Add dry-run mode to build.sh -Support --dry-run flag that shows what would be done without executing. -Useful for testing configuration changes and debugging. - -* Resolved -** DONE [#B] Add config file information to README -Config file format documented in README.org with full reference and examples. - -** DONE [#B] Add CI/CD test infrastructure -Added Makefile, test-install.sh, and test configs for automated VM testing. - -** CANCELLED [#C] Consider Dialog-Based Interface for Status, Information, and Questions -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 - -** DONE [#C] Add date/timestamp to install-archzfs log -Log filename now includes timestamp: /tmp/install-archzfs-YYYY-MM-DD-HH-MM-SS.log -Also includes header with start time inside the log file. - -** DONE [#B] Add common recovery tools to archzfs ISO -CLOSED: [2026-01-18 Sat] -Make the ISO double as a general-purpose recovery disk. -See custom/RESCUE-GUIDE.txt for comprehensive documentation of all tools. - -*** Research Sources -- [[https://www.system-rescue.org/Detailed-packages-list/][SystemRescue Package List]] - Arch-based rescue distro with 1000+ packages -- [[https://alternativeto.net/software/hiren39s-bootcd/][Hiren's BootCD Alternatives]] - Popular rescue disk comparisons -- [[https://www.chntpw.com/][chntpw]] - Windows password reset tool -- [[https://rtech.support/disks/encryption/dislocker/][Dislocker]] - BitLocker decryption on Linux - -*** Currently on archzfs ISO -- ZFS tools (zpool, zfs, zfs-utils) -- Base Arch system (coreutils, util-linux, systemd) -- Network (networkmanager, openssh, curl, wget) -- Editors (vim) -- Partitioning (parted, gdisk) -- Filesystem (dosfstools, e2fsprogs) - -*** Proposed Additions by Category - -**** Data Recovery & Forensics -| Package | Description | Size | -|---------+-------------+------| -| testdisk | Partition/file recovery, fixes partition tables | ~2MB | -| ddrescue | Copy data from failing drives with retries | ~1MB | -| foremost | File carving based on headers/footers | ~1MB | -| sleuthkit | Forensic analysis toolkit (icat, fls, etc.) | ~5MB | -| safecopy | Low-level data recovery from damaged media | ~1MB | - -**** Disk Cloning & Imaging -| Package | Description | Size | -|---------+-------------+------| -| partclone | Efficient partition cloning (used by Clonezilla) | ~2MB | -| fsarchiver | Filesystem archiver with compression | ~1MB | -| partimage | Partition imaging (legacy, but useful) | ~1MB | - -**** Windows Recovery -| Package | Description | Size | -|---------+-------------+------| -| chntpw | Reset Windows passwords, edit registry | ~500KB | -| dislocker | Read/write BitLocker encrypted volumes | ~1MB | -| ntfs-3g | Full NTFS read/write support | (likely included) | -| hivex | Windows registry hive extraction | ~500KB | -| ms-sys | Write Windows MBR/boot records | ~100KB | - -**** Filesystem Tools -| Package | Description | Size | -|---------+-------------+------| -| ntfs-3g | NTFS read/write | ~2MB | -| exfatprogs | exFAT support | ~500KB | -| btrfs-progs | Btrfs tools | ~5MB | -| xfsprogs | XFS tools | ~3MB | -| f2fs-tools | Flash-Friendly FS tools | ~1MB | -| hfsprogs | HFS/HFS+ (Mac) support | ~1MB | - -**** Hardware Diagnostics -| Package | Description | Size | -|---------+-------------+------| -| smartmontools | SMART disk health monitoring | ~1MB | -| hdparm | HDD/SSD parameter tuning | ~500KB | -| nvme-cli | NVMe drive management | ~1MB | -| lshw | Detailed hardware lister | ~1MB | -| dmidecode | DMI/SMBIOS decoder | ~500KB | -| memtester | Userspace memory testing | ~100KB | -| stress-ng | CPU/memory/IO stress testing | ~2MB | -| i2c-tools | I2C/SMBus tools | ~500KB | -| lm_sensors | Hardware monitoring (temps, fans, voltages) | ~500KB | - -**** Network Diagnostics -| Package | Description | Size | -|---------+-------------+------| -| nmap | Network scanner and security auditing | ~25MB | -| tcpdump | Command-line packet analyzer | ~1MB | -| wireshark-cli | TShark packet analysis | ~50MB | -| iperf3 | Network bandwidth testing | ~500KB | -| mtr | Combined ping/traceroute | ~500KB | -| iftop | Network bandwidth monitor | ~500KB | -| nethogs | Per-process bandwidth monitor | ~500KB | -| ethtool | NIC configuration/diagnostics | ~500KB | -| bind | dig/nslookup DNS tools | ~5MB | - -**** Security & Malware Scanning -| Package | Description | Size | -|---------+-------------+------| -| clamav | Open source antivirus engine | ~150MB | -| rkhunter | Rootkit detection | ~1MB | -| chkrootkit | Rootkit checker | ~500KB | -| lynis | Security auditing tool | ~1MB | - -**** Boot Repair -| Package | Description | Size | -|---------+-------------+------| -| efibootmgr | UEFI boot manager (likely included) | ~100KB | -| grub | GRUB bootloader tools (included) | - | -| os-prober | Detect other OSes for GRUB | ~100KB | -| syslinux | Legacy bootloader tools | ~2MB | - -**** File Management & Compression -| Package | Description | Size | -|---------+-------------+------| -| mc | Midnight Commander file manager | ~2MB | -| ncdu | NCurses disk usage analyzer | ~500KB | -| tree | Directory listing | ~100KB | -| p7zip | 7-Zip compression | ~3MB | -| unrar | RAR extraction | ~500KB | -| cabextract | Windows CAB extraction | ~100KB | -| cpio | Archive tool (initramfs) | ~500KB | - -**** Remote Access -| Package | Description | Size | -|---------+-------------+------| -| remmina | RDP/VNC client (GUI) | ~10MB | -| tigervnc | VNC server/client | ~5MB | -| screen | Terminal multiplexer | ~1MB | -| tmux | Terminal multiplexer | ~1MB | - -**** Monitoring & System Info -| Package | Description | Size | -|---------+-------------+------| -| htop | Interactive process viewer | ~500KB | -| iotop | I/O monitoring | ~100KB | -| atop | Advanced system monitor | ~500KB | -| inxi | System information script | ~500KB | -| neofetch | System info display | ~500KB | - -**** GUI Tools (if keeping Xfce or adding minimal X) -| Package | Description | Size | -|---------+-------------+------| -| gparted | Graphical partition editor | ~5MB | -| baobab | Disk usage analyzer | ~3MB | -| gnome-disk-utility | GNOME Disks | ~5MB | - -*** Summary Table (Quick Reference) -| Category | Key Tools | Est. Size | -|----------+-----------+-----------| -| Data Recovery | testdisk, ddrescue, foremost, sleuthkit | ~10MB | -| Disk Cloning | partclone, fsarchiver | ~4MB | -| Windows Recovery | chntpw, dislocker, hivex, ms-sys | ~3MB | -| Filesystem | ntfs-3g, exfatprogs, btrfs-progs, xfsprogs, hfsprogs | ~12MB | -| Hardware Diag | smartmontools, hdparm, nvme-cli, lshw, memtester, stress-ng, lm_sensors | ~8MB | -| Network | nmap, tcpdump, iperf3, mtr, iftop, bind | ~35MB | -| Security | clamav, rkhunter, chkrootkit | ~150MB | -| Boot Repair | os-prober, syslinux | ~2MB | -| File Mgmt | mc, ncdu, p7zip, unrar | ~6MB | -| Remote | screen, tmux, tigervnc | ~7MB | -| Monitoring | htop, iotop, inxi | ~2MB | - -*** Size Estimate -- Core recovery tools (no ClamAV/Wireshark): ~90MB -- With ClamAV: +150MB -- With Wireshark CLI: +50MB -- GUI tools (optional): ~20MB -- Total estimate: ~150-300MB additional -- Current ISO size: 5.1GB -- Projected size with all tools: ~5.4GB - -*** Discussion Notes -- SystemRescue is also Arch-based, making it a good reference for package names -- Hiren's BootCD PE is now Windows-based, but older Linux version had good tool selection -- Most recovery scenarios need: testdisk, ddrescue, chntpw, smartmontools, ntfs-3g -- For Windows malware scanning, ClamAV is the standard open-source option -- Consider: could offer two ISO variants (minimal vs full rescue) - -*** Questions to Resolve -- Include ClamAV? Adds ~150MB but very useful for Windows malware scanning -- Include Wireshark CLI (tshark)? Adds ~50MB for network forensics -- Keep ISO under specific size target (e.g., 6GB for single-layer DVD)? -- Add GUI tools or keep it minimal/CLI-focused? -- Create separate "rescue" build profile or add to main ISO? -- Priority order for implementation? - |
