The debconf preseed parser interprets \n in string values as literal
newlines. The printf format string had its \n converted to real newlines
before the shell saw it, causing ExecStart= to be executed as a separate
command ("Illegal number: ExecStart="). Replace the single printf with
multiple echo statements that avoid \n entirely.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
70 lines
2.4 KiB
INI
70 lines
2.4 KiB
INI
# Yino preseed configuration for Debian 13 (Trixie)
|
|
# Performs an unattended install, prompting only for:
|
|
# 1. LUKS encryption passphrase
|
|
# 2. Full name, username, and password
|
|
|
|
# Locale and keyboard
|
|
d-i debian-installer/locale string en_US.UTF-8
|
|
d-i keyboard-configuration/xkb-keymap select us
|
|
|
|
# Network — skip (offline DVD install)
|
|
d-i netcfg/enable boolean false
|
|
|
|
# Mirror — no network mirror
|
|
d-i apt-setup/use_mirror boolean false
|
|
|
|
# Clock
|
|
d-i clock-setup/utc boolean true
|
|
d-i time/zone string UTC
|
|
|
|
# Partitioning — encrypted LVM with btrfs root
|
|
d-i partman-auto/method string crypto
|
|
d-i partman-lvm/device_remove_lvm boolean true
|
|
d-i partman-md/device_remove_md boolean true
|
|
d-i partman-lvm/confirm boolean true
|
|
d-i partman-lvm/confirm_nooverwrite boolean true
|
|
d-i partman-auto-lvm/guided_size string max
|
|
d-i partman-auto-crypto/erase_disks boolean false
|
|
d-i partman/default_filesystem string btrfs
|
|
d-i partman-auto/choose_recipe select atomic
|
|
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
|
|
|
|
# Packages — minimal base + essentials
|
|
tasksel tasksel/first multiselect standard
|
|
d-i pkgsel/include string sudo btrfs-progs
|
|
|
|
# Don't eject CD (fails in QEMU, causes prompt loop)
|
|
d-i cdrom-detect/eject boolean false
|
|
|
|
# Skip upgrade check (offline install, nothing to upgrade)
|
|
d-i pkgsel/upgrade select none
|
|
|
|
# No security/updates services (offline)
|
|
d-i apt-setup/services-select multiselect
|
|
|
|
# No popularity contest
|
|
popularity-contest popularity-contest/participate boolean false
|
|
|
|
# GRUB
|
|
d-i grub-installer/only_debian boolean true
|
|
d-i grub-installer/bootdev string default
|
|
|
|
# Skip additional media scan
|
|
d-i apt-setup/cdrom/set-first boolean false
|
|
d-i apt-setup/cdrom/set-next boolean false
|
|
d-i apt-setup/cdrom/set-failed boolean false
|
|
|
|
# Finish
|
|
d-i finish-install/reboot_in_progress note
|
|
|
|
# Post-install: enable auto-login on tty1 for the created user
|
|
d-i preseed/late_command string \
|
|
USER=$(grep ':x:1000:' /target/etc/passwd | cut -d: -f1); \
|
|
mkdir -p /target/etc/systemd/system/getty@tty1.service.d; \
|
|
echo '[Service]' > /target/etc/systemd/system/getty@tty1.service.d/autologin.conf; \
|
|
echo 'ExecStart=' >> /target/etc/systemd/system/getty@tty1.service.d/autologin.conf; \
|
|
echo "ExecStart=-/sbin/agetty --autologin $USER --noclear %I \$TERM" >> /target/etc/systemd/system/getty@tty1.service.d/autologin.conf
|