Steps to Install an OS Over the Network: Practical Guide to PXE Boot

Even if your computer cannot boot from a CD or USB drive, there’s no need to worry. Using this method, you can easily install an OS via PXE technology.

What is PXE?

PXE (Preboot Execution Environment) is, simply put, a system that allows you to boot a computer over a network. Normally, you would need a USB drive or CD to install an OS, but with PXE, you can install an OS from another PC or server through a LAN cable. This is especially useful when you can’t use a USB drive or CD or when you want to install an OS on multiple PCs simultaneously.

In this guide, we’ll set up a PXE server using Windows. It’s easier than setting it up on Linux, making it a recommended method for beginners. You just need to download some software and make a few minor settings to get started.

Required Tools

First, prepare the tools you’ll need for this method. The main tools we will use are:

  • Tiny PXE Server: Software that functions as the PXE server.
  • netboot.xyz.kpxe: A DHCP bootloader.

Step 1: Get the DHCP Bootloader

First, download the DHCP bootloader file, “netboot.xyz.kpxe,” from the following link. This file is crucial when installing an OS over PXE.

👉 [netboot.xyz website]

Step 2: Download Tiny PXE Server

Next, download the software “Tiny PXE Server,” which will act as the core PXE server. Download the ZIP file from the link below.

👉 [Tiny PXE Server GitHub page]

After downloading, you’ll need to extract the ZIP file. Once extracted, you’ll see multiple folders and files.

Simple ASCII Art for PXE Network Boot (Windows)

  [PC (Client)] ---(LAN)--- [Windows PC (PXE Server)]
         |                                      |
     BIOS Settings                         Tiny PXE Server
         |                                      |
  Select Network Boot                DHCP Bootloader
         |                                      |
  Obtain IP Address                   Send OS Image
         |                                      |
  Start OS Installation                    |

This diagram shows the concept of a client PC booting over the network from a PXE server running on a Windows PC.

ASCII Art for PXE and DHCP Servers on Linux

  [PC (Client)] ---(LAN)--- [Linux Server]
         |                              |
     BIOS Settings                   DHCP Server
         |                              |
  Select Network Boot          Obtain IP Address
         |                              |
   Start PXE Boot                 PXE Server
         |                              |
   Receive OS Image             Send OS Image
         |                              |
   Start OS Installation              |

Key Differences

  • Operating System: Setting up a PXE server on Windows is much simpler, using Tiny PXE Server. On Linux, you need to manually install and configure the DHCP server and TFTP server (PXE server).
  • Tools: On Windows, you use an all-in-one tool called Tiny PXE Server, whereas on Linux, DHCP and PXE (such as TFTP) are separate, requiring more detailed configuration.
  • File Management: Linux offers more flexibility with manual file placement and configuration file editing, but this can be more challenging for beginners.

Please also refer to network settings and PXE server setup on Linux.

Server Setup Instructions (For Beginners)

  1. Extract the ZIP File

Tiny PXE Server is provided as a ZIP file. First, follow these steps to extract the files:

Right-click on the downloaded ZIP file and select “Extract All.”

Once the extraction is complete, you will see multiple folders and files.

  1. Move the Bootloader to the “files” Folder

Within the extracted folder, there is a folder named “files.” This is where the server stores the files it will use. Follow these steps to move the bootloader “netboot.xyz.kpxe” into this folder:

Locate the “netboot.xyz.kpxe” file that you downloaded earlier.

Drag and drop this file into the “files” folder.

  1. Configure Tiny PXE Server

Next, we will configure Tiny PXE Server. The configuration is very simple and involves editing just one file.

Find the file named “config.ini” in the Tiny PXE Server folder.

Right-click on the “config.ini” file and select “Open with” → “Notepad.”

In the file, locate the “[dhcp]” section. In this section, find the “filename” field and enter the name of the bootloader file that you moved earlier.

Example of Editing the Configuration File

Below is a sample of the part you need to edit. Be sure to correctly enter the line filename=netboot.xyz.kpxe.

[dhcp]
; Information needed for DHCP settings
filename=netboot.xyz.kpxe ; Specify the bootloader file name here
root=files ; The "files" folder is designated as the TFTP server's root directory
httpd=1 ; Enable the HTTP server

Explanation of the Settings

  • filename=netboot.xyz.kpxe: This specifies the bootloader file used for network booting. It ensures that the correct file is loaded during the PXE boot process.
  • root=files: Specifies the root folder for the TFTP server. In this case, the “files” folder where the bootloader was moved earlier is designated.
  • httpd=1: This enables the HTTP server function, which is used during the PXE boot process.

4. Starting the Server

Once the configuration is complete, follow these steps to start Tiny PXE Server:

  • Double-click on “pxesrv.exe” located in the Tiny PXE Server folder.
  • If a Windows Firewall warning appears, click “Allow access” (you can manually add this exception later).
  • When the program launches, click the “Online” button to start the server.


5. Start the Server and Test PXE Boot

  1. Starting the Server

Once the configuration is complete, the next step is to start Tiny PXE Server and verify that it’s working. Follow these steps:

Double-click on “pxesrv.exe” in the Tiny PXE Server folder. This will start the server program.

If a Windows Firewall warning appears, click “Allow access.” You can change this setting later if needed, and you can manually add the firewall exception later as well. Refer to the following screenshot for instructions on how to configure the firewall settings.

2. Bring the Server Online

Once the program has started successfully, click the “Online” button to bring the server online. This will prepare the server to accept PXE boot requests.

3. Configure Network Boot

Next, connect the PC where you want to install the OS to a LAN cable, ensuring it is on the same network. At this point, you need to check the PC’s BIOS settings and prioritize network boot.

As an example of BIOS configuration, follow these steps to change the network boot priority:

Turn on the PC and press the designated key (e.g., F2, Del, Esc, etc.) during startup to enter the BIOS settings screen.

Select the “Boot” tab and move the network boot option to the top of the list.

Save the settings and restart the PC.

Now, even without a CD or USB drive, you will be able to install the OS over the network from the PXE server within the same LAN.

4. Installing Supported OS

Using Tiny PXE Server, you can install the following operating systems via network boot:

  • Windows: You can install Windows over the network instead of using a traditional Windows installation disc.
  • FreeDOS: It also supports installation of DOS-based systems.
  • Linux: It supports over 30 different Linux distributions, all of which can be installed via the network.
Please share if you like it!
TOC