Ubuntu PXE Install

From C4 Wiki
Revision as of 15:47, 31 October 2004 by Mario Manno (talk | contribs) (added)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search

Installing Ubuntu via PXE network boot is the way to go if you have no cd-r at hand or if you have no cdrom at all.

After reading Installation of Woody with PXE it wasn't hard to setup a PXE boot environment.

Install services

You need the following debian packages:

  • tftpd-hpa
  • dhcp-server

Prepare your tftp server

Start your tftpd server via inetd with the following line in /etc/inetd.conf:

tftp           dgram   udp     wait    root  /usr/sbin/in.tftpd /usr/sbin/in.tftpd -s /tftpboot

Create the tftp directory /tftpboot

Prepare your dhcp-server

host pxeinstall {
  hardware ethernet [mac-address of pxe networkcard without brackets];
  fixed-address 10.0.0.16;
  filename "pxelinux.0";
}

Prepare ubuntu netboot

Get the files

All the files you need are on the install media, or you can get them here

Put the netboot files into the /tftpboot directory.

lftp -c "open http://archive.ubuntu.com/ubuntu/dists/warty/main/installer-i386/current/images/; mirror netboot/"
cp netboot/* /tftpboot
# untar the pxeboot.tar.gz
cd /tftpboot/
tar xfz pxeboot.tar.gz

pxe bootloader config

Edit or patch pxelinux.cfg/default .

--- default.org	2004-10-31 15:32:32.000000000 +0100
+++ default	2004-10-31 00:14:52.000000000 +0200
@@ -13,17 +13,11 @@
 F0 debian-installer/boot-screens/f10.txt
 
 label linux
-	kernel debian-installer/linux
-	append vga=normal initrd=debian-installer/initrd.gz ramdisk_size=11057 root=/dev/rd/0 devfs=mount,dall rw --
+	kernel vmlinuz
+	append vga=normal initrd=initrd.gz ramdisk_size=11057 root=/dev/rd/0 devfs=mount,dall rw --
 label expert
-	kernel debian-installer/linux
-	append DEBCONF_PRIORITY=low vga=normal initrd=debian-installer/initrd.gz ramdisk_size=11057 root=/dev/rd/0 devfs=mount,dall rw --
-label custom
-	kernel debian-installer/linux
-	append ubuntu/install-type=custom vga=normal initrd=debian-installer/initrd.gz ramdisk_size=11057 root=/dev/rd/0 devfs=mount,dall rw --
-label custom-expert
-	kernel debian-installer/linux
-	append ubuntu/install-type=custom DEBCONF_PRIORITY=low vga=normal initrd=debian-installer/initrd.gz ramdisk_size=11057 root=/dev/rd/0 devfs=mount,dall rw --
+	kernel vmlinuz
+	append DEBCONF_PRIORITY=low vga=normal initrd=initrd.gz ramdisk_size=11057 root=/dev/rd/0 devfs=mount,dall rw --
 
 prompt 1
 timeout 0

Make a symlink from default to the ip of the pxe boot client.

cd /tftpboot/pxelinux.cfg
ln -s default 0A000010

Directory layout

Should look like this:

/tftpboot/
/tftpboot/pxelinux.0
/tftpboot/initrd.gz
/tftpboot/mini.iso
/tftpboot/debian-installer
/tftpboot/debian-installer/linux
/tftpboot/debian-installer/initrd.gz
/tftpboot/debian-installer/boot-screens
/tftpboot/debian-installer/boot-screens/splash.rle
/tftpboot/debian-installer/boot-screens/f1.txt
/tftpboot/debian-installer/boot-screens/f2.txt
/tftpboot/debian-installer/boot-screens/f3.txt
/tftpboot/debian-installer/boot-screens/f4.txt
/tftpboot/debian-installer/boot-screens/f5.txt
/tftpboot/debian-installer/boot-screens/f6.txt
/tftpboot/debian-installer/boot-screens/f7.txt
/tftpboot/debian-installer/boot-screens/f8.txt
/tftpboot/debian-installer/boot-screens/f9.txt
/tftpboot/debian-installer/boot-screens/syslinux.txt
/tftpboot/debian-installer/boot-screens/f10.txt
/tftpboot/initrd.list
/tftpboot/vmlinuz
/tftpboot/pxelinux.cfg
/tftpboot/pxelinux.cfg/default
/tftpboot/pxelinux.cfg/0A000010

Start the PXE client

Just boot up the PXE client. If something isn't working you can use a sniffer on your install server to check.

tethereal port bootp
#tethereal -VR port bootp
tethereal port tftp