Ubuntu PXE Install
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.
Contents
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