Netboot

Revision 20 as of 2006-04-21 12:15:07

Clear message

Netboot Install

This HOWTO describes the steps required to start an installation of Ubuntu over the network (if you have e.g. an old machine with a non-bootable CDROM).

You must modify the host names and IP addresses in this HOWTO for your own setup. The principles described here are applicable to other DHCP and TFTP servers than those described below; using alternate server software is left as an exercise for the reader.

For instructions on how to use a windows computer as the TFTP and DHCP server, head to ["Installation/WindowsServerNetboot"].

See [Installation/QuickNetboot] for alternative step by step instructions.

(This HOWTO will get you as far as running the installer - if you want to perform automated or unattended installs of Ubuntu, see ["Installation/LocalNet"]).

The scenario

One old Celeron 400Mhz with non-bootable CDROM, (kanga, 172.31.0.242). This is the target for installation. It has a bootable floppy disk.

A DHCP server (roo, 172.31.0.252), using dnsmasq as the DHCP server. roo has a pretty much home made Linux on it. I added tftp-hpa to it, built from source.

Assumption: You're firewalled and will not expose services used for this exercise to the world. You have a reasonable (ADSL) network connection.

Setup DHCP-BOOT

On roo (the DHCP server):

  • In /etc/dnsmasq.conf, add the line:

  dhcp-boot=pxelinux.0,roo,172.31.0.252

This machine already serves an IP address to kanga via DHCP.

Warty:

  tar -xvzf pxeboot.tar.gz -C /var/lib/tftpboot/
  chown -R nobody:nobody /var/lib/tftpboot

Hoary + Breezy:

  tar -xvzf netboot.tar.gz -C /var/lib/tftpboot/
  chown -R nobody:nobody /var/lib/tftpboot
  • Enable the tftpd server. Add the following as /etc/xinet.d/tftp.

  service tftp
  {
        disable                 = no
        socket_type             = dgram
        wait                    = yes
        user                    = root
        server                  = /usr/sbin/in.tftpd
        server_args             = -v -s /var/lib/tftpboot
        only_from   = 172.31.0.240/28
        interface   = 172.31.0.252
  }
  • Restart xinetd

 killall -HUP xinetd

On any machine:

  make bin/3c90x.zfd0
  • (Subsititute your NIC type for 3c90x)

Start the install

  • Boot the install target (kanga) from the etherboot boot floppy
  • Marvel as the Ubuntu installer starts over the net.

Q&A

  • Q: I've noticed you didn't add the interface MAC address. Each and every tutorial I've see stressed the importance of the MAC address to allow the net booting machine authorized on the boot server, is this redundent and can be ignored altogether? --SivanGreen

  • A: "It Depends"(tm) Either way will work - each has pros and cons. You don't need it, but that increases the risk of some other machine's system getting installed over.

  • Q: Hmm, has someone gotten this to work? Using etherboot-5.3.12 with defaults (cd src ; make bin/via-rhine.zfd0 - the defaults include -DPXE_IMAGE and -DPXE_EXPORT ), the boot process seems to stop after loading the file from TFTP: Loading 192.168.0.2:pxelinux.0 ..(PXE)done Also, it may be worth mentioning that the images from http://rom-o-matic.net/ (the referred-to Etherboot manual has a link to this site) don't support PXE images at all. --PeterParkkali

  • A: I have had good luck with both. I have used rom-o-matic.net for 4 or 5 nics, they do support pxe.

  • Q: The kernel in the Breezy netboot images doesn't contain driver XXXX which I need to install with. How can I rebuild the netboot kernel image & initrd.gz to include XXXX? --KeithHopkins

Note

On 2005-12-14 I tried to net-install a Breezy system, which bailed out during the second phase of the install with a libesd-alsa0: Conflicts: libesd0 but 0.2.36-1ubuntu5 is to be installed message. This is due to the archives being broken. If you run into this error, do the following. Edit the pxelinux.cfg/default file on your install server and add a category:

label desktop
        kernel ubuntu-installer/i386/linux
        append base-config/package-selection=~t^ubuntu-standard$|~t^ubuntu-desktop$ vga=normal initrd=ubuntu-installer/i386/initrd.gz ramdisk_size=16432 root=/dev/rd/0 rw  --

Then start the netboot and type "desktop" at the prompt. (You can, of course, also change the label linux settings, just add base-config/package-selection=~t^ubuntu-standard$|~t^ubuntu-desktop$ text to the append line, as shown above. Adding a category, as I did, is less invasive, it won't break extra things). Now the install should proceed just like a regular installation.


See also: ["Installation/LocalNet"] and http://wiki.heinous.org/index.php/Ubuntu_Notes


CategoryDocumentation CategoryCleanup