Introduction
My goal with this series of blog posts is to document the process of building a home lab server to create my own hands-on IT experience.
In this first post, I’ll cover the hardware I needed to purchase, the operating system I chose to use, and some of the troubleshooting steps I encountered during the installation of the operating system.
Finally, I’ll download some ISO files onto the server for future virtual machines.
Hardware
A home lab can be built using various types of systems, each with its own advantages and disadvantages:
- Laptop – Includes keyboard, display, and mouse.
- Desktop – Often powerful, with hardware upgrade options.
- Server – The most powerful, with large capacity, but often draws significant power and can be noisy.
I wanted a system that would be powerful enough to get started, with the potential to upgrade components in the future. Dell, HP, and Lenovo make desktop systems designed for office use, offering upgradeability and sufficient power for starting out.
I found a Dell Optiplex with 16 GB of RAM, 500 GB SSD storage, and an 8th-generation i7 processor for around $200. The system came with a keyboard and mouse, but I needed to purchase a monitor for $70. This setup is sufficient to run a couple of virtual machines and containers, which will be ideal for the labs I have planned.
Techno Tim has a great video on YouTube outlining the different hardware options you can use to start a home lab. He also has many other videos about home lab that are well worth checking out.
Type I Hypervisors
With the Optiplex plugged in and the peripherals set up, I needed an operating system to install. I wanted the ability to spin up machines with different Linux distributions and build and tear down Active Directory networks with Windows machines. To achieve this, I needed a Type 1 hypervisor, a lightweight operating system that allows for the creation of virtual machines.
The most prominent Type 1 hypervisors used in the enterprise are Microsoft Hyper-V and VMware ESXi. While these virtualization platforms are powerful, they are very expensive. There is a free and open-source alternative called Proxmox Virtual Environment (VE), which is a popular choice for home lab servers.
Proxmox is built on Linux, ensuring solid support and stability. This is the hypervisor I will be installing on my Dell computer. It will allow me to create virtual machines, containers, and networks for them to communicate.
Christian Lempa’s YouTube channel is a great resource for all things home lab. This video is a good overview of the different options available for server operating systems and the advantages and disadvantages of each.
Installing Proxmox
The installation process for Proxmox is similar to that of any other operating system:
- Download the Proxmox ISO file from the official website.
- Use a tool like Etcher or Rufus to create a USB boot drive with the ISO file.
- Plug the drive into the computer you want to install the OS on and enter the boot menu using the appropriate key (F12 in my case).
- Boot from the drive with the Proxmox installer and follow the prompts until the installation is complete.
Since my system was connected to Ethernet before the installation, the networking information was automatically filled in. I’m not entirely familiar with how to configure this section manually, but it’s not an issue for now. The rest of the installation is simple and straightforward, taking only a few minutes.
Once the installation is complete, the screen will display a URL that provides access to the server from another machine. Simply type the URL into a web browser, and you will be prompted to enter the login credentials created earlier.
For more detailed instructions on how to install Proxmox, visit the official website for documentation. One of the best resources available for learning Proxmox as a whole is the Proxmox playlist on the Learn Linux TV YouTube channel. This series explains how to use Proxmox in great detail and it a must for anyone learning to use this technology.
Troubleshooting
Incompatible Ports
The Optiplex model that I purchased came with two Display Ports. Since I decided to buy the cheapest monitor which did not include Display Port, I found myself purchasing an adapter cable for $20.
Failed Proxmox Install
Over and over again the install would fail after completing all the prompts. It would fail right at the start, make it to 50% and fail. So many different behaviors were occurring each time I attempted the install.
Ventoy
I was installing Proxmox using a Ventoy drive (article on how to create one). I created another installation media without Ventoy but the issues still occurred.
BIOS
The next steps involved configuring the BIOS. Proxmox, along with most other Linux distributions, doesn’t utilize the Secure Boot feature, and it often conflicts with these operating systems. I disabled Secure Boot and tried again, but similar issues persisted.
I also attempted using a legacy BIOS setup, as that was recommended, but this didn’t resolve the issue. There are also disadvantages to using a non-UEFI BIOS, so I reverted that change. While in the BIOS setup, I noticed firmware and service information from Dell, which made me think about how the included Windows installation was originally set up on the system.
Windows 10
The first thing I did after getting my system plugged in was start the Proxmox installation process. I suspected that the lack of an OS and a Dell-specific provisioning for the installation might be causing an issue, so I ran a recovery process through the Dell portal, which is defaulted on the computer’s motherboard. After several hours of scanning and installing, the result was a computer with an activated Windows 10 operating system.
I then tried the previous steps again, but with no success or noticeable difference. I also lost the Windows 10 OS during the process of failing and retrying the Proxmox installation. Throughout this whole process, I was searching for errors and attempting different solutions. I was starting to think about returning the system and looking for something a bit less “locked down.”
Older Proxmox Version
Another troubleshooting step I tried was to install the previous version of Proxmox and update it after. The conflicts with my hardware and the current installer seemed convincing enough so I gave it a try with no success.
Debian
The final option I considered was installing Debian Linux on the computer, then going through the process of installing Proxmox on top of it and removing Debian afterward. This wasn’t something I wanted to do, so it was fortunate that the Debian installation failed multiple times! The silver lining was that the Debian installer clearly indicated that the problem was with the physical drive.
I swapped out the SSD in the system with a slightly lower-capacity SSD I had lying around, and this time, the installation went smoothly and quickly. I was so excited to have figured it out that I immediately forgot the login credentials I had created, and had to go through the process again—luckily, it only took about ten minutes.
I am unsure what the problem was with the drive that came with my system. That is the disadvantage of using refurbished hardware, you never really know how much life is left in hardware. I will attempt some diagnostics on that drive to see what the issue is.
Access and ISO Downloads
With Proxmox finally installed on the system, I accessed the web interface and logged in. I had a ton of ideas for things to build and work on, so I wanted to download a variety of ISO files. The process is really simple and can be done either from system to system, or by downloading the file directly from a URL to the server, which was awesome.
Next Steps
The first and most important thing to focus on is getting familiar with the web interface and creating virtual machines and containers. Understanding what’s available and where things are in the portal will make it much easier to come up with ideas and get things done.
I’m excited to continue working on this lab and dive deeper into the details of different technologies. The coolest part about this process is realizing how much I don’t know, which I equally love and hate. Thanks for following along.
The next projects I’m considering are:
- Ticketing system: Track the next steps of my home lab and IT learning.
- Virtual Machines: Create VMs using Linux distros and recent Windows versions for testing.
- Windows Active Directory: Learn to virtually build a domain controller and connect virtual and physical workstations.
- Media Server: Share family photos and videos.
Leave a Reply