Proxmox VE: An Open Source Solution for Virtualization

Table of Contents

Virtualization on servers can be a hard concept to get into. You sometimes need to feel around in the dark so to speak. Today we will be bring you Proxmox VE (virtual environment) . Proxmox VE, written in Perl with an initial release going back to 2008, ships as a Debian distribution. This makes it effortless to get up and running on a bare metal machine. Today we’ll be pulling out our flashlights and lighting the way to virtualization. Proxmox brings a complete open source hypervisor to your web browser. All thanks to its web based user interface. Proxmox has a few system requirements such as 4 GB of RAM for starters. You can follow along using your own home server, or use Virt-manager. The later option works well to learn the installation process. You can even have the guest machine show up in the browser of the host machine! Meaning you can make a nested virtual machine if you have Virt-manager set up for it.

We’ll start by showing you where to get the distribution. We will then create a bootable USB drive and install it to a physical server. Next we will go over how to configure it during installation to assure you have a working server after. Then we will show you how to get your ISO images uploaded to your Proxmox box. Finally, we will go over how to install an image using the GUI. Now let’s get started with virtualization with Proxmox!

Distribution

First thing to do is locate Proxmox VE for download. We should go straight to the official site to make sure we get the latest and greatest they have to offer. The download page is here. You will have a choice of all their maintained versions to download as an ISO or use a torrent. “A torrent you say?”, why yes we mean a torrent. Torrents themselves are not bad even if that is how lots of “illegal” media gets distributed. So let’s learn to use a torrent client and get Proxmox VE.

Arch

				
					sudo pacman -S transmission-cli
				
			

Debian/Ubuntu

				
					sudo apt install transmission-cli
				
			

RHEL/Fedora

				
					sudo dnf install transmission-cli
				
			
install-transmission
transmission-cli install on pacman

Now make sure to download the torrent file, so you can get your copy of Proxmox VE. The file should look something like this proxmox-ve_7.2-1.torrent. The version will very much change over time. Make sure you are using the up-to-date version at whatever time you read this.

trans-cli
Download an ISO file with transmission-cli
Remember when you’re done downloading to contribute back! Torrents are peer-to-peer so share! Let your torrent client seed to others that are looking to download Proxmox VE as well. A good rule to go by is to seed for as long as it took you to download the ISO. Do not worry, your ISP will see your seeding for good not evil. No need to slow things down with a VPN.

Image ISO

The next process to get familiar with is creating installation media. We will go over the one imaging technique that works almost every time. You only need to get your paths right and use the right permissions. We do want to issue a warning. The following commands can write to your own disk or partition if you write something wrong. You are welcome to copy and past then edit a few pieces of key information. Now we need to be in the file location that you downloaded the ISO to. Most likely the location is your Downloads directory. First you need to check your block devices to see what drive to write to.
				
					lsblk
				
			
We are going to target sdb as it is the USB that we are using to image our ISO to. Now we can go ahead and start the process.
				
					sudo dd if=proxmox-ve_7.2-1.iso of=/dev/sdb bs=64K conv=noerror,sync status=progress
				
			

Here you can see that we need to use sudo privileges to use this command. Next you will see dd followed by if, which is the location path to our ISO installer that will get imaged on the USB. Next we will see of, which is the location path to write to. So again, make sure this is a drive you don’t mind nuking all the data. Followed by bs, which is the byte size. This you could change to 8M for instance, to run a little faster. Then comes conv and sync, which refers to errors. Following that is status=progress, this will show you a status printout in the terminal. Now to get all the information about what else the dd command is good for, go to the Arch Wiki here. They have great explanations for the dd command.

Installation

Now we can go ahead and insert the USB we created into our home server. You can use any old desktop tower you have sitting around with at least a 4 GB RAM. The more RAM the better. 16 GB or more means you can give a lot more to VMs so they have space to run. Whereas 4 GB is only enough to run Proxmox and one VM. More RAM will help you out. CPU will affect the speed but should not be an issue as long as you’re not running something more than 10 years old. Thus, Proxmox is pretty forgiving. If you are using Virt-manger to run it, you will notice you can actually talk to it via your browser with no extra setup. Make sure you give it all the same considerations on specs.

You will want to know how to boot into this key on the machine you are installing this on. On my server, I have it set in the bios to boot USB keys first as this will come in handy for future installations. Make sure to look up your server model and learn how to boot into BIOS. Make this change or set/find the key bind to hit during boot that gives you an option to boot into a USB. Now we select the USB to boot. This should take you to the install Proxmox VE start screen.

Configuration

