A while back Ubuntu left the old preseed format in the dust. Not that I know why but is seems odd to leave something behind without a working replacement or good clear documentation. Best would be to provide a tool where you can answer the setup questions and have it generate the configuration. Anyways I have completely functional preseed that cannot be converted using the promoted tool... I mean it does not work at all.
How can I translate this best to the new yml format?
Appears to be totally borked:
Traceback (most recent call last):
File "/snap/autoinstall-generator/64/usr/bin/autoinstall-generator", line 56, in <module>
sys.exit(main())
File "/snap/autoinstall-generator/64/usr/bin/autoinstall-generator", line 47, in main
out = convert_file(infile, args)
File "/snap/autoinstall-generator/64/lib/python3.6/site-packages/autoinstall_generator/merging.py", line 205, in convert_file
for idx, line in enumerate(preseed_file.readlines()):
File "/snap/autoinstall-generator/64/usr/lib/python3.6/encodings/ascii.py", line 26, in decode
return codecs.ascii_decode(input, self.errors)[0]
UnicodeDecodeError: 'ascii' codec can't decode byte 0xe2 in position 1686: ordinal not in range(128)
# --------------------------------------------- #
# Unattended Installation
# --------------------------------------------- #
# Simple instruction to tell the debian installer that
# this is intended to be an unattended install and to only
# ask critical questions (wich we will answer in this file)
# End of documentation
d-i auto-install/enable boolean true
d-i debconf/priority select critical
# --------------------------------------------- #
# --------------------------------------------- #
# Network configuration
# --------------------------------------------- #
# Network setup. This can be a static setup or dhcp.
# The RTD default prefferred config is to rely on DHCP,
# and for wireless networks (systems with only wireless cards)
# default to an SSID named "loader" and the guest wpa string
# "letmein1234". This allows supported systems to be
# installed directly over WiFi with no user input.
# End of documentation
d-i netcfg/choose_interface select manual
d-i netcfg/hostname string RTD-Client
d-i netcfg/get_hostname string unassigned-hostname
d-i netcfg/get_domain string unassigned-domain
d-i hw-detect/load_firmware boolean true
# We want the preconfiguration file to work on systems both with and
# without sucessful dhcp configuration
d-i netcfg/dhcp_failed note
d-i netcfg/dhcp_options select Configure network manually
# d-i netcfg/dhcp_timeout string 60
d-i netcfg/wireless_show_essids select manual
d-i netcfg/wireless_essid string loader
d-i netcfg/wireless_essid_again string loader
d-i netcfg/wireless_security_type select wpa
d-i netcfg/wireless_wpa string letmein1234
# --------------------------------------------- #
# --------------------------------------------- #
# Do NOT install on the USB stick(!)
# --------------------------------------------- #
#
# The Debian installer will install on the first disk it finds which can
# sometimes be the USB stick itself. Work around this by rolling our own auto
# detect logic which disallows installing on USB devices.
#
# d-i partman/early_command string [ "$(ls -A /tmp)" ] && umount -l /media || echo "Empty" ;
# End of documentation
d-i partman/early_command string \
USBDEV=$(mount | grep hd-media | cut -d" " -f1 | sed "s/\(.*\)./\1/");\
BOOTDEV=$(list-devices disk | grep -v \$USBDEV | head -1);\
debconf-set partman-auto/disk $BOOTDEV;\
debconf-set grub-installer/bootdev $BOOTDEV;
# --------------------------------------------- #
# --------------------------------------------- #
# Account setup (temporary user account)
# --------------------------------------------- #
# Setup an initial user and disable root login by default.
# root login may be re-enabled later by setting a root password.
# An encrypted password is set here, and should be changed
# ASAP after the system is built. Preferebly connect to LDAP/AD
# in a managed environment.
# End of documentation
d-i passwd/root-login boolean false
d-i passwd/user-fullname string RTD User
d-i passwd/username string tangarora
d-i passwd/user-password seen true
d-i user-setup/allow-password-weak boolean true
d-i passwd/user-password-crypted password $6$Rn5/UTzjIs68MX$9gz8vmshGlPqse3VoX8dzSfhWxRVoYv1MB6aGRD8xdvztOf.gD.SxxVWkxYrwwbShB9Q14flquK/apbdQJ65t1
d-i passwd/auto-login boolean true
# --------------------------------------------- #
# --------------------------------------------- #
# Localization
# --------------------------------------------- #
# Provide localizaton preferences so that the prefferred
# language is used for display and formats. Comparable to
# the MUI in Microsoft environments.
# End of documentation
d-i debian-installer/locale string en_US.UTF-8
d-i localechooser/supported-locales multiselect en_US.UTF-8, se_SE.UTF-8
d-i console-setup/ask_detect boolean false
# --------------------------------------------- #
# --------------------------------------------- #
# Set Keyboard layout
# --------------------------------------------- #
# Set the prefferred keyboard layout. Keyboards will work
# regardless, but the letters and symbols may not actually
# be the ones drawn on the keys. Default is us.
d-i keyboard-configuration/xkb-keymap select se
d-i keyboard-configuration/layoutcode string se
d-i debian-installer/keymap select se
d-i keymap select se
d-i console-setup/layoutcode string se
d-i console-setup/ask_detect boolean false
# --------------------------------------------- #
# --------------------------------------------- #
# Clock and time zone setup
# --------------------------------------------- #
d-i clock-setup/utc boolean true
d-i time/zone string Etc/UTC
d-i clock-setup/ntp boolean true
d-i clock-setup/ntp-server string ntp.ubuntu.com
# --------------------------------------------- #
# --------------------------------------------- #
# EFI
# --------------------------------------------- #
#
# The EFI (Extensible Firmware Interface) system partition is a partition on a data storage device.
# UEFI provides backward compatibility with legacy systems by reserving the first block (sector) of
# the partition for compatibility code, effectively creating a legacy boot sector. On legacy BIOS-based
# systems, the first sector of a partition is loaded into memory and execution is transferred to this code.
# Here we tell setup to install EFI boot setup if possible so that both NEW and old systems may be handled
# and the installed system can be started.
d-i partman-efi/non_efi_system boolean true
# End of documentation
# --------------------------------------------- #
# --------------------------------------------- #
# GRUB bootloader installation
# --------------------------------------------- #
#
# Tell the grub-installer to install to the MBR even if it also finds some other
# OS, which is more likely to allow the newly installed Linux OS to boot without issue.
# End of documentation
d-i grub-installer/only_debian boolean true
d-i grub-installer/with_other_os boolean true
# --------------------------------------------- #
# --------------------------------------------- #
# Disk layout (default encrypted disk)
# --------------------------------------------- #
#
# Set option to encrypt the hard disk:
# By default the harddisk will be encrypted to pretect data
# and will need to be unlocked with a password when the
# system is booted. In addition a default is prefferred
# where the swap space is set to 200% of RAM so that
# hibernate can be supported.
# End of documentation
d-i partman-auto/method string crypto
d-i partman-crypto/passphrase password letmein1234
d-i partman-crypto/passphrase-again password letmein1234
d-i partman-auto-crypto/erase_disks boolean false
d-i partman-lvm/device_remove_lvm boolean true
d-i partman-lvm/device_remove_lvm_span boolean true
d-i partman-auto/purge_lvm_from_device 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-lvm/new_vg_name string crypt
#d-i partman-auto/choose_recipe select root-encrypted
d-i partman-auto/expert_recipe string \
multi-cnx :: \
538 538 1075 free \
$primary \
$iflabel{ gpt } \
$reusemethod{ } \
method{ efi } format{ } \
. \
3500 3500 3500 ext3 \
$primary{ } $bootable{ } \
method{ format } format{ } \
use_filesystem{ } filesystem{ ext4 } \
mountpoint{ /boot } \
. \
200% 25000 200% linux-swap \
$lvmok{ } lv_name{ swap } \
in_vg { crypt } \
$primary{ } \
method{ swap } format{ } \
. \
500 1000 1000000000 ext4 \
$lvmok{ } lv_name{ root } \
in_vg { crypt } \
$primary{ } \
method{ format } format{ } \
use_filesystem{ } filesystem{ ext4 } \
mountpoint{ / } \
.
d-i partman-md/device_remove_md boolean true
d-i partman-md/confirm boolean true
d-i partman-basicfilesystems/no_mount_point boolean false
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
# --------------------------------------------- #
# Packages may be selected as groups (meta packages) like kde-desktop or
# as individual packages. Only one "pkgsel/include" string will be used though!
# remembder to fit all the packages you want on one line.
# tasksel tasksel/first multiselect standard options:
# ubuntu-desktop-minimal kubuntu-desktop, ubuntu-gnome-desktop, lubuntu-desktop, ubuntu-mate-desktop
# desktop, gnome-desktop, kde-desktop, cinnamon-desktop, mate-desktop,
# lxde-desktop, web-server, ssh-server, print-server.
# The "OEM" line below ist to make it simple to replace the line with a
# relevant chice of debian role using "sed" or similar.
# End of documentation
tasksel tasksel/first multiselect ubuntu-desktop
d-i pkgsel/include string openssh-server virt-what wget spice-vdagent git
# Valid choices for pkgsel/upgrade are: safe-upgrade full-upgrade none
d-i pkgsel/upgrade select safe-upgrade
d-i pkgsel/update-policy select unattended-upgrades
# By default, the system’s locate database will be updated after the
# installer has finished installing most packages. This may take a while, so
# if you don’t want it, you can set this to "false" to turn it off.
# d-i pkgsel/updatedb boolean false
# --------------------------------------------- #
# --------------------------------------------- #
# Default preseed Addon Tasks
# --------------------------------------------- #
d-i preseed/late_command string \
in-target git clone https://github.com/vonschutter/RTD-Setup.git /opt/rtd ; \
in-target /usr/bin/chmod 755 /opt/rtd/core/rtd* ; \
in-target /bin/bash /opt/rtd/core/rtd-oem-enable-config.sh ; \
cp /*.cfg /target/opt/rtd/ ; \
umount -l /media || echo "Empty" ; \
eject || true; \
echo "------ initial Setup Complete! ------"
# for ubuntu to work (ignored by Debian)...
ubiquity ubiquity/success_command string \
in-target git clone https://github.com/vonschutter/RTD-Setup.git /opt/rtd ; \
in-target /bin/bash /opt/rtd/core/rtd-oem-enable-config.sh ; \
in-target /usr/bin/chmod 755 /opt/rtd/core/rtd* ; \
cp /*.cfg /target/opt/rtd/ ;\
echo "------ initial Setup Complete! ------"
# Answer the last question
d-i debian-installer/splash boolean true
# Option to try to gracefully eject the installation media:
d-i cdrom-detect/eject boolean true
# Shutdown machine
d-i finish-install/reboot_in_progress note
# --------------------------------------------- #