Ubuntu PXE install via Windows

Posted by reto on 23 December, 2006 23:10

This article expains in step by step instruction how to install Ubuntu over the network (although it's easy to adapt the how-to to other linux distros) via a Windows 2000/XP client.

Introduction

The Preboot Execution Environment (PXE) is nothing new, but rarely used in home office environments because it's most of the time easier to install any operating system from a CD, DVD or even a USB storage device. But what, if you have neither optical drives nor USB storage devices? The only requisites for a PXE installation are a working computer (any OS with TFTP Servers available will do) and Internet access.

The Problem

With the new Intel Southbridge (ICH8R) parallel ATA Drives are no longer supported by the chipset natively, which means most motherboard manufacturers add third party controllers on their boards to provide p-ata interfaces. These third party controllers however are not well supported on Linux at the moment. Especially not directly in the kernel, which means you would have to pre-compile your own installer to access any p-ata CD-Rom. Another reason for using PXE might be subnotebooks without CD/DVD-ROM. The only option you have there is an installation via USB or over the network (PXE).

Step 1: Prerequisites

First get yourself a copy of the free TFTP server by Philippe Jounin. Second we need the ubuntu installer files. Of course it doesn't make much sense to download one of the ubuntu CD images if we only need the small installer. The installer will choose the nearest mirror and download all the files needed automatically during the installation.
The browsable Ubuntu archives are at http://archive.ubuntu.com/ubuntu/dists/. But as we only need the installer, we can ftp to ftp://archive.ubuntu.com/ubuntu/dists/edgy/main/installer-i386/current/images/ and download the folder netboot (ignore any symlinks, they may give you errors during the download).
That's all we need to boot our Ubuntu installer over the network. Let's setup the TFTP server.

Step 2: Setting up a TFTP Server on WindowsTFTP32 DHCP Settings

  1. Create a directory, preferably on your C Drive. We'll name it tftp for now.
  2. copy the tftpd32.exe to c:tftp
  3. Start the server by clicking on the exe
  4. switch to the tab "DHCP Server" and fill in your network setup. Note that the PC you want to boot must be in the same Subnet. Enter pxelinux.0 as the boot file. The Screenshot on the right shows my setup.

Now we need to copy the Ubuntu netboot installer over to our tftp root directory:

  1. copy the folder ubuntu-installer to c:tftp
  2. copy the folder pxelinux.cfg from ubuntu-installer/i386/ to c:tftp
  3. copy the file pxelinux.0 from ubuntu-installer/i386/ to c:tftp

This is how your tftp folder should look like:

c:tftppxelinux.cfgdefault
c:tftpubuntu-installeri386<some more files/folders>
c:tftppxelinux.0
c:tftptftpd32.exe

Step 3: Booting Ubuntu

To boot from tftp you may need to activate booting from the network interface in the BIOS. This may be done in the boot sequence settings or directly in the onboard ethernet device settings. After that, restart, lean back and watch the activities in the log viewer tab of the tftpd.


Note: Ubuntu will let you choose a mirror and download all the files you need. The whole procedure will work with any other debian flavour almost identically. There is a nice how to on doing a PXE install via Linux instead of windows at the CCC Wiki

Information and Links

Join the fray by commenting, tracking what others have to say, or linking to it from your blog.


Related Articles
Optimizing PNG Compression
Totally Unrelated Post
Mercedes-Benz Mixed Tape 16
Easy Audio Stream Recording with Streamripper
Slashdot Readers on Windows Viruses

 


Comments

pxe install

Jack Crowley | 18/04/2007, 05:19

Thanks for the article.

I had difficulties installing Ubuntu Edgy Eft on a Toshiba 3490CT using a PCMCIA CD-ROM drive. The Toshiba BIOS had no problem booting the CD, but the installer aborted, reporting numerous errors including a failure to find any TTY consoles. That's when a PXE install became the best option.

Originally I tried to use this method across a Linksys cable modem router/ 4 port switch combination with the Linksys DHCP disabled. For some reason this method failed. Maybe the Linksys logic for disabling the internal DHCP server service blocks all DHCP transmission, including that of the TFTP server.

I then used a simple cat 5 crossover cable to connect the Windows TFTP server machine to the Toshiba laptop.
This method worked with absolutely no problems.

re: pxe install

reto | 19/04/2007, 22:37

Hi Jack,
Thanks for the feedback, I'm glad it was useful for you.
I'm wondering, why you would want to switch of the DHCP on your Linksys router, though. As you can see in the screenshot provided, my gateway (and DHCP server) with 192.168.1.1 assigned the IP for the PXE client (192.168.1.2). And my tftp server was waiting at 192.168.1.3. I'm using a Zyxel Router/4-port Switch as a DHCP Server, which is about what you have.

Anyway, YMMV and thanks for the input with the crossover cable.

Flawless

Chance | 05/06/2007, 21:14

Installed on a soekris net4801, for which I had no cf writer. I tried about 100 different distros, and all failed except this one.

only site that had this info that was EASY

Joe P | 15/06/2007, 18:35

2nd or 3rd time using this guide. i forget. first i did it with feisty just by changing the distro name in the netboot ftp address. now im trying gutsy. great site. its people like you who put up these little guides that make it easy for the rest of us to catch on.

like i could have figured it out myself ;) but it would have been a lot of work and frustration.

