Skip to content

Instantly share code, notes, and snippets.

@pgaskin
Last active March 23, 2024 15:39
Show Gist options
  • Star 11 You must be signed in to star a gist
  • Fork 6 You must be signed in to fork a gist
  • Save pgaskin/8bebe4bd87ad46d3f02c to your computer and use it in GitHub Desktop.
Save pgaskin/8bebe4bd87ad46d3f02c to your computer and use it in GitHub Desktop.
A preseed file for a minimal Debian Jessie installation
# How to run
# In the folder with these files
# sudo python -m SimpleHTTPServer 80
#
# Update the ip at the bottom of this file to the output of
# hostname -I
# This is your ip
#
# Start debian cd
# Press esc on menu
# install auto=true priority=critical preseed/url=http://your.ip.address/jessie-base.preseed
### Localization
d-i debian-installer/locale string en_CA.UTF-8
d-i debian-installer/keymap select us
d-i keymap select us
d-i keyboard-configuration/xkb-keymap select us
### Network configuration
d-i netcfg/choose_interface select auto
### Mirror settings
d-i mirror/protocol string ftp
d-i mirror/country string manual
d-i mirror/ftp/hostname string ftp.ca.debian.org
d-i mirror/ftp/directory string /debian
d-i mirror/suite string jessie
d-i mirror/ftp/proxy string
### Account setup
d-i passwd/root-login boolean false
d-i passwd/user-fullname string Patrick G
d-i passwd/username string patrick
# Use `mkpasswd -m sha-512` to generate the hash
d-i passwd/user-password-crypted password $6$u5OueNwa$n5NxitlLa6kgElFPCUbrEUKdzQ2BE3ctg7Bzw7y7oW0WkRnZtk3pYMDAiUy5yGMtMoc1gltVW61Z6Ufqzswhr.
### Clock and time zone setup
d-i clock-setup/utc boolean false
d-i time/zone string Canada/Eastern
d-i clock-setup/ntp boolean true
### Partitioning
d-i partman-auto/disk string /dev/sda
d-i partman-auto/method string lvm
d-i partman-auto-lvm/new_vg_name string rootvg
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
# - atomic: all files in one partition
# - home: separate /home partition
# - multi: separate /home, /var, and /tmp partitions
d-i partman-auto/choose_recipe select multi
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
d-i partman/mount_style select uuid
d-i grub-installer/only_debian boolean true
d-i grub-installer/with_other_os boolean true
d-i grub-installer/bootdev string /dev/sda
### Apt
d-i apt-setup/non-free boolean true
d-i apt-setup/contrib boolean true
### Package selection
tasksel tasksel/first multiselect standard
# Other packages to install
d-i pkgsel/include string openssh-server rsync ncdu
d-i pkgsel/upgrade select none
popularity-contest popularity-contest/participate boolean false
### Misc options
# Disable that annoying WEP key dialog.
d-i netcfg/wireless_wep string
# Allow non-free firmware
d-i hw-detect/load_firmware boolean true
# Avoid that last message about the install being complete.
d-i finish-install/reboot_in_progress note
# During installations from serial console, the regular virtual consoles (VT1-VT6) are normally disabled in /etc/inittab.
d-i finish-install/keep-consoles boolean true
### Postinstall
d-i preseed/late_command string in-target wget --output-document=/tmp/postinstall.sh http://your.ip.address/postinstall.sh; in-target /bin/sh /tmp/postinstall.sh
#!/bin/sh
# Put commands to run in target after install here
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment