Installing Linux via PXE using Windows Deployment Services (WDS)


Tux hearts Windows

A couple of our servers, and even more laptops, are coming with no optical drives installed. This can be a problem when it comes to installing an operating system. I use the excellent Windows Deployment Services role on Windows Server (2000-20012 R2) to accomplish this. It works very well in deploying Windows Server and Windows 7 over the network via a pre-execution environment (PXE) and can even deploy Windows XP images if the need arises (see my “how to” article here). The one limitation it has is that you cannot install Linux distros. This is a problem because you are only allowed one PXE server on the local area network (LAN), so you would have to choose either a Linux PXE server or a Windows one.

Fortunately, I found a solution that lets both work together to give you every kind of boot solution you could dream of 🙂

PXELinux

PXELINUX is a SYSLINUX derivative, for booting Linux from a network server using a network ROM conforming to the Intel PXE (Pre-Execution Environment) specification… SysLinix Wiki

PXELinux can be set up to preceed the usual WDS boot menu you get after hitting the F12 key. It launches it’s own menu that will allow you to boot to your existing WDS set up, the local hard disk or any Linux tool/distro you desire. If you have used tools like The Ultimate Boot CD, Live Linux CD (e.g. Knoppix) s or Anti-Virus boot CDs it can be an exciting thought to get these all running from your WDS server.

I found the following tutorials really useful although they seem to go a bit over the top on what needs to be done so I will soon post a walkthrough of what I did here. For now check out these guides

Here’s my menu so far

PXELinux Boot Screen
My customised PXELinux boot menu
Advertisements

22 thoughts on “Installing Linux via PXE using Windows Deployment Services (WDS)

  1. Hi I’m doing a project for Erasmus and I very much agree Sean, is very hard to find some info on this subject.
    But could I also implement this solution when the client pc have to be able to dual boot, Windows 7 and Ubuntu?

    1. Not 100% what you mean but I think it is possible.
      Do you want to give users a start-up menu to choose to boot into Ubuntu or Windows or do you just need it to co-exist with an existing dual boot PC.
      In either case it shouldn’t be a problem

      1. Yes first case, i want to give the user a start-up menu to choose between the two. And i need to use WDS, and install existing image of ubuntu and windows 7 on the clients.

        I’m still a little bit new to this subject, so sorry for my unknowing.

    2. What you need to do is this
      INstall Windows on a hard disk
      Insatll Ubuntu over the top of windows
      This will create the necessary dual boot set-up and ubuntu site has more info on how this works
      You can then use Clonezilla (from the PXE boot menu) to capture the disk image and clone on to other PCs. Clonezilla will keep the correct boot record.
      Then, for a normal boot, just let the PXE menu timeout and it will continue on to the normal hard disk boot, which should then give you the OS Chooser.

      This is all from the top of my head so you will need to test it out.

  2. Hi,
    i am using WDS and PXELinux for windows and Linux OS installation. i am able to start the OS installation. i would like to know, can i track the progress of OS installation? means how can i get the status whether OS installation was successfully happen or not.

    1. It’s not a native part of WDS to have any kind of monitoring.
      If you are using multicast, you should be able to see the progress of that from the WDS Server console.

      You could implement Microsoft’s free MDT solution on top of WDS. This has monitioring built in to it.

      For something more basic, you could put a startup script into your base image that will write to a file somewhere on your network when it first runs

  3. What should I do when I see the customised PXELinux boot menu but no option is working? I can’t boot from local disk and also ‘Windows Deployment Services’ menu option is not working. When I boot without PXE the system is loading properly.

  4. My PXE is unable to locate the cfg file. It reads pxelinux.com from my server but I’m unsure where the break is. I Followed everything to the T.

  5. Hi,

    Many thanks for posting this guide. This works perfectly for the servers that I’m implementing when these are placed in BIOS (legacy) mode, but I was hoping to have UEFI enabled. Have you had any luck in configuring this for UEFI?

What do you think?

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s