Flexion.Org
Bad grammar and typos for total strangers
Wiki › Network Booting
Wiki Index All Recent Edit Bottom

NetworkBooting

1.   Introduction
1.1   Preseeding
2.   TFTP and PXE Summary

Introduction

Installing computers from CD's is a slow, manual process. Therefore I create a network boot server so I can install Debian and Ubuntu via the network (nearly) automatically. I choose not to automate the partition setup as all my computers have different roles and disk partitioning requirements.

There are several steps to creating a network boot server...

Preseeding

An MD5 hash for a password can be generated using the following command.

 echo "r00tme" | mkpasswd -s -H MD5

Debian

To come...

Ubuntu

 d-i debian-installer/locale string en_GB
 d-i console-setup/ask_detect boolean false
 d-i console-tools/archs select at
 d-i console-keymaps-at/keymap select gb
 d-i netcfg/choose_interface select eth0

 #d-i netcfg/disable_dhcp boolean true
 #d-i netcfg/get_nameservers string 192.168.1.1
 #d-i netcfg/get_ipaddress string 192.168.1.42
 #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 ubuntu
 d-i netcfg/get_domain string home.flexion.org

 d-i netcfg/wireless_wep string s:YourSSID

 d-i mirror/protocol string http
 d-i mirror/country string enter information manually
 d-i mirror/http/hostname string slug
 d-i mirror/http/directory string /ubuntu
 d-i mirror/http/proxy string
 d-i mirror/suite string stable

 d-i partman-auto/disk string /dev/discs/disc0/disc
 # In addition, you'll need to specify the method to use.
 # The presently available methods are: "regular", "lvm" and "crypto"
 d-i partman-auto/method string regular
 d-i partman-auto/purge_lvm_from_device boolean true
 d-i partman-lvm/confirm boolean true
 # If not, you can put an entire recipe into the preconfiguration file in one
 # (logical) line. This example creates a small /boot partition, suitable
 # swap, and uses the rest of the space for the root partition:
 d-i partman-auto/expert_recipe string                         \
      boot-root ::                                            \
              384 50 512 ext3                                 \
                      $primary{ } $bootable{ }                \
                      method{ format } format{ }              \
                      use_filesystem{ } filesystem{ ext3 }    \
                      mountpoint{ /boot }                     \
              .                                               \
              512 512 100% linux-swap                         \
                      $primary{ }                             \
                      method{ swap } format{ }                \
              .                                               \
              500 10000 1000000000 ext3                       \
                      $primary{ }                             \
                      method{ format } format{ }              \
                      use_filesystem{ } filesystem{ ext3 }    \
                      mountpoint{ / }                         \
              .

 # This makes partman automatically partition without confirmation.
 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 time/zone string Europe/London

 d-i apt-setup/uri_type  select http
 d-i apt-setup/country   select enter information manually
 d-i apt-setup/hostname  string gb.archive.ubuntu.com
 d-i apt-setup/directory string /ubuntu
 d-i apt-setup/another   boolean false
 d-i apt-setup/security-updates boolean true
 d-i apt-setup/restricted boolean true
 d-i apt-setup/universe boolean true
 d-i apt-setup/multiverse boolean true
 d-i apt-setup/backports boolean true

 d-i passwd/root-login boolean false
 #d-i passwd/root-password password r00tme
 #d-i passwd/root-password-again password r00tme
 #d-i passwd/root-password-crypted password [MD5 hash]

 # To skip creation of a normal user account.
 #d-i passwd/make-user boolean false

 # To create a normal user account.
 d-i passwd/user-fullname string Martin Wimpress
 d-i passwd/username string martin
 d-i passwd/user-password password YourPasswd
 d-i passwd/user-password-again password YourPasswd
 #d-i passwd/user-password-crypted password [MD5 hash]

 d-i debian-installer/allow_unauthenticated string true

 # Ubuntu CLI
 tasksel tasksel/first   multiselect
 d-i pkgsel/language-pack-patterns       string
 d-i pkgsel/install-language-support     boolean false

 # Ubuntu Desktop
 #tasksel        tasksel/first   multiselect ubuntu-desktop

 # Individual additional packages to install
 d-i pkgsel/include string openssh-server debconf-utils

 d-i popularity-contest/participate boolean false

 d-i grub-installer/only_debian boolean true
 d-i finish-install/reboot_in_progress note
 d-i cdrom-detect/eject boolean false

TFTP and PXE Summary

We've installed a 'pxelinux.0' file which will instruct booting clients to request out customised 'pxelinux.cfg/default' configuration. This will display a list of the available boot options but only if SHIFT, ALT, CAPS LOCK or SCROLL LOCK are depressed during the PXE/TFTP initialisation. If those keys are not depressed the PXE boot loader simply instructs the system to boot directly from hard disk.

Network booting and installing from a local "mirror" are now possible.

  • By default the PXE network loader will not present a boot prompt and will directly boot from the local hard disk.
  • If you hold down SHIFT, ALT, CAPS LOCK or SCROLL LOCK during the PXE/TFTP initialisation then it will cause the Network Boot menu to load.
  • Choose the OS your want to install and press ENTER.
  • When the OS boot prompt appears, you have to invoke an install mode by typing the appropriate, such as 'install' or 'cli' for example.
    • If you simply press ENTER, the computer will boot from the hard disk.

ALL OF THE ABOVE IS DELIBERATE ALLOWING YOU TO LEAVE NETWORK BOOTING AN ENABLED OPTION IN THE BIOS OF YOUR COMPUTERS, WITHOUT SLOWING DOWN THE NORMAL BOOT PROCESS, YET PREVENTING YOU FROM INADVERTENTLY NUKING A COMPUTER WITH A FRESH NETWORK INSTALL ;-)

References

$Id: NetworkBooting,v 1.24 2008/01/07 22:47:05 martin Exp $

Wiki Index All Recent Edit Top
 
Valid XHTML Valid CSS Hacker