UNATTENDED INSTALL FOR UBUNTU IMAGE PROCESSING SERVER
Prepare the Ubuntu ISO for Unattended Installation
Australian mirror site with all recent Ubuntu releases:
http://mirror.waia.asn.au/ubuntu-releases/
Download a non graphical ubuntu installation ISO – server will do it.
Mount it
sudo su –
mkdir -p /mnt/iso
mount -o loop ubuntu_install.iso /mnt/iso
Copy the relevant files to a different directory
mkdir -p /opt/ubuntuiso
cp -rT /mnt/iso /opt/ubuntuiso
Prevent the language selection menu from appearing
cd /opt/ubuntuiso
echo en >isolinux/lang
Use GUI program to add a kickstart file named ks.cfg
apt-get install system-config-kickstart
system-config-kickstart
Sample ks.cfg:
Change the IP address details and user details and packages to match your needs. password is encrypted by system-config-kickstart program.
#Generated by Kickstart Configurator
#platform=AMD64 or Intel EM64T
#System language
lang en_AU
#Language modules to install
langsupport en_AU
#System keyboard
keyboard us
#System mouse
mouse
#System timezone
timezone –utc Australia/Sydney
#Root password
rootpw –disabled
#Initial user
user sample –fullname “Sample User” –iscrypted –password $1$xm6rggTW$VCwW3fbHA9hiube3eA1ZP1
#Reboot after installation
reboot
#Use text mode install
text
#Install OS instead of upgrade
install
#Use CDROM installation media
cdrom
#System bootloader configuration
bootloader –location=mbr
#Clear the Master Boot Record
zerombr yes
#Partition clearing information
clearpart –all –initlabel
#System authorization infomation
auth –useshadow –enablemd5
#Network information
network –bootproto=static –ip=192.168.0.XXX –netmask=255.255.255.0 –gateway=192.168.0.254 –nameserver=8.8.8.8 –device=eth0
#Firewall configuration
firewall –disabled
#Install Extra Packages
%package
@ ubuntu-server
openssh-server
build-essential
net-tools
screen
Create a Preseed file
Next create a preseed file, to suppress other questions – I tried a few things and couldn’t prevent it asking me to press yes or not to partition the disk but that is the only part of the install which requires a response in the install.
Mine is ks.preseed in /opt/cd-image/preseed:
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 partman/confirm_write_new_label boolean true
d-i partman-lvm/confirm_nooverwrite boolean true
Edit isolinux/txt.cfg
Search for
label install
menu label ^Install Ubuntu Server
kernel /install/vmlinuz
append file=/cdrom/preseed/ubuntu-server.seed vga=788 initrd=/install/initrd.gz quiet —
add ks=cdrom:/ks.cfg and preseed file=/cdrom/preseed/ks.preseed to the append line. You can remove the quiet and vga=788 words. It should look like:
default install
label install
menu label ^Install Ubuntu Server
kernel /install/vmlinuz
append file=/cdrom/preseed/ubuntu-server.seed initrd=/install/initrd.gz ks=cdrom:/ks.cfg preseed/file=/cdrom/preseed/ks.preseed —
/opt/cd-image/preseed/ubuntu-server.seed:
# Suggest LVM by default.
d-i partman-auto/init_automatically_partition string some_device_lvm
d-i partman-auto/init_automatically_partition seen false
# Install the Ubuntu Server seed.
tasksel tasksel/force-tasks string server
# Only install basic language packs. Let tasksel ask about tasks.
d-i pkgsel/language-pack-patterns string
# No language support packages.
d-i pkgsel/install-language-support boolean false
# Only ask the UTC question if there are other operating systems installed.
d-i clock-setup/utc-auto boolean true
# Verbose output and no boot splash screen.
d-i debian-installer/quiet boolean false
d-i debian-installer/splash boolean false
# Install the debconf oem-config frontend (if in OEM mode).
d-i oem-config-udeb/frontend string debconf
# Wait for two seconds in grub
d-i grub-installer/timeout string 2
# Add the network and tasks oem-config steps by default.
oem-config oem-config/steps multiselect language, timezone, keyboard, user, network, tasks
Make the iso:
mkisofs -D -r -V “ATTENDLESS_UBUNTU” -cache-inodes -J -l -b isolinux/isolinux.bin -c isolinux/boot.cat -no-emul-boot -boot-load-size 4 -boot-info-table -o /opt/autoinstall.iso /opt/cd-image/
Now you have an (almost) unattended install iso to create a bootable USB or CD if you’re feeling old school.
With thanks to:
https://askubuntu.com/questions/122505/how-do-i-create-a-completely-unattended-install-of-ubuntu
Further reading:
http://web.archive.org/web/20131102024835/https://help.ubuntu.com/community/InstallCDCustomization