A little while back, I made a post detailing a simple backup server that one could deploy using Windows 7 and a piece of software from dhcpserver.de. I ended up using another piece of software called Tiny PXE Server which seemed to fit my need a little better, even if both were using iPXE as the PXE server itself. I had to wait a little while before I could get the appropriate server but in the end, everything worked out like I wanted.
I’ll start by going over the hardware and software required and even provide you some links (affiliated for the hardware ones) to where you can pick up each thing. Keep in mind, these are minimum requirements and you can go way overboard in many ways.
- One computer. At least dual-core 2GHz, 4GB RAM, 500GB HDD, onboard graphics
- One PCIe NIC
- Extra drives (SSD or HDD)
- Windows 7 or 10
- Tiny PXE Server
- Macrium Reflect (to create Rescue CD)
- DBAN (To wipe drives)
Before we start, I just want to stress that this is the concoction I’ve chosen and there are thousands of other software and hardware combinations. Macrium Reflect was a functional choice as I’ve found that it’s done the best job at backing up only the used portion of a given partition and not the entire thing, resulting in a smaller image.
First, of course, you’ll start by assembling the computer and inserting the second NIC plus any drives you’ve purchased separately. Before buying more drives, make sure that you have enough SATA ports and power cables to accommodate the drives you’ll be using. Once you’ve installed Windows onto your machine, download and install Macrium Reflect. Follow this guide for how to create a Rescue ISO with Macrium. The Rescue ISO will basically be comprised of WinPE and Macrium Reflect. We’ll be extracting this ISO later to use something called wimboot, which will be capable of booting the Rescue ISO. Also download DBAN (our disk drive erasing utility). Make sure, also, that on the second NIC, you’ve configured a static IP and subnet mask, without any default gateway. I’ll be using the 192.168.1.1/24 address for the purpose of this tutorial.
With that done, download and extract Tiny PXE Server into your desired folder. I’d put it into the Program Files folder, but that’s just me. Within the pxesrv folder there’s a directory called “files” and within that is called “images”. In that folder, create two folders called “Rescue” and “DBAN” respectively. Now your directory structure looks like the following:
In the Rescue folder, extract the contents of your Macrium Reflect ISO. In the DBAN folder, extract the contents of the DBAN ISO. For Macrium, note the paths bootmgr, boot/bcd, boot/boot.sdi, sources/boot.wim. For DBAN, note the path of DBAN.bzi.
Now comes the fun part. In the pxesrv folder there’s a file called config.ini. We’re going to modify this so that when you run PXEBoot server it will have all the settings preconfigured for you, rather than having to enter them every time. This will allow you to have the server start on boot without any intervention. In this file, the relevant options you want to uncomment (remove the semicolon) and stuff to are the following:
If the last one (next-server) isn’t already there, add it. Now your file should look like this:
After you’ve modified those settings, within files there’s a text file called menu.ipxe. This is the main file that’s loaded over TFTP when a client will boot over the network. This file will contain the primary instructions related to what the client should do when connecting, which files to download and run, etc. You can copy and paste the script from the image below here.
A separate article will be linked soon that will contain a small how-to for your iPXE menu, but for now, I’ll provide an annotated version of my iPXE menu.
Once you’ve entered what you need in the menu, save the file and run the executable. Test the connection by connecting another PC to the one your server is running on via an Ethernet cable or switch. Make sure you connect the client to the secondary NIC of the server as PXEBoot uses DHCP and this will interfere with any existing networks if you don’t know what you’re doing.
In the next post, I’ll tell you how to make shares available to Macrium Reflect and hook up the network.