We are going to have to input some information, much like any other installation. Information such as username, hostname, domain and even your email. We will walk you through this to help make sure you don’t miss anything. First up we will start on the installation.
con1
Proxmox start install screen
Next we will need to pick a target disk. If there are no others we will choose what is available.
con2
Proxmox installer to disk
We will then have to choose our locales. This will be your country, time zone and keyboard layout.
con3
Proxmox installer pick locales
Following this, we will get prompted for our password and email address. You will want to use a stronger password as it will not let you use a super short one.
con4
Proxmox installer Picking a password
Next we get prompted for the network device. You should use the default unless you have a custom configuration on the machine. Next you will want to add a domain name. You can add a real domain if your server has one. We are going to use linux.linux, but you can use any two words with a dot between them. If it does not detect your IP setup you can add it here.
con5
Proxmox installer add your domain
Last thing to do is check on the configuration, making sure not to make any mistakes. Then we will click the installation button. This will set up your new Proxmox box and boot right into it.
con6
Proxmox installer summary
Once booted you’ll get greeted with a URL to use to log into your Proxmox box. This URL will have a port number on it. It should look something like this:
				
					https://192.168.0.0:8006/
				
			

Your ip address will be different so make sure you look for and use your ip address. You will need this to get to the Proxmox panel along with your root password.

Don’t worry if after you log in and see this message. Proxmox is free to use as long as you accept the license agreement. They are trying to encourage some paying customers. If you like the product you should consider subscribing.

hitoktononsub
proxmox subscription message

ISO Upload

Uploading an ISO is to the Proxmox file system is pretty easy. You don’t have to worry about downloading it to your system. Transferring it to your server, then mounting the media. Why do all that? We are going to grab the download URL for the ISO file. You need the ISO file for this to work. You can hover over the link to see the full URL and make sure it ends with .iso.

Debian-netinstall-download-page
Downloading Debian

We are looking for the net install Debian 11 ISO download, found here. We will need to navigate to our ISO storage in our Proxmox webUI in the browser. Promox‘s WebUI allows us to perform software defined storage and networking. First click on the server we made on the left.

local-storage-dropdown
Proxmox Select Server

Now you will need to go to the local storage.

local-storage
proxmox Local storage

Now we will want to click on ISO images.

iso-images
proxmox ISO files

Then we will click on download from URL.

download-iso
proxmox Download iso from URL
Then we will add the following ISO URL we copied when we were on the Debian download page.
				
					https://cdimage.debian.org/debian-cd/current/amd64/iso-cd/debian-11.3.0-amd64-netinst.iso
				
			
add-link
Add link to download panel
This is where we will add the link twice. This is to make sure that we get the ISO file and name it in a way that we will remember in case we need the ISO again. Then hit download.

Install VM

The first thing we need to do to create a virtual machine is to click on the Create VM button. This will give us a panel where we will need to select some options.
create-vm
Creating VM in Proxmox

Now we will want to name it what it is, Debian server, or whatever operating system you chose during the installation. This ISO will give you all the popular desktops as options and some server options. Now we will want to add the ISO we want to use. Debian in this case.

server-name-vmid
VM ID in Proxmox VE

Next under the os tab we will select the ISO we would like to use.

iso-dropdown-source
Select ISO source in proxmox
Now we will want to name it what it is, Debian server, or whatever you chose during the installation. This ISO will give you all the popular desktops as options and some server options. Now we will want to add the ISO we want to use. Debian in this case.
drivespace
Virtual drive size in proxmox
Now we will need to adjust the cores and sockets. We are going to leave them at 1 for this server. You may have a need for more cores, so add them as needed.
one-core-socket
Selecting CPU cores in proxmox
We are going to leave it at 2048 MB or 2 GB of RAM. Again you may need more but for our server we do not. Now we will need to turn our attention to the network tab. We will leave this alone unless you have something exotic planned.
networkdefaults
Default vm network in proxmox

Finally, we have the confirmation tab to check and see if we did everything right.

Now we can go to the new VM and open our console to start our VM. You will be able to start the Debian net installer and have a good time with it. Very useful for lite Debian installations.

Bonus

I wanted a darker mode to help me see something other than that white light burning my eyes. I found a script that will help us change to a dark mode profile. Always take precautions when using scripts from the internet. Know that you are using scripts at your own risk. Make sure to always check out the source code. If you have any worries about this script, the source code is available here. So here we go, let’s go from blinding white to dark brilliance. We will run this on the server we installed Proxmox to. Do this as root since that should be the only way to log in at this point if you been following along.

				
					wget https://raw.githubusercontent.com/Weilbyte/PVEDiscordDark/master/PVEDiscordDark.sh && bash PVEDiscordDark.sh install && rm PVEDiscordDark.sh
				
			

Once you go back to the browser you refresh Proxmox. You will see a beautiful dark theme that will not hurt your eyes. Leaving you with the ability to work longer with less strained eyes. As you can see Proxmox is a tool that can help you install VM servers on local machines, in the cloud, or in Virt-manager. You have no excuse to not at least learn about it. You could even run it as a Proxmox backup server for a project. Gives you an edge up if you work in tech. You will always need to learn or test something new, like Pi hole, Plex, Nextcloud, the list goes on forever. Why not add Proxmox VE to your toolbox? Thanks for reading.

Meet the Author

Leave a Reply