v0.5.7: drop LVM, native btrfs-on-LUKS partitioning

Auto-install round 3 hit:

  Configuring storage
  Creating disklabel on /dev/vda
  Creating luks on /dev/vda3
  Creating lvmpv on /dev/mapper/luks-...
  Creating btrfs on /dev/mapper/veilor-root
  Running in cmdline mode, no interactive debugging allowed.
  The exact error message is:
  mount failed: wrong fs type, bad option, bad superblock on
  /dev/mapper/veilor-root, missing codepage or helper program

LVM+btrfs combination causes mount failure under anaconda --cmdline.
mkfs.btrfs runs but post-create mount can't find a valid superblock.

Fix: drop LVM intermediary. Use native btrfs-on-LUKS — same pattern
Fedora KDE Spin uses by default. Cleaner, snapshot story unchanged
(btrfs subvols give us root/home split + rollback potential without
LVM's overhead).

New layout:
  vda1: efi (600M)
  vda2: ext4 /boot (1024M)
  vda3: LUKS2 → btrfs (label=veilor)
       ├── subvol root → /
       └── subvol home → /home

ksvalidator clean on the new template.
This commit is contained in:
veilor-org 2026-05-03 02:45:16 +01:00
parent 7286697a64
commit 8c227abee4

View file

@ -314,14 +314,19 @@ user --name=admin --groups=wheel --gecos="veilor admin" --password=__ADMIN_PW__
# --location=none: anaconda auto-places bootloader (UEFI grub2-efi or BIOS).
bootloader --location=none --append="lockdown=integrity slab_nomerge init_on_alloc=1 init_on_free=1 randomize_kstack_offset=on vsyscall=none"
# Disk: zero, LUKS2 (argon2id), btrfs subvolumes
# Disk: zero, LUKS2 (argon2id), btrfs subvolumes (no LVM intermediary).
# Native btrfs-on-LUKS matches Fedora KDE Spin defaults; LVM+btrfs combo
# triggered "mount failed: wrong fs type, bad option, bad superblock"
# under anaconda --cmdline. btrfs subvols give us the snapshot/rollback
# story without LVM's added complexity.
zerombr
clearpart --all --initlabel --drives=__DISK_BASENAME__
part /boot/efi --fstype=efi --size=600
part /boot --fstype=ext4 --size=1024
part pv.veilor --grow --encrypted --luks-version=luks2 --pbkdf=argon2id --passphrase=__LUKS_PW__
volgroup veilor pv.veilor
logvol / --vgname=veilor --name=root --fstype=btrfs --size=8192 --grow
part btrfs.veilor --grow --encrypted --luks-version=luks2 --pbkdf=argon2id --passphrase=__LUKS_PW__
btrfs none --label=veilor btrfs.veilor
btrfs / --subvol --name=root LABEL=veilor
btrfs /home --subvol --name=home LABEL=veilor
# ── Packages — mirrors live ks (kickstart/veilor-os.ks 63-141), minus
# live-only entries (livesys-scripts, anaconda-live, @anaconda-tools,