Become a fan of h2g2
Ubuntu is a complete Linux-based operating system, freely available with both community and professional support. It is built upon the Debian distribution and designed to complement Debian and provide a user-friendly computing platform that any person can use from casual computing to extensive software development work. This article discusses installation of Ubuntu without the use of a CD-ROM1 disk drive.
The Road to Network Installation
In 1997 I bought a Dell Dimension XPS H266 machine in a tower case, which I have used most days since then. I tried my first Linux installation in multi-boot mode on top of the System Commander boot-manager. In the last couple of years, I added a second fixed-disk drive and installed a NIC2 in one of the spare PCI3 slots.
In time, operation of the CD-ROM became erratic and finally wouldn’t recognize insertion of a CD. I circumvented the problem by sharing access to a CD-ROM on another machine across my network. After installing DSL4 broadband Internet access, I decided to reorganize the fixed disks on the Dell; while contemplating this, I thought I would also replace the Microsoft Windows operating system with an installation of Mandriva Linux.
First I reorganized the two partitions on the 60-Gbyte secondary storage disk. Next, I replaced the CD-ROM and checked that I could boot from it. Then I erased the entire 6-Gbyte primary storage disk along with Microsoft Windows and proceeded with a fresh installation of Mandriva Linux. Now things became much more troublesome.
After a couple of days of this and that, during which I played with the shunt settings on the CD-ROM and replaced the data-cable, the new CD-ROM was working the same as the old. I concluded that the real problem is a fundamental and intermittent fault in the secondary IDE5 subsystem on the motherboard.
If I had left well enough alone I wouldn’t be in this fine mess. Luckily, I’ve got three other machines, but I still felt mildly annoyed and unready to give up. Since the CD-ROM is unusable, I wondered if I could perform a bootstrap via the network. I read a recent article in PC Magazine on other Linux distros, looked it up on the web and decided to try Ubuntu, which is an old African word meaning something like Service to Humanity.
Some research on the web located a wiki in the Ubuntu domain that explains how to boot Ubuntu onto a machine without a working CD-ROM. As with most instruction sets much is left to the interpretation of the reader. I found the Etherboot project on SourceForge and downloaded the latest version of Etherboot code from the ROM-o-matic site, configured for my NIC. I wrote the file out to a floppy and checked that I could boot my machine and see it broadcasting PXE6 boot requests to the network.
I downloaded tftpd32.exe and the Ubuntu netboot.tar.gz package. Microsoft Windows has its uses. I configured the tftp7-dhcp server on the W2K8 box. Disconnected my hub from the gateway to avoid a DHCP9 clash, then booted my Dell box.
Lo the wonders of Linux! Etherboot sucked in the Ubuntu netboot image and started looking for the Internet then asked for a machine name. At this point, I shut down the tftp-dhcp server, reconnected my hub to the gateway, back-tracked to the network search, then selected the US Ubuntu mirror. After a few more questions about time zones, disk partitioning, and users the installation proceeded from across the Internet and up the screen.
After two hours the entire system had installed, configured, and fully updated itself, presenting me with the Ubuntu splash-screen and login prompt.
Installing Ubuntu via Internet
Installing Ubuntu via the Internet is a three-step process. This procedure assumes that another computer is available to provide tftp-dhcp services and that it is running Microsoft W2K. Further assumption is the availability of a broadband network connection to the Internet.
Create an Etherboot Floppy
- Determine what kind of NIC is installed in your target computer. In my case, this was a Netgear FA311.
- Find out what chip-set is used on your NIC by going to this web-site Etherboot.
- Scroll down to the vendor information and select Technical Data for your card. In my case this would be Netgear, which would produce another table showing model number FA311TX, FA311, and FA312.
- Note the main-chip for your card. Mine is a dp83815 made by National Semiconductor.
- Now go to the ROM-o-matic web-site at ROM-o-matic and choose your NIC/ROM type from the drop-down menu in Step-1. My selection would be natsemi:dp83815 – [0x100b,0x0020].
- In ROM-o-matic Step-2, choose ROM output format: Floppy bootable ROM image (.zdsk)
- In ROM-o-matic Step-3, leave the custom configuration as is.
- In ROM-o-matic Step-4, select the Get ROM button.
- Save the file to disk.
- Insert a formatted floppy disk in /dev/fd0 of a Linux box or the floppy drive of a machine running Microsoft Windows.
- On a Linux box, execute this command to write the boot image to floppy disk: cat filename > /dev/fd0 or dd if= filename of=/dev/fd0 where filename is the name of the file you downloaded from ROM-o-matic, which, in my case, is eb-5.4.1-natsemi.zdsk. On Microsoft Windows machines you will need the RawWrite utility to put the boot image onto the floppy disk; RawWrite is available from Freshmeat Net.
- Set the floppy disk aside and now set-up the TFTP-DHCP server as described in the next section.
Create a TFTP-DHCP Server
This procedure establishes a DHCP TFTP server on a machine running Microsoft Windows that is connected to your local network behind your gateway to the Internet proper. Once running, it serves the Ubuntu netboot image across the local network to the target machine making the PXE boot request.
I used Windows 2000 which meant that as an ordinary user I didn't have privilege for the operation. Since the TFTP server is short lived and temporary, I performed the operation while logged-in as system administrator.
- Download the Windows TFTP-DHCP server program from tftpd32
- Download the Ubunto Breezy Badger network boot image from netboot.tar.gz. You can easily upgrade to later releases of Ubunto once you have it operational on your machine.
- On the Windows machine, create a directory called ubuntu. Creating the directory at the root level facilitates less typing, for example: c:\ubuntu.
- Place the executable file tftpd32.exe that you downloaded into ubuntu.
- Create a directory called netboot as a sub-directory of ubuntu and extract the contents of netboot.tar.gz to c:\ubuntu\netboot. WinZip is a common utility that will perform the extraction from the archive file.
- Copy the pxelinux.cfg folder from c:\ubuntu\netboot\ubuntu-installer\i386\ and paste it into c:\ubuntu\netboot.
- Run the executable file tftpd32.exe with administrator privileges.
- Select the DHCP tab.
- In the Default router field, put the address of your internet gateway. In my case it was 192.168.1.1.
- In the IP pool starting address field put the gateway address plus 1. For me this value was 192.168.1.2.
- Set the Size of pool field to 10
- Set the Boot File field to \netboot\pxelinux.0.
- Leave the WINS/DNS Server field as is.
- Select the Save button.
- Now select the Settings button.
- In the Advanced TFTP Options field, tick the PXE Compatibility box.
- Tick the Translate Unix file names box.
- Tick the Allow ‘\’ As virtual root box.
- Select the OK button
If you are running firewall software, you will need to give the TFTP DHCP server permission to access the local network.
Perform a Network Installation of Ubuntu
Insert the floppy disk into the disk drive of your target machine and perform a restart. You should see text scroll up the screen as Ubuntu is bootstrapped onto the target. When the the scrolling text stops and you are asked the first question about about configuration of your Ubuntu machine, stop your TFTP DHCP server and log-off as administrator.
One possible problem could be caused by competition between the TFTP DHCP server and the DHCP server in your Internet gateway. In my case, I disconnected my Internet gateway during the Ubuntu bootstrap process then reconnected it after I stopped the TFTP DHCP server. Once Ubuntu is bootstrapped from the boot image it needs access to the Internet to get the remaining files of the operating system.
For me and my system this procedure worked like a charm. Of course user beware; you do this at your own risk. There is no other help than what you find here and can find elsewhere on the Internet. Good luck and may the Penquin be with you.