When you have your ubuntu or debian splash screen hit “tab”
then append:
auto url=http://mywebserver/mypreseed.cfg
You can use this example to bring up a quick webserver to server your preseed file: Python Simple HTTP Server
You’ll still probably be prompted for all the locale information because that is requested BEFORE debian/ubuntu loads the preseed configuration. ( yes , dumb i know ). These are the settings that don’t get pulled in.
# keyboard and locale settings #################################################################### d-i debian-installer/locale string en_US d-i console-keymaps-at/keymap select sg-latin1 # networking #################################################################### d-i netcfg/disable_dhcp boolean false d-i netcfg/get_hostname string localhost d-i netcfg/get_domain string localdomain d-i netcfg/choose_interface select eth0
You can get around this by rebuilding your boot cdrom or doing a pxe install that loads all the info ahead of time.
Example
auto url=http://mywebserver/mypreseed.cfg \ locale=en_US console-keymaps-at/keymap=sg-latin1 \ interface=eth0 hostname=localhost domain=localdomain --
Now for actually making your preseed config
Setup Locale info
d-i debian-installer/locale string en_US d-i console-setup/ask_detect boolean false d-i time/zone string UTC d-i debian-installer/splash boolean false d-i debian-installer/language string en d-i debain-installer/country string US d-i console-keymaps-at/keymap select sg-latin1
Setup Your Networking
d-i netcfg/get_nameservers string 192.168.1.5 d-i netcfg/get_ipaddress string 192.168.1.10 d-i netcfg/get_netmask string 255.255.255.0 d-i netcfg/get_gateway string 192.168.1.1 d-i netcfg/confirm_static boolean true d-i netcfg/get_hostname string tempnode d-i netcfg/get_domain string localdomain
Setup your Repository and what directory in the repo to look for your install files
d-i mirror/country string manual d-i mirror/http/hostname string http.us.debian.org d-i mirror/http/directory string /debian d-i mirror/http/proxy string
Partition Your disks and set them up as lvm
d-i partman-auto/disk string /dev/sda d-i partman-auto/method string lvm 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-auto-lvm/new_vg_name string system
Setup your logical Volumes in LVM and also non-lvm partitions
This will make
* BEWARE OF YOUR FORMATTING OF THIS PART – IT IS SUPER SENSITIVE
/boot : is a bootable filesystem with 300mb and ext3
/ : Is between 10GB and grows to the end of the disk and ext3
swap : uses 200% of the size of system ram for a disk or 8GB
#d-i partman-auto/init_automatically_partition \ # select Guided - use entire disk and set up LVM d-i partman-auto/expert_recipe string \ boot-root :: \ 40 300 300 ext3 \ $primary{ } \ $bootable{ } \ method{ format } format{ } \ use_filesystem{ } filesystem{ ext3 } \ mountpoint{ /boot } \ . \ 2000 10000 1000000000 ext3 \ $lvmok{ } \ method{ format } format{ } \ use_filesystem{ } filesystem{ ext3 } \ mountpoint{ / } \ . \ 8000 8000 200% linux-swap \ $lvmok{ } \ method{ swap } format{ } \ .
Here’s another LVM Example
d-i partman-auto/expert_recipe string \ boot-root :: \ 40 300 300 ext4 \ $primary{ } \ $bootable{ } \ method{ format } format{ } \ use_filesystem{ } filesystem{ ext4 } \ mountpoint{ /boot } \ . \ 2000 10000 1000000000 ext4 \ $lvmok{ } \ method{ format } format{ } \ use_filesystem{ } filesystem{ ext4 } \ mountpoint{ / } \ . \ 2000 1000 10000 ext4 \ $lvmok{ } \ method{ format } format{ } \ use_filesystem{ } filesystem{ ext4 } \ mountpoint{ /var } \ . \ 2000 1000 60000 ext4 \ $lvmok{ } \ method{ format } format{ } \ use_filesystem{ } filesystem{ ext4 } \ mountpoint{ /var/lib/mysql } \ . \ 2000 1000 30000 ext4 \ $lvmok{ } \ method{ format } format{ } \ use_filesystem{ } filesystem{ ext4 } \ mountpoint{ /www } \ . \ 8000 8000 200% linux-swap \ $lvmok{ } \ method{ swap } format{ } \ .
Answer yes to all the partition and LVM prompts
d-i partman-lvm/confirm boolean true d-i partman/confirm_write_new_label boolean true d-i partman/choose_partition select Finish partitioning and write changes to disk d-i partman/confirm boolean true
Setup your Time Zone info
d-i clock-setup/utc boolean true d-i clock-setup/ntp boolean true d-i clock-setup/ntp-server string ntp.ubuntu.com d-i time/zone string US/Los_Angeles
Setup Root and First User info
d-i base-installer/kernel/image string linux-server d-i passwd/root-login boolean true d-i passwd/root-password-crypted password $1$VuPOoDRD$seX.C54E8TUdMkaAmKvjx0 d-i passwd/user-fullname string Ubuntu User d-i passwd/username string ubuntu d-i passwd/user-password-crypted password $1$NvFY8IuR$BGqOozSN91ljvQB.pVLDw. d-i user-setup/encrypt-home boolean false d-i user-setup/allow-password-weak boolean true d-i passwd/user-default-groups string adm cdrom dialout lpadmin plugdev sambashare
Miscellaneous Stuffage
d-i apt-setup/services-select multiselect security d-i debian-installer/allow_unauthenticated string true d-i pkgsel/upgrade select safe-upgrade d-i pkgsel/language-packs multiselect d-i pkgsel/update-policy select none d-i pkgsel/updatedb boolean true popularity-contest popularity-contest/participate boolean false tasksel tasksel/first multiselect standard, openssh-server d-i grub-installer/skip boolean false d-i lilo-installer/skip boolean false d-i grub-installer/only_debian boolean true d-i grub-installer/with_other_os boolean false d-i finish-install/keep-consoles boolean false d-i finish-install/reboot_in_progress note d-i cdrom-detect/eject boolean true d-i debian-installer/exit/halt boolean false d-i debian-installer/exit/poweroff boolean false
Choose your packages to install
d-i pkgsel/include string vim openssh-server
What it looks like as one file:
d-i debian-installer/locale string en_US d-i console-setup/ask_detect boolean false d-i time/zone string UTC d-i debian-installer/splash boolean false d-i debian-installer/language string en d-i debain-installer/country string US d-i netcfg/get_nameservers string 192.168.1.5 d-i netcfg/get_ipaddress string 192.168.1.10 d-i netcfg/get_netmask string 255.255.255.0 d-i netcfg/get_gateway string 192.168.1.1 d-i netcfg/confirm_static boolean true d-i netcfg/get_hostname string tempnode d-i mirror/country string manual d-i mirror/http/hostname string http.us.debian.org d-i mirror/http/directory string /debian d-i mirror/http/proxy string d-i partman-auto/disk string /dev/sda d-i partman-auto/method string lvm 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-auto-lvm/new_vg_name string system #d-i partman-auto/init_automatically_partition \ # select Guided - use entire disk and set up LVM d-i partman-auto/expert_recipe string \ boot-root :: \ 40 300 300 ext3 \ $primary{ } \ $bootable{ } \ method{ format } format{ } \ use_filesystem{ } filesystem{ ext3 } \ mountpoint{ /boot } \ . \ 2000 10000 1000000000 ext3 \ $lvmok{ } \ method{ format } format{ } \ use_filesystem{ } filesystem{ ext3 } \ mountpoint{ / } \ . \ 8000 8000 200% linux-swap \ $lvmok{ } \ method{ swap } format{ } \ . d-i partman-lvm/confirm boolean true d-i partman/confirm_write_new_label boolean true d-i partman/choose_partition select Finish partitioning and write changes to disk d-i partman/confirm boolean true d-i clock-setup/utc boolean true d-i clock-setup/ntp boolean true d-i clock-setup/ntp-server string ntp.ubuntu.com d-i time/zone string US/Los_Angeles d-i base-installer/kernel/image string linux-server d-i base-installer/kernel/image string linux-server d-i passwd/root-login boolean true d-i passwd/root-password-crypted password $1$VuPOoDRD$seX.C54E8TUdMkaAmKvjx0 d-i passwd/user-fullname string Ubuntu User d-i user-setup/allow-password-weak boolean true d-i user-setup/encrypt-home boolean false d-i passwd/user-default-groups string adm cdrom dialout lpadmin plugdev sambashare d-i apt-setup/services-select multiselect security d-i debian-installer/allow_unauthenticated string true d-i pkgsel/upgrade select safe-upgrade d-i pkgsel/language-packs multiselect d-i pkgsel/update-policy select none d-i pkgsel/updatedb boolean true popularity-contest popularity-contest/participate boolean false tasksel tasksel/first multiselect standard, openssh-server d-i grub-installer/skip boolean false d-i lilo-installer/skip boolean false d-i grub-installer/only_debian boolean true d-i grub-installer/with_other_os boolean false d-i finish-install/keep-consoles boolean false d-i finish-install/reboot_in_progress note d-i cdrom-detect/eject boolean true d-i debian-installer/exit/halt boolean false d-i debian-installer/exit/poweroff boolean false d-i pkgsel/include string vim openssh-server
Info for this was stolen here ( Thanks ):
http://cptyesterday.wordpress.com/2012/06/17/notes-on-using-expert_recipe-in-debianubuntu-preseed-files/
Preseed Example files found here: