fix: restore user-mode libvirt (no sudo) and fix preseed partitioning

Two critical fixes in this commit:

1. VM Creation Regression (13139f2):
   - Restored qemu:///session (user mode) from qemu:///system (root mode)
   - Changed storage paths from /var/lib/libvirt/images to ~/.local/share/libvirt/images
   - Removed all sudo calls from vm_create and vm_destroy functions
   - Updated test to expect session URI

2. Preseed Partitioning Fix:
   - Added GPT partition table directives
   - Added LVM confirmation settings
   - Fixed EFI partition syntax per Debian official example
   - Fixed /boot max size from 512 to 1024
   - KEY FIX: Added 'partman-auto/choose_recipe select efi-boot-root'

Additional changes:
- Added LICENSE file (GNU AGPL v3.0 only)
- Updated AGENTS.md to enforce auto-commit/push behavior

💘 Generated with Crush

Assisted-by: GLM-4.7 via Crush <crush@charm.land>
This commit is contained in:
Charles N Wyble
2026-02-20 10:10:06 -05:00
parent 48d635d8cc
commit af03f2feba
5 changed files with 729 additions and 26 deletions

View File

@@ -50,23 +50,33 @@ d-i passwd/user-default-groups string audio,video,plugdev,input,cdrom,floppy
# Partitioning (LUKS full disk encryption - MANDATORY)
# For UEFI systems, we need: EFI System Partition, /boot, encrypted LUKS+LVM
# Force GPT partition table for UEFI
d-i partman-partitioning/choose_label select gpt
d-i partman-partitioning/default_label string gpt
d-i partman-auto/disk string /dev/sda
d-i partman-auto/method string crypto
# LVM configuration
d-i partman-auto-lvm/device_remove_lvs boolean true
d-i partman-auto-lvm/device_remove_lvs_span boolean true
d-i partman-auto-lvm/guided_size string max
d-i partman-auto-lvm/new_vg_name string knel_vg
d-i partman-lvm/device_remove_lvm boolean true
d-i partman-lvm/confirm boolean true
d-i partman-lvm/confirm_nooverwrite boolean true
# Expert recipe for UEFI + encrypted LVM
# Structure: ESP (EFI) -> /boot -> LUKS encrypted container -> LVM VG -> root + swap
d-i partman-auto/expert_recipe string \
efi-boot-root :: \
256 512 512 fat32 \
$primary{ } \
538 538 1075 free \
$iflabel{ gpt } \
$reusemethod{ } \
method{ efi } format{ } \
use_filesystem{ } filesystem{ fat32 } \
. \
512 1024 512 ext4 \
512 1024 1024 ext4 \
$primary{ } $bootable{ } \
method{ format } format{ } \
use_filesystem{ } filesystem{ ext4 } \
@@ -87,6 +97,9 @@ d-i partman-auto/expert_recipe string \
method{ swap } format{ } \
.
# Select our custom recipe
d-i partman-auto/choose_recipe select efi-boot-root
# LUKS encryption configuration (AES-XTS, 256-bit key)
# NOTE: Passphrase will be prompted during installation
# REQUIREMENTS: 14+ characters, mix of upper/lower/digits/special