Ubuntu – How to preseed options before network in Debian/Ubuntu PXE installation

installationnetworkingpreseedpxe-bootUbuntu

I'm trying to fully automate an Ubuntu installation over the network, but the preseed file is loaded only after the network adapter detection.

Even with those options in the preseed file the installer always asks for this options:

# Select language
d-i debconf/language string en_US:en

# Locale settings
d-i localechooser/shortlist select other
d-i localechooser/continentlist select South America
d-i localechooser/countrylist/South_America select BR
d-i localechooser/preferred-locale select en_US.UTF-8

# Keyboard selection.
# Disable automatic (interactive) keymap detection.
d-i console-setup/ask_detect boolean false
d-i keyboard-configuration/layout select English (US)
d-i keyboard-configuration/variant select English (US) - English (US, alternative international)

After the network detection the installation goes unattended as it should be since the beginning.

I think I'm missing something in the kernel boot args but I was unable to identify the problem, here are the pxelinux.cfg config:

#Ubuntu 12.04 LTS x86_64 Node
label 1
    menu label ^1. Ubuntu 12.04 LTS "Precise Pangolin" x86_64 Node
    kernel ubuntu/precise/amd64/linux
    append vga=normal initrd=ubuntu/precise/amd64/initrd.gz auto url=http://mynetwork.install.server/preseed/cluster-node/precise.cfg --

Thanks in advance,

Best Answer

To get your installation to setup the network and download the preseed, you will need to add the following to your APPEND Section of your pxelinux.cfg file:

  • locale=en_US to set the locale
  • keyboard-configuration/layoutcode=us to set the keyboard configuration
  • ipv6.disable=1 to prevent the interface asking for an IPv6 address
  • hostname=<put hostname here> to set the hostname
  • interface=<specify the interface here> to set the interface

Your pxelinux.cfg file must look like below:

#Ubuntu 12.04 LTS x86_64 Node
label 1
    menu label ^1. Ubuntu 12.04 LTS "Precise Pangolin" x86_64 Node
    kernel ubuntu/precise/amd64/linux
    append vga=normal initrd=ubuntu/precise/amd64/initrd.gz locale=en_US keyboard-configuration/layoutcode=us ipv6.disable=1 hostname=somehostname interface=eth0 auto url=http://mynetwork.install.server/preseed/cluster-node/precise.cfg --