aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCraig Jennings <c@cjennings.net>2026-01-23 20:05:01 -0600
committerCraig Jennings <c@cjennings.net>2026-01-23 20:05:01 -0600
commitf757fedf2a88760d5ddd3a815998f15572a20069 (patch)
tree08b1839949401308b6659078fa8f1ffd65078e95
parent53e82d802dba330ec8e5a568d6250e04f1193f0c (diff)
downloadarchangel-f757fedf2a88760d5ddd3a815998f15572a20069.tar.gz
archangel-f757fedf2a88760d5ddd3a815998f15572a20069.zip
Phase 1.5: Rename to archangel
- 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.
-rwxr-xr-xbuild.sh8
-rwxr-xr-xcustom/archangel (renamed from custom/install-archzfs)18
-rw-r--r--custom/archangel.conf.example (renamed from custom/install-archzfs.conf.example)0
3 files changed, 14 insertions, 12 deletions
diff --git a/build.sh b/build.sh
index 58d5952..8a1b74c 100755
--- a/build.sh
+++ b/build.sh
@@ -368,7 +368,7 @@ EOF
# Copy our custom scripts
info "Copying custom scripts..."
-cp "$CUSTOM_DIR/install-archzfs" "$PROFILE_DIR/airootfs/usr/local/bin/"
+cp "$CUSTOM_DIR/archangel" "$PROFILE_DIR/airootfs/usr/local/bin/"
cp -r "$CUSTOM_DIR/lib" "$PROFILE_DIR/airootfs/usr/local/bin/"
cp "$CUSTOM_DIR/install-claude" "$PROFILE_DIR/airootfs/usr/local/bin/"
cp "$CUSTOM_DIR/archsetup-zfs" "$PROFILE_DIR/airootfs/usr/local/bin/"
@@ -380,7 +380,7 @@ cp "$CUSTOM_DIR/zfsrollback" "$PROFILE_DIR/airootfs/usr/local/bin/"
# Copy example config for unattended installs
mkdir -p "$PROFILE_DIR/airootfs/root"
-cp "$CUSTOM_DIR/install-archzfs.conf.example" "$PROFILE_DIR/airootfs/root/"
+cp "$CUSTOM_DIR/archangel.conf.example" "$PROFILE_DIR/airootfs/root/"
# Copy rescue guide
info "Copying rescue guide..."
@@ -390,7 +390,7 @@ cp "$CUSTOM_DIR/RESCUE-GUIDE.txt" "$PROFILE_DIR/airootfs/root/"
info "Setting file permissions..."
if grep -q "file_permissions=" "$PROFILE_DIR/profiledef.sh"; then
sed -i '/^file_permissions=(/,/)/ {
- /)/ i\ ["/usr/local/bin/install-archzfs"]="0:0:755"
+ /)/ i\ ["/usr/local/bin/archangel"]="0:0:755"
}' "$PROFILE_DIR/profiledef.sh"
sed -i '/^file_permissions=(/,/)/ {
/)/ i\ ["/usr/local/bin/install-claude"]="0:0:755"
@@ -470,7 +470,7 @@ if [[ -f "$ISO_FILE" ]]; then
info "After booting:"
echo " - ZFS is pre-loaded (no setup needed)"
echo " - SSH is enabled (root password: $LIVE_ROOT_PASSWORD)"
- echo " - Run 'install-archzfs' to start installation"
+ echo " - Run 'archangel' to start installation"
echo ""
info "SSH access (from host):"
echo " ssh -p 2222 root@localhost"
diff --git a/custom/install-archzfs b/custom/archangel
index f604f5c..f9bc637 100755
--- a/custom/install-archzfs
+++ b/custom/archangel
@@ -1,20 +1,22 @@
#!/bin/bash
-# install-archzfs - Arch Linux ZFS Root Installation Script
+# archangel - Arch Linux Installer with Snapshot-Based Recovery
# Craig Jennings <c@cjennings.net>
#
-# Installs Arch Linux on ZFS root with optional native encryption.
-# Designed to be run from the custom archzfs ISO.
+# Installs Arch Linux on ZFS or Btrfs root with snapshot support.
+# Choose your filesystem: ZFS (native encryption) or Btrfs (GRUB snapshots).
#
# Features:
+# - Filesystem choice: ZFS or Btrfs
# - All questions asked upfront, then unattended installation
# - Optional WiFi configuration with connection test
# - Optional ZFS native encryption (passphrase required at boot)
-# - Pre-pacman ZFS snapshots for safe upgrades
+# - Pre-pacman snapshots for safe upgrades
+# - Genesis snapshot for factory reset
#
# UNATTENDED MODE:
-# Use --config-file /path/to/install-archzfs.conf for automated installs.
+# Use --config-file /path/to/archangel.conf for automated installs.
# Config file must be explicitly specified to prevent accidental disk wipes.
-# See /root/install-archzfs.conf.example for a template with all options.
+# See /root/archangel.conf.example for a template with all options.
set -e
@@ -59,13 +61,13 @@ ENABLE_SSH="yes" # Enable SSH with root login (default yes for headless)
NO_ENCRYPT="no" # Skip ZFS encryption (for testing only)
# Logging
-LOGFILE="/tmp/install-archzfs-$(date +'%Y-%m-%d-%H-%M-%S').log"
+LOGFILE="/tmp/archangel-$(date +'%Y-%m-%d-%H-%M-%S').log"
exec > >(tee -a "$LOGFILE") 2>&1
# Log header with timestamp
echo ""
echo "================================================================================"
-echo "install-archzfs started @ $(date +'%Y-%m-%d %H:%M:%S')"
+echo "archangel started @ $(date +'%Y-%m-%d %H:%M:%S')"
echo "================================================================================"
echo ""
diff --git a/custom/install-archzfs.conf.example b/custom/archangel.conf.example
index dacf340..dacf340 100644
--- a/custom/install-archzfs.conf.example
+++ b/custom/archangel.conf.example