Sunday, September 10, 2006

Ubuntu network install with Intel Boot Agent

I have an IBM Thinkpad Transnote that does not have any CD drive. I am left with the network install option. This was an easy task when I was still using Mandriva (formerly Mandrake) because the installer includes the images for bootable floppy drives. With Ubuntu, you are left with an option of using your motherboard / Ethernet card's booting capability. My options are: etherboot and the on-board Intel Boot Agent that supports PXE to boot. The following steps will guide you in booting the Ubuntu installer using the Intel Boot Agent. Note that the Ubuntu installer is just a bootstrap, you will have to download the rest of the packages on the Internet. Alternatively, I think you can hack the installer to get the packages from a local host (but this is out of the scope).

Terms

* The client is the laptop that has to be installed with Ubuntu.
* The server serves the client (duh!). I am running Ubuntu Dapper (6.06).

DHCP server

We need a DHCP server to serve the client with the network settings (IP, router, DNS addresses). I used Ubuntu's dhcpd. My /etc/dhcpd.conf contains the following lines:

option subnet-mask 255.255.128.0;
default-lease-time 600;
max-lease-time 7200;
option domain-name-servers 10.32.1.7;
option routers 10.36.0.1;
allow booting;
allow bootp;

#my IBM Thinkpad
subnet 10.36.2.0 netmask 255.255.255.0 {
host premthinkpad {
hardware ethernet 00:10:A4:78:C2:D5;
fixed-address 10.36.2.90;
filename "pxelinux.0";
next-server 10.36.2.217;
}
}


DHCP-BOOT

I used another DHCP server dnsmasq which supposedly serves the purpose of the line:

filename "pxelinux.0";

in the previous configuration. I am not sure which one is working so just install these two daemons (dhcpd and dnsmasq).

TFTP server

Install a tftp server. I used tftpd-hpa, it supports the PXE protocol.

Ubuntu's netboot

Download Ubuntu's netboot tar file. I got the links from this page [1].

Ubuntu Dapper netboot archive

Place the boot files to the tftp folder:

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


Enable the tftp server using the xinetd service. Add the ff. lines to /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 = 10.36.2.0/23
interface = 10.36.2.217
}


If the file does not exist, create it. Restart xinetd:

killall -HUP xinetd


Intel Boot Agent

Configure the BIOS to boot using the Intel Boot Agent. You should see a DHCPD discover request sent by the client. Then, it will load the Ubuntu installer.

Good luck!

Contact

If you have questions, post them at Ubuntu Forums, then leave a comment.

Resources

* [1] https://wiki.ubuntu.com/Installation/Netboot
* Thinkpads without CD-ROM drive
* Ubuntu network install

No comments: