Unattended Offline Edubuntu 14.04 Install
Solution 1:
I was able to figure out all of my issues except for preseeding the Edubuntu-specific questions, so I am going to resort to an Ubuntu vanilla install with the following customizations. I will be installing the Edubuntu packages and setting more things up with bash scripts that I will run from SSH.
- Keyboard layout is set with
keyboard-configuration/layoutcode=us and console-setup/ask_detect=false
boot parameters - Packages are removed with
ubiquity ubiquity/success_command string in-target apt-get -y purge package
- Packages are installed with
ubiquity ubiquity/success_command string in-target apt-get -y install openssh-server;
- I was able to set the hostname with commands after
ubiquity ubiquity/success_command string
(see EBA.seed below)
isolinux/isolinux.cfg
# D-I config version 2.0 include menu.cfg default vesamenu.c32 prompt 0 timeout 50 ui gfxboot bootlogo
isolinux/txt.cfg
default unattended-EBA-install label unattended-EBA-install menu label ^Install for EBA unattended kernel /casper/vmlinuz.efi append file=/cdrom/preseed/EBA.seed keyboard-configuration/layoutcode=us and console-setup/ask_detect=false boot=casper automatic-ubiquity noprompt initrd=/casper/initrd.lz -- label live menu label ^Try Ubuntu without installing kernel /casper/vmlinuz.efi append file=/cdrom/preseed/ubuntu.seed boot=casper initrd=/casper/initrd.lz quiet splash -- label live-install menu label ^Install Ubuntu kernel /casper/vmlinuz.efi append file=/cdrom/preseed/ubuntu.seed boot=casper only-ubiquity initrd=/casper/initrd.lz quiet splash -- label check menu label ^Check disc for defects kernel /casper/vmlinuz.efi append boot=casper integrity-check initrd=/casper/initrd.lz quiet splash -- label memtest menu label Test ^memory kernel /install/mt86plus label hd menu label ^Boot from first hard disk localboot 0x80
preseed/EBA.seed
#### Custom Preseed for EBA ### by Kevin ### Ubuntu/Edubuntu 14.04 ################################################################################## ### General ################### # Preseed empty to avoid the summary page ubiquity ubiquity/summary string empty # reboot automatically, add 'noprompt' to the kernel command line ubiquity ubiquity/reboot boolean true ### Localization #################### # Preseeding only locale sets language, country and locale. d-i debian-installer/locale string en_US # Keyboard selection # Disable automatic (interactive) keymap detection. d-i console-setup/ask_detect boolean false d-i keyboard-configuration/xkb-keymap select us ubiquity languagechooser/language-name select English ubiquity countrychooser/shortlist select US ubiquity localechooser/supported-locales en_US.UTF-8 ubiquity console-keymaps-at/keymap select us ### Network configuration ############################# # Disable network configuration entirely. This is useful for cdrom # installations on non-networked devices where the network questions, # warning and long timeouts are a nuisance. d-i netcfg/enable boolean false # netcfg will choose an interface that has link if possible. This makes it # skip displaying a list if there is more than one interface. d-i netcfg/choose_interface select auto # Disable that annoying WEP key dialog. #d-i netcfg/wireless_wep string # The wacky dhcp hostname that some ISPs use as a password of sorts. #d-i netcfg/dhcp_hostname string radish # If non-free firmware is needed for the network or other hardware, you can # configure the installer to always try to load it, without prompting. Or # change to false to disable asking. d-i hw-detect/load_firmware boolean true ### Mirror settings # If you select ftp, the mirror/country string does not need to be set. #d-i mirror/protocol string ftp #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 http://proxy:8002 ### Account setup #################### # To create a normal user account. d-i passwd/user-fullname string EBA Tech d-i passwd/username string eba d-i passwd/user-password-crypted password **** ### Clock and time zone setup # Controls whether or not the hardware clock is set to UTC. d-i clock-setup/utc boolean true # You may set this to any valid setting for $TZ; see the contents of # /usr/share/zoneinfo/ for valid values. d-i time/zone string US/Eastern # Controls whether to use NTP to set the clock during the install d-i clock-setup/ntp boolean true # NTP server to use. The default is almost always fine here. #d-i clock-setup/ntp-server string ntp.example.com ### Partitioning ##################### d-i partman-auto/method string lvm 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 # You can choose one of the three predefined partitioning recipes: # - atomic: all files in one partition # - home: separate /home partition # - multi: separate /home, /var, and /tmp partitions d-i partman-auto/choose_recipe select atomic # This makes partman automatically partition without confirmation, provided # that you told it what to do using one of the methods above. 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 ### Base system installation ################################ ### Apt setup # You can choose to install restricted and universe software, or to install # software from the backports repository. #d-i apt-setup/backports boolean true d-i apt-setup/extras boolean true d-i apt-setup/multiverse boolean true d-i apt-setup/partner boolean true d-i apt-setup/restricted boolean true d-i apt-setup/universe boolean true # Use non-free packages ubiquity ubiquity/use_nonfree boolean true # Policy for applying updates. May be "none" (no automatic updates), # "unattended-upgrades" (install security updates automatically), or # "landscape" (manage system with Landscape). d-i pkgsel/update-policy select unattended-upgrades ### Boot loader installation # This is fairly safe to set, it makes grub install automatically to the MBR # if no other operating system is detected on the machine. d-i grub-installer/only_debian boolean true ### More Fun! ############################# #ubiquity ubiquity/edubuntu-addon_fallback_install booolean false #ubiquity ubiquity/edubuntu-addon_ltsp_install booolean false #ubiquity ubiquity/edubuntu-addon_ltsp_interface select eth0 #ubiquity ubiquity/install/generate-blacklist multiselect ubuntu-edu-preschool ubuntu-edu-primary ubuntu-edu-tertiary # Install/remove packages, set hostname, install wifi drivers ubiquity ubiquity/success_command string \ in-target apt-get -y install openssh-server; \ in-target apt-get -y purge unity-scope-imdb unity-scope-musicstores unity-scope-zotero unity-scope-click-autopilot \ unity-scope-deviantart unity-scope-gallica unity-scope-gdocs unity-scope-github unity-scope-googlenews \ unity-scope-launchpad unity-scope-mediascanner unity-scope-onlinemusic unity-scope-openweathermap \ unity-scope-soundcloud unity-scope-sshsearch unity-scope-yahoostock unity-lens-photos unity-lens-video \ unity-scope-audacious unity-scope-chromiumbookmarks unity-scope-clementine unity-scope-click unity-scope-colourlovers \ unity-scope-gdrive unity-scope-gmusicbrowser unity-scope-gourmet unity-scope-guayadeque unity-scope-mediascanner2 \ unity-scope-musique unity-scope-openclipart unity-scope-texdoc unity-scope-tomboy unity-scope-video-remote \ unity-scope-virtualbox unity-scope-yelp unity-webapps-service account-plugin-ubuntuone ubuntu-purchase-service \ deja-dup indicator-messages empathy gwibber thunderbird transmission-gtk pidgin; \ if [ "$(cat /sys/class/dmi/id/chassis_asset_tag)" != "" ]; then \ in-target hostname $(cat /sys/class/dmi/id/chassis_asset_tag) ;\ in-target sed -i "1s/.*/$(cat /sys/class/dmi/id/chassis_asset_tag)/" /etc/hostname ; \ in-target sed -i "2s/.*/127.0.1.1\t$(cat /sys/class/dmi/id/chassis_asset_tag)/" /etc/hosts; \ else \ in-target hostname $(cat /sys/class/dmi/id/product_name) ;\ in-target sed -i "1s/.*/$(cat /sys/class/dmi/id/product_name)/" /etc/hostname ;\ in-target sed -i "2s/.*/127.0.1.1\t$(cat /sys/class/dmi/id/product_name)/" /etc/hosts; \ fi; \ if [ lspci -d 14e4:4315 ]; then \ in-target apt-get -qq install firmware-b43-installer || in-target apt-get -qq install firmware-b43-lpphy-installer; \ fi;