- Remove $defaultignore{ } from LVM partitions (was preventing root FS detection)
- Fix swap minimum size from 100% to 1024
- Use -1 for root max size to fill available space
- Ensure LVM logical volumes are properly recognized inside LUKS container
Fixes: "No root file system is defined" error during installation
💘 Generated with Crush
Assisted-by: GLM-4.7 via Crush <crush@charm.land>
156 lines
5.8 KiB
INI
156 lines
5.8 KiB
INI
# Localization - suppress all locale questions
|
|
d-i debian-installer/locale string en_US.UTF-8
|
|
d-i debian-installer/supported_locales multiselect en_US.UTF-8
|
|
d-i console-setup/ask_detect boolean false
|
|
d-i console-setup/layoutcode string us
|
|
d-i console-setup/variantcode string
|
|
|
|
# Keyboard
|
|
d-i keyboard-configuration/xkb-keymap select us
|
|
d-i keyboard-configuration/toggle select No toggling
|
|
|
|
# Set debconf priority to high (allows user password prompts)
|
|
# Using 'critical' suppresses the non-root user password prompt
|
|
d-i debconf/priority select high
|
|
|
|
# Network configuration
|
|
d-i netcfg/choose_interface select auto
|
|
d-i netcfg/disable_autoconfig boolean false
|
|
d-i netcfg/get_hostname string knel-football
|
|
d-i netcfg/get_domain string knel.net
|
|
d-i netcfg/hostname string knel-football
|
|
|
|
# Mirror configuration
|
|
d-i mirror/country string manual
|
|
d-i mirror/http/hostname string deb.debian.org
|
|
d-i mirror/http/directory string /debian
|
|
d-i mirror/http/proxy string
|
|
|
|
# Clock and time zone setup
|
|
d-i time/zone string US/Chicago
|
|
d-i clock-setup/utc boolean true
|
|
d-i clock-setup/ntp boolean true
|
|
|
|
# User setup
|
|
# SECURITY: Passwords are prompted during installation, not hardcoded
|
|
# This ensures each installation has unique credentials
|
|
d-i passwd/user-fullname string football user
|
|
d-i passwd/username string football
|
|
# Force password prompt during installation
|
|
d-i passwd/user-password-crypted string !
|
|
d-i passwd/root-password-crypted string !
|
|
d-i passwd/root-login boolean true
|
|
|
|
# Password quality enforcement (MANDATORY for tier0 security)
|
|
d-i passwd/make-user boolean true
|
|
d-i passwd/user-default-groups string audio,video,plugdev,input,cdrom,floppy
|
|
|
|
# PAM password quality configuration (enforced in installed system)
|
|
# This will be configured in post-installation hooks
|
|
|
|
# Partitioning (LUKS full disk encryption - MANDATORY)
|
|
# For UEFI systems, we need: EFI System Partition, /boot, encrypted LUKS+LVM
|
|
d-i partman-auto/disk string /dev/sda
|
|
d-i partman-auto/method string crypto
|
|
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
|
|
|
|
# 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{ } \
|
|
method{ efi } format{ } \
|
|
use_filesystem{ } filesystem{ fat32 } \
|
|
. \
|
|
512 1024 512 ext4 \
|
|
$primary{ } $bootable{ } \
|
|
method{ format } format{ } \
|
|
use_filesystem{ } filesystem{ ext4 } \
|
|
mountpoint{ /boot } \
|
|
. \
|
|
10000 20000 -1 ext4 \
|
|
$lvmok{ } \
|
|
in_vg{ knel_vg } \
|
|
lv_name{ root } \
|
|
method{ format } format{ } \
|
|
use_filesystem{ } filesystem{ ext4 } \
|
|
mountpoint{ / } \
|
|
. \
|
|
1024 200% 8192 linux-swap \
|
|
$lvmok{ } \
|
|
in_vg{ knel_vg } \
|
|
lv_name{ swap } \
|
|
method{ swap } format{ } \
|
|
.
|
|
|
|
# LUKS encryption configuration (AES-XTS, 256-bit key)
|
|
# NOTE: Passphrase will be prompted during installation
|
|
# REQUIREMENTS: 14+ characters, mix of upper/lower/digits/special
|
|
# This passphrase unlocks the encrypted disk at boot time
|
|
d-i partman-crypto/erase_disks boolean true
|
|
d-i partman-crypto/erase_disks_secure boolean true
|
|
|
|
# LUKS cipher selection
|
|
d-i partman-crypto/cipher aes-xts-plain64
|
|
d-i partman-crypto/keysize 512
|
|
d-i partman-crypto/lvm boolean true
|
|
|
|
# LUKS2 format (modern, more secure)
|
|
d-i partman-crypto/use-luks2 boolean true
|
|
|
|
# Confirm partitioning
|
|
d-i partman-partitioning/confirm_write_new_label boolean true
|
|
d-i partman/choose_partition select finish
|
|
d-i partman/confirm boolean true
|
|
d-i partman/confirm_nooverwrite boolean true
|
|
|
|
# Package selection
|
|
tasksel tasksel/first multiselect standard
|
|
d-i pkgsel/include string \
|
|
icewm \
|
|
lightdm \
|
|
remmina \
|
|
wireguard \
|
|
wireguard-tools \
|
|
mousepad \
|
|
zbar-tools \
|
|
nftables \
|
|
openssh-client \
|
|
cryptsetup \
|
|
cryptsetup-initramfs \
|
|
busybox \
|
|
dmsetup \
|
|
libpam-pwquality
|
|
|
|
# Boot loader configuration
|
|
d-i grub-installer/only_debian boolean true
|
|
d-i grub-installer/with_other_os boolean false
|
|
d-i grub-installer/bootdev string default
|
|
d-i grub-installer/force-efi-extra-removable boolean true
|
|
|
|
# Popularity contest - do not participate
|
|
popularity-contest popularity-contest/participate boolean false
|
|
|
|
# Security configuration
|
|
d-i security/updates select none
|
|
d-i passwd/shadow boolean true
|
|
|
|
# Finish
|
|
d-i finish-install/reboot_in_progress note
|
|
d-i cdrom-detect/eject boolean false
|
|
|
|
# Skip additional prompts
|
|
d-i apt-setup/contrib boolean false
|
|
d-i apt-setup/non-free boolean false
|
|
d-i apt-setup/backports boolean false
|
|
d-i apt-setup/services-select multiselect
|
|
|
|
# Don't ask about kernel flavors
|
|
d-i base-installer/kernel/image select linux-image-amd64
|
|
|
|
# Don't ask about hostname confirmation
|
|
d-i netcfg/confirm_static boolean true |