This guide is great

Nate | 24/08/2007, 02:44

I've been trying to do a PXE install of Ubuntu from windows for a week now. My old Toshiba Satellite took it like a charm once I used this wonderful guide.

Thank you for posting such a friendly guide for novice users.

error -> pxe e53 no bootfile name recieved

Bob | 10/09/2007, 03:35

I am trying to install feisty on my Dell latitude (no cdrom drive) running Windows 98. I use a linksys router and and after many hours I have been unsuccessful. I have tried to follow your instructions, but I get the error "PXE E53 No Bootfile name received". I do not know what the "IP starting pool address" should be, nor am I clear about the size of the pool on the TFTP (not sure if this is the source of my errors). Any suggestions? Thanks!

RE: error -> pxe e53 no bootfile name recieved

reto | 10/09/2007, 22:33

Hi Bob,
You may get the error because your dhcp server is not configured for the tftp server and does not provide the location of the boot file, hence try to use the built in dhcp server on your tftp server (and deactivate any other dhcp server). The other option would be to set the dhcp server to point to the right location of the boot file on your tftp server. But that is certainly not doable on my cheap equipment (soho zyxel router w/ dhcp server).

unable to pxe boot

Ash | 15/09/2007, 08:35

I'm not sure if this is the right place to post this, but I will be very grateful for any help. I am unable to get my destination machine to pxe boot off my Windows box.

I connect to the internet from my Windows box via a wireless connection and do not have access to the router that gives me my IP address (through dhcp, no doubt). I have a crossover cable, access to a switch and some regular LAN cables.

If I have downloaded the Ubuntu CD image, can I proceed with this PXE installation without access to the internet?

I hope the answer's yes - if it is, how do I configure the TFTP server?

Thanks.

Re: unable to pxe boot

reto | 17/09/2007, 22:00

Hi Ash
I think it should be possible with your equipment to do a PXE installation without an internet connection. I'd give the tftp server a static ip and set it as the gateway and dhcp server (the dhcp server comes with the tftp server). Then connect the two computers with the crossover cable.

Let me know if it worked!

cheers, reto

Ubuntu PXE install via Windows

Oscar S | 19/09/2007, 13:27

Worked flawlessly. Thanks!.

Just wondering if there is some way to serve the install cd (Ubuntu Desktop) from the pxe server instead of loading the bandwidth with apt-get downloads, without setting up a web server as explained in your linux-pxe CC Wiki.

Again, thanks.

Thanks

Kaygroth | 25/09/2007, 16:01

Used this to get Ubuntu and Mandriva working after looking at masses of crappy how-to's

Thank you for this one!!!

No lan

gary | 26/09/2007, 03:14

i can get the boot from the tftp server but after that ubuntu cannot detect my LAN so i cannot continue with the net install any ideas how to solve this ? i.e having it load drivers on boot from tftp server

YOU ARE A GENIUS AND I LOVE YOU

mh | 27/09/2007, 13:36

It wasn't working for me, the laptop was giving me an "illegal TFTP operation" error, but I thought to go into the TFTP server settings and there was a box labeled "PXE Compatibility." I checked it and everything works now.

