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.


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:tftpubuntu-installeri386<some more files/folders>

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



freeze up

felix | 18/09/2008, 17:53

I followed the instruction and every thing works until mirror and download process.

My laptop freeze there for 24 hours. Do you know what happen?

Re: Ubuntu PXE install via Windows

ggarion | 18/09/2008, 21:30

Thank you so much for this! You make the web worthwhile.

Re: Ubuntu PXE install via Windows

Maloco | 21/09/2008, 16:17

I have followed the tutorial, but everytime I try to get it booted it gives me the following error message:

"Trying to load: pxelinux.cfg/4024d24d-8445-dd11-a6a6-001e68944144

Trying to load: pxelinux.cfg/default
Unable to locate configuration file
Boot failes: press a key to retry, or wait for reset..."

The files are all located correctly I have already double-checked that. I also replaces the files but always the same problem. Anyone an idea with this issue?

Thanks a lot!

Easier downloading of files

Vicktor | 14/10/2008, 05:51

Wouldn't it be a lot easier if ALL the files required were zipped up in one nice package so we can download it and move on with the installation? I know you're only doing this once but there are a lot of folks who are rather new to this but want to give Linux a chance. The installation is SO confusing, it's a lot easier to simply stay with Windows. Oh, and for those who say "install from a CD then", well, that's not an option for some with very old PC's - you know - the ones Linux supposedly brings back to life.

Re: Ubuntu PXE install via Windows

reto | 14/10/2008, 21:40

Good point, thanks for posting the idea. Unfortunately I'm way too busy for the rest of the year to package and test the right config post everything here. So, if someone could pick up and help out I'd be glad and of course link to the resources!

Re: Ubuntu PXE install via Windows

Chris | 18/10/2008, 20:03

I just used this to install the 8.10 build of Ubuntu on a tablet with no CD drive. Like everyone else has mentioned, this is the best, most straight-forward guide out there. Thanks!


w00ter | 07/11/2008, 20:26

I love you!

Thanks !!!

Tchoa | 26/11/2008, 14:52

Just to say to you thank you and inform you that I based a French tuto on the ubuntu site


Rob | 23/12/2008, 14:03

thanks very much ; you have just saved me a good few hours hunting around!

Ubuntu with vista

Garet | 06/01/2009, 16:50

For anyone trying to do this with vista as your DHCP server, here are the problems I encountered and the steps I used to correct them:

1. Make sure to turn the DHCP server of your router (if you have one) off.
2. Make sure the windows firewall is off.
3. In the Tftpd32 settings, make sure "Ping Address Before Assignation" is off. I was seeing a message along the lines of "Requesting IP Address which is out of range" ( I had my DHCP server to begin initializing at 105). Unticking this option solved that.

About all I can think of... good luck!

Top notch

Marc | 02/02/2009, 13:01

Hey man.
I got a netbook and this article IS the solution.
Gorgeous article you've made short and comprehensible for a lot of us out there Nonetheless I would like to know how to pxe install using an image from within you HDD. You see i'd like to copy my Toshiba VDV image to the HDD and install it from here. This way I will have my netbook installed as it was delivered to me.

Ubuntu PXE install via Windows

nuno | 04/02/2009, 15:43

hi, thanks for this great how to! I successful build the PXE installation, and installed ubuntu.. but now when i reboot, it boots up, load some things and stays at command line. I wanted a graphic environment, but i dont know how to install it now. Im new to linux so i dont understand most of the commands or procedures. Can anybody give some pointers? Sorry for my english

Works flawlessly! Thanks

Jon | 05/02/2009, 03:55

I didn't think it was going to be this easy, I searched hours over the internet for a way to reformat my Dell Mini 9 with Ubuntu, finally I came across this, I admit I was skeptical but as I'm leaned back in my recliner now, I'm watching my Dell Mini 9 Install Ubuntu! Hopefully more netbook users are able to locate this guide and take the pain out of installing Ubuntu on their Windows XP based Mini 9's..... Many Thanks again, Jon

Ubuntu PXE install via windows

Local | 08/02/2009, 19:33

The following link is not available, so which link shall we use to d/l the netboot.


Many thanks in advance.

Ubuntu PXE install via Windows

Tom | 08/02/2009, 19:44

on my laptop I'm getting PXE-T04 then PXE-E36 then PXE-M0F and then exits...!
from the logs on the tftp server I've got the following:

Rcvd DHCP Rqst Msg for IP, Mac 00:08:0D:42:35:36 [08/02 18:37:20.201]
Previously allocated address acked [08/02 18:37:20.201]
Connection received from on port 2070 [08/02 18:37:20.209]
Read request for file . Mode octet [08/02 18:37:20.209]
OACK: [08/02 18:37:20.210]
Using local port 57595 [08/02 18:37:20.210]
4144 Request 2 not processed [08/02 18:37:20.253]
Connection received from on port 2071 [08/02 18:37:22.193]
Unexpected request 4 from peer [08/02 18:37:22.193]
Returning EBADOP to Peer [08/02 18:37:22.193]
TIMEOUT waiting for Ack block #1 [08/02 18:37:41.114]
Rcvd DHCP Discover Msg for IP, Mac 00:08:0D:42:35:36 [08/02 18:37:49.623]
DHCP: proposed address [08/02 18:37:49.623]
4144 Request 2 not processed [08/02 18:37:49.675]
Rcvd DHCP Rqst Msg for IP, Mac 00:08:0D:42:35:36 [08/02 18:37:51.738]
Previously allocated address acked [08/02 18:37:51.738]
Connection received from on port 2070 [08/02 18:37:51.746]
Read request for file . Mode octet [08/02 18:37:51.746]
OACK: [08/02 18:37:51.747]
Using local port 57597 [08/02 18:37:51.747]
4144 Request 2 not processed [08/02 18:37:51.790]
Connection received from on port 2071 [08/02 18:37:53.729]
Unexpected request 4 from peer [08/02 18:37:53.729]
Returning EBADOP to Peer [08/02 18:37:53.729]
TIMEOUT waiting for Ack block #1 [08/02 18:38:12.614]

Can someone pls suggest what I'm doing wrong?


reto | 09/02/2009, 21:29

You should use the latest stable image. And that is not edgy, but hardy. So the correct download path is:



The Vermin8tor | 03/03/2009, 23:14

Followed step 1. Tried to connect through link provided to get 'main files' as suggested, but got a '550 failed to change directory message'. and couldn't go to site.Any one help?


reto | 03/03/2009, 23:20

Sorry, the location for the latest stable (Ubuntu 8.10) is the following:
The error occured because the files where not there anymore.

Ubuntu PXE install vie WIndows

Moritz | 15/05/2009, 14:47

Thanks for this guide, i have spent so much time trying to install dsl or debian vie PXE and i havent got anywhere. This guide works instantly and is easily to understand. i'm very thankful for hist tut. Forgive me my bad english.
Greetings from germany

Ubuntu PXE install via Windows

Roni | 08/06/2009, 01:17

I followed the instructions and I'm able to get the "install" screen up on client computer, then it says "loading..boot failed" and I get the following error on the server computer:
"File : error 131 in system call ReadFile An attempt was made to move the file pointer before the beginning of the file. [07/06 19:13:15.484]"

Any insight?

«Previous   1 2 3