Earlier this year (2024), I decided to purchase an enterprise-grade server. Although this post isn’t about that experience but rather about how to install something on this server, I can tell you, hands down, that this has been the most interesting purchase I’ve made in years.
In case you’re wondering about the exact specifications of this server - DELL PowerEdge R730xd 16SFF 2x E5-2699v3 2.3GHz =36 Cores 128GB H730 4x 1.2TB SAS 4xRJ45
You can easily find the same seller; they sell these in many different configurations. If you’re going to purchase one, a big learning point for me was that I had gotten the small form factor hard drive chassis. These are significantly more expensive on a per TB basis. My advice would be to get the large form factor chassis. You’d get less drives, but they can easily go up to 20TB for a lot less than you’d buy the 2.5” drives.
Introduction to Proxmox
Before this thing landed at my door, I did a lot of research as to what is typically installed on one of these. My goal was to create a similar environment I’d typically see in manufacturing facilities I’ve gotten used to. I’ve not setup the hardware myself; a 3rd party would generally be contracted to get the VMs and access going - I’d remote in, add industrial automation software and configure what was needed to run the facilities the servers were deployed at.
Based on multiple videos and technical guides, Proxmox was the obvious solution - open source, free, and fully featured when it comes to hardware configurations.
Upon arrival, I got Proxmox on a USB stick, updated the firmware of the server, plugged in the USB and installed Proxmox. The process was incredibly smooth. Having never dealt with something like this, it was quite intimidating; the server is absolutely massive and borderline uncomfortable to handle alone. I got Proxmox running within a few hours of receiving the server and was able to connect to the main console. Below is the current view of what I have running. Note that if you haven’t installed any VMs, you shouldn’t see a page full of them! (Obviously…)
Proxmox ISO Images
Many of us are familiar with ISO as the standard way of mounting DVDs onto a virtual drive. I still remember getting copied DVDs which I’d mount via PowerISO in mid 2000s.
When it comes to Proxmox, you’ll have a dedicated drive that can be spread across your VMs as needed and it will contain the ISO images you’ll need to install various Operating Systems (OS).
Naturally, in this tutorial, we’re going to need the Windows ISO.
You can get the Windows ISO directly from Microsoft; here are the links:
Windows 10 - Download Here
Windows Server - Download Here
We’re also going to need an ISO which contains various drivers for Windows OS. These drivers are critical for any Windows installations - W10, W11, Server, and older versions.
Windows Drivers ISO - Download Here
Proxmox Creating a Windows VM
At this point, we have all the files that we need to create a VM. From any page within Proxmox, click on “Create VM” in the top right corner.
You’ll be prompted to enter various configurations. On the first page, you’ll need to enter an ID and a name for your VM. It’s really up to you how to get organized here, I’ve split up the IDs into OS (Windows, Linux), type (Desktop, Server), and version (W7, W10, W11, etc.). The goal is to have an idea what the system is at a glance as I’m getting more and more VMs onto the server…
Next, you’ll be prompted to enter the location of the ISO image for the OS you’re looking to install. In my case, that’s the Windows10.iso which I’ve downloaded from the Microsoft website. Note that you’ll need to select the right parameters for your OS - Windows / Linux and type. I’ve not tested what would happen if you were to select the wrong one, but just pay attention and you’ll be off to a good start…
On the “System” page, you need to select the SCSI controller which we’ve set to VirtIO SCSI and the Qemu Agent to “checked.” A bit more on this later, but it’s what allows us to connect to the VM.
On the “Disks” page, you’ll be prompted to configure the Bus and the size of the disk. Make sure to select “SCSI” and enter the size of the disk you’d like to allocate to the VM. A word of advice - I’ve had to resize a VM disk and it’s not as simple as one might expect. Choose something you’d be good with for some period of time. For a Windows installation, I’d recommend a bare minimum of 64GB.
I’ve also selected “Write back” as the cache option. Keep in mind that these options will differ if you’re using different disk types - SSD vs HDD. In my case, I have HDD disks.
Depending on your hardware, you can choose how many cores will be allocated to the VM. I’ve allocated 4 for the Windows machine.
Next, we’ll allocate memory (RAM) to the VM. Personally, as I’ve got 128GB of ram and I’m not going to be using all of these at once, I can easily assign 8GB to my VM. Choose accordingly as you may create fairly sluggish VMs that run bloatware from the OS more than your applications:
2GB = 2048
4GB = 4096
8GB = 8192
16GB = 16384
32GB = 32768
On the next page, you’ll be selecting a network bridge for the VM. If you’ve got a fresh installation of Proxmox, you should have a single option. We’ll add a second adapter later in this tutorial; I’ll also explain why I need two of them on my network.
On the confirmation page, we’ll have an opportunity to review all the settings. Note that we’ve unchecked the “Start after created” box as we’re going to add a hard drive before starting the VM. If you forget this option, you’ll need to shut down the VM before proceeding to the next step.
Once you click on “Create,” the VM will take a few minutes (usually less) to populate in your Proxmox tree.
Proxmox Adding Hard Drive w/ Windows Drivers
In the ISO section, we’ve downloaded an image that contains various drivers for the Windows OS. We’re going to mount this ISO onto the VM before we turn it on. These drivers are necessary to detect the HDD and install Windows. You’ll see a few screenshots where they’re being installed in the following sections.
To add the hard drive, select the VM, click on “Hardware,” and click on “Add” as shown below.
Choose CD / DVD (because that’s what ISO images are…)
Here, you need to select the file which we’ve previously downloaded.
Press on “Add.”
Verify your VM which should now have two CD / DVD instance - 1. Windows, 2. Driver ISO. In the screenshot below, you can see that we have a file called virtio-win.iso which contains the drives necessary for the Windows installation.
At this point, we’re ready to start the VM. You can either right click the tree and choose “Start,” or you can click the “Start” button in the top right panel. Either one will launch the VM.
Proxmox - Configuring Windows VM
I’d imagine that many of these steps aren’t unique to Proxmox, but there are some particularities due to the drivers we need to take care of. In this section, we’ll go over the steps to launch the Windows VM we’ve built.
The first steps is to navigate to the “Console.” Here you can “remote” into the VM we’ve launched.
If you’ve gotten here immediately after the previous step, you’ll see the usual bootup sequence you’ll find on any PC. If you’ve waited a bit, you’ll be presented with the Windows installation screen.
We will be installing Windows 10 Pro Edition. The same steps apply if you’re looking to install most other versions. Keep in mind that I’m installing the Pro edition as it gives me remote desktop capability which you don’t have in “Home.”
You can enter a key if you have one, or do so later by selecting “I don’t have a product key.”
As mentioned above, we’re going to install “Windows 10 Pro.”
We’ll be doing a custom install of Windows.
The next step is to install the correct drivers. On the “windows Setup” page click on “Load Driver,” then click on “Browse.”
Here, we’re going to browse to the specific driver for our Windows version. You’ll find it at the following path: vioscsi > w10 > amd64 (Note - find your Windows version in these subfolders).
Install the driver by pressing “Next.”
If everything is working correctly, you should now see the hard drive you’ve allocated earlier. As I had mentioned, I had allocated 64GB which is what we’re seeing on this screen.
Windows will start installing as soon as you press on “Next.”
At this point, we’re going to speed through some of the Windows configurations you can find elsewhere. Choose your language, select the settings when it comes to finding your “PC,” etc. Most of these aren’t critical and are personal preferences.
The important settings you’ll need to configure and remember / write down are the username and password. You’ll be using them to access the Windows instance.
Personally, I decline any marketing, tracking, and Cortana that comes with Windows. At this point, the machine will take a few minutes for final configurations after which you’ll be able to access the desktop of the VM.
Conclusion on Proxmox Windows VM
As we’ve got a ton of information within this post, I’ve decided that we’re going to split the rest of the configurations we need to complete into a second post. If you’re going to be using this as a standalone VM, it should be fairly complete. However, there are a few drivers we need to configure, networks to set up, and open up access to this VM to the network if you plan to remote into it.
My goal for these instances is to run some of the software packages I will be testing out for my industrial automation applications - MES solutions such as Ignition, Unifed Namespace (UNS) Solutions, MQTT Brokers,
You’ll find the next tutorial here: Part 2 Proxmox Windows VM Setup Guide.