Re: Ubuntu PXE install via Windows

reto | 05/10/2007, 01:54

@mh: thanks for the post. I didn't even know why/where that checkbox might be useful...

now able to do a PXE install

monty | 31/10/2007, 03:47

Hi, was having trouble with an old Dell PIII laptop, had a Dell external ROM but wouldn't play with any Ubuntu distro (worked with DSL) so couldn't install. Previously I dropped the laptop HDD into my desktop but it seems that route has gone since I upgraded it and the spec is too different for Ubuntu to recognise enough components to load it.

I'd read some time back about the mythical (to me) network install. Today I decided to look into it again. All the articles I found on it were above me, except for yours.
So tonight I have reloaded Ubuntu 6.06 from my Windows XP PC to the old laptop, converted that in to Edubuntu (for my 3yr old).

Thanks very much for taking the time to post this.

Re: Ubuntu PXE install via Windows

reto | 31/10/2007, 09:52

@monty: Thank YOU for leaving a comment, I was glad to help.

E-32 error

oscar bremer | 02/11/2007, 00:21

Great guide, but for noobs like me who doesnt know what different addreses to put in the fields it was a little tricky. I got to the point where i could connect to my other computer but i was unable to transfer the pxelinux.0 file. And i just couldnt figure out what it was, after a couple of hours googling i figured out that the network settings were setup wrong. I was fiddling around with different settings and finally when i set the "IP pool starting address" to the same as my "Server interface" it all worked!!!! im now waiting for my Xubuntu imstall to finish on my laptop :)

Xubuntu instead of Ubuntu ?

monty | 12/11/2007, 19:58

Hi, previously I'd used your excellent tutorial to install Ubuntu 6.06 Dapper over PXE. To get wireless working I'm going to need Gutsy 7.10 but as the laptop only has 256MB RAM I'll have to run with Xubuntu as Ubuntu won't install with less than 320MB RAM.
Do you know where I would find the appropriate page for the Netboot and PXE files for Xubuntu and not Ubuntu.

thanks

PXE with Xubuntu

reto | 12/11/2007, 22:11

Hi Monty
I couldn't find repository for Xubuntu. It looks like they are providing custom ISO downloads, but actually use the same repository as Ubuntu (which makes perfect sense, IMO). According to these instructions, you only need to add universe and apt-get install xubuntu-desktop. You could probably try to not install ubuntu-desktop packages in the first place, boot to the shell and install the xubuntu-desktop. At least that's what I'd to.
Hope this helps - let us know!

Install on laptop with broken CD reader

Clive | 19/11/2007, 21:33

You are the man!

Works like a dream

Star

Dana | 19/11/2007, 23:36

Dude, you're a total star. High 5!

Hey, for anyone else out there, I had to also temporarily disable any security for DHCP to work.

easiest thing i have ever done

Charles | 30/11/2007, 09:15

Worked 100%, within 1 hr it was running and usable! thanks !

PXE Install

HombreGrande | 06/12/2007, 05:40

I did exactly as shown and mine failed with PXE-35 & PXE-39 errors.
My network is as shown here http://myfiles.spectratechnology.net/files/dh/PublicFiles/firewall.png
I am doing this in the GREEN zone. I already have DHCP running there, is that an issue ?

I used 192.168.125.101 as start of pool. I have 10 and I use my actual gateway, of 192.168.125.254 for WINS as well.

Why is mine failing ?

PXE Inst from ISO

Peter | 07/12/2007, 06:52

hi there! i have a dvd iso with kubuntu how can i make inst without downloading it again from inet? I add the files in netboot from dvd/iso and PXE works fine. do i need a httpd server? and/or i must copy all files from dvd to a folder in tftpd32 home dir (or maybe in httpd)? (sorry i'm too confused).

@HombreGrande

reto | 09/12/2007, 15:37

Hi HombreGrande
It looks like you're not in the same subnet, that's why it's not working. Your DHCP server for the GREEN zone is at 192.168.1.1, right? so you should set the "Server Interface" value to 192.168.1.10 (that's where your tftp server with the image is). And your start pool is set to 192.168.125.101 which you should change to 192.168.1.x.
Hope that helps.

1 2 3  Next»