aboutsummaryrefslogtreecommitdiff
path: root/docs/PLAN-archangel-btrfs.org
diff options
context:
space:
mode:
authorCraig Jennings <c@cjennings.net>2026-01-23 22:57:21 -0600
committerCraig Jennings <c@cjennings.net>2026-01-23 22:57:21 -0600
commite4ee55f9706d5567f45b6b4f6f007c09709fdfea (patch)
tree93b017f7d3b8c76c752e25b2e7c380019bc33355 /docs/PLAN-archangel-btrfs.org
parent4560cbdc55e6bd5abe643806e4115d67313db564 (diff)
downloadarchangel-e4ee55f9706d5567f45b6b4f6f007c09709fdfea.tar.gz
archangel-e4ee55f9706d5567f45b6b4f6f007c09709fdfea.zip
Phase 2.1: Implement btrfs support
- 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)
Diffstat (limited to 'docs/PLAN-archangel-btrfs.org')
-rw-r--r--docs/PLAN-archangel-btrfs.org34
1 files changed, 26 insertions, 8 deletions
diff --git a/docs/PLAN-archangel-btrfs.org b/docs/PLAN-archangel-btrfs.org
index ea39bf6..9d91db7 100644
--- a/docs/PLAN-archangel-btrfs.org
+++ b/docs/PLAN-archangel-btrfs.org
@@ -98,7 +98,14 @@ BTRFS_OPTS="noatime,compress=zstd,space_cache=v2,discard=async"
- [ ] Verify appears in snapper list
- [ ] Verify appears in GRUB menu
-** 2.7 LUKS encryption (optional)
+** 2.7 Test basic btrfs (before encryption)
+- [ ] VM test: single-disk btrfs install
+- [ ] Verify subvolumes created correctly
+- [ ] Verify GRUB boots and shows snapshots
+- [ ] Verify snapper works
+- [ ] Verify genesis snapshot exists
+
+** 2.8 LUKS encryption (after basic btrfs works)
- [ ] Add encryption prompt (yes/no)
- [ ] Create LUKS container on root partition
- [ ] Configure crypttab
@@ -107,20 +114,31 @@ BTRFS_OPTS="noatime,compress=zstd,space_cache=v2,discard=async"
* Phase 3: Multi-disk Btrfs
-Goal: Mirror support for btrfs.
+Goal: Full multi-disk support for btrfs (matching ZFS capabilities).
-** 3.1 Btrfs RAID1 creation
-- [ ] Detect multi-disk selection
-- [ ] Create raid1 volume: mkfs.btrfs -d raid1 -m raid1 /dev/sdX /dev/sdY
-- [ ] Handle 2+ disk configurations
+** 3.1 RAID level support
+- [ ] Stripe (raid0): mkfs.btrfs -d raid0 -m raid0
+- [ ] Mirror (raid1): mkfs.btrfs -d raid1 -m raid1
+- [ ] raid10: mkfs.btrfs -d raid10 -m raid10 (4+ disks)
+- [ ] raid5: mkfs.btrfs -d raid5 -m raid5 (3+ disks, warn: unstable)
+- [ ] raid6: mkfs.btrfs -d raid6 -m raid6 (4+ disks, warn: unstable)
+- [ ] Detect multi-disk selection and offer appropriate levels
+- [ ] Handle mixed disk sizes gracefully
-** 3.2 EFI redundancy
+** 3.2 Encryption + multi-disk
+- [ ] LUKS on each disk before btrfs
+- [ ] crypttab entries for all disks
+- [ ] Test unlock sequence at boot
+- [ ] Single passphrase unlocks all (keyfile approach)
+
+** 3.3 EFI redundancy
- [ ] Create EFI partition on all disks
- [ ] Install GRUB to all EFI partitions
- [ ] Create boot entries for each disk
-** 3.3 Degraded boot support
+** 3.4 Degraded boot support
- [ ] Add degraded mount option for emergency
+- [ ] Kernel param: rootflags=degraded
- [ ] Document recovery procedure
* Phase 4: Testing Infrastructure