If you"re thinking about self-hosting and haven"t seen our write-up on the pros and cons, you should take a minute to check that out. The first article in the series explains how to install and setup a Proxmox virtual environment. In this article, we"ll show you how to install both a Linux and Windows virtual machine onto your hypervisor so that you can start your self-hosted journey.
Placing an ISO on the Proxmox Server
There are two options for getting an ISO onto the Proxmox server. You can either download it to your local system and then upload it to Proxmox, or, if you know the full URL of the file, you can directly input it into the Proxmox interface. I"ll show both options here.
Download the ISO (Option 1)
The first thing you have to do is download the ISO of whatever flavor of Linux you want to install on Proxmox. For our guide, we"ll be using Rocky Linux 9, but you can use Ubuntu, RHEL, Kali, or whatever flavor you want.
- Browse to https://rockylinux.org/download
- Identify the architecture you want; in most cases, it"ll be AMD/Intel (x86_64), and that"s the default
- Identify the version you want - Rocky Linux 8 or Rocky Linux 9. In our case, we"re picking Rocky Linux 9
- Click on the image you want; I recommend a minimal version and install components you need manually after the fact, so selected v9.4, Minimal ISO
Upload the ISO to Proxmox (Option 1 continued)
- Click Datacenter->proxmox1->local (proxmox1)
- Click ISO Images
- Click Upload
- Click Select in the Upload box
- Select the ISO image from your filesystem
- Click Open
- Click Upload
Download the ISO directly to Proxmox (Option 2)
If you know the URL of the ISO, and don"t want the intermediate step of copying the file to your Proxmox server, you can directly enter the URL into Proxmox and let the hypervisor download it for you. This has the added advantage that, if you know the checksum, it can confirm the file was not corrupted during download.
- Click Datacenter->proxmox1->local (proxmox1)
- Click ISO Images
- Click Download from URL
- Type (or paste) the full download path into the URL input box
- Click Query URL to tell Proxmox to identify the filename from the path
- (optional) If using checksums, enter the data from the site you"re downloading the ISO into the Checksum box and select the Hash algorithm it"s using.
- Click Download
Install Rocky Linux on Proxmox
Create the Linux Virtual Machine framework in Proxmox
The next group of steps is to configure Proxmox to accept the installation of a new VM. In a nutshell, you"re telling Proxmox what hardware your new virtual machine will have, determining the size of disks, how much RAM will be available, how many processors will be running, along with what type of network and graphics card will be available. This isn"t installing the actual operating system yet, you"re just configuring the hardware parameters.
- Click on Create VM
- Type in a unique number for VM ID; e.g.:separate VMs by OS by using 100-199 for Linux and 200-299 for Windows
- Give the VM a name to identify it by
- (optional) Click "Start at boot" if you want the VM to start when Proxmox starts
- Click Next to go to the OS tab
- Select the name of the Linux ISO you want to use
- Select Linux as the Guest OS and 6.x - 2.6 Kernel as the Version
- Click Next to go to the System tab
- Leave this as default; don"t make the mistake of selecting none for the Graphic card because then you won"t be able to even connect to the console
- Click Next to go the Disks tab
- Ensure local-lvm is selected for Storage; we"ll show you how to use external storage to host your VMs in the future
- Type in how large you want your system disk to be; we"ll use 32 Gigabytes
- Click Next to go to the CPU tab
- Determine how many sockets and cores you want to provide the VM; generally sockets should be the number of physical sockets your Proxmox server has and Cores can be set up to the maximum number of cores you have available on the system, but overprovisioning is allowed. For the guide, we"ll give the system two Cores.
- Click Next to go to the Memory tab
- Select how much memory the virtual machine is allowed to use; you can overprovision between all virtual machines and use ballooning, but these are advanced features we"ll talk about in a future article; for now, we"ll give the VM 2048 megabytes of RAM
- Click Next to go to the Network tab
- Leave the Network section default and click Next to go to the Confirm tab
- Click Finish to create the VM
- You now have a Virtual Machine configured and ready to build from the ISO
Install Rocky Linux 9 on Proxmox
Now that we have the virtual hardware configured for our Linux VM, it"s time to boot off of the ISO we placed on Proxmox and install Rocky Linux.
- Select Datacenter->proxmox1->103(RockyLinux2); replace this with your VM name if you used a different one from what we described above
- Click Console
- Click on Start Now; this will boot the VM with the ISO you selected during setup
- Press the letter "I" to "Install Rocky Linux 9.4"
- Select what language and keyboard you want to use; we selected English
- Click Continue
- Click on "Root Password" (06)
- Type in a password you want to use for the root (admin) user
- Re-type the password to ensure it wasn"t typed incorrectly the first time
- Click Done
- Click on User Creation
- Type in your name in the Full Name section; this will automatically create a user name of first initial followed by last name
- (optional) Change the user name if you want
- Click the checkboxes next to both "Make this user administrator" and "Require a password to use this account;" this allows you to limit access to the previously configured root account by allowing your custom user to have admin rights on the Linux server
- Type in a password you want to use for the user
- Re-type the password to ensure it wasn"t typed correctly the first time
- Click Done
- Click on Installation Destination
- Verify that the drive information is correct; you should be able to leave this alone
- Click Done
- Click on Begin Installation
- When installation is complete, you can click Reboot System
- The ISO will automatically dismount, and after a few seconds, you"ll be presented with the login page to your new Linux VM!
Install the QEMU agent
While your OS is running on Proxmox just fine, if you want to be able to see system information, such as the virtual machine"s IP address, you"ll need to install the QEMU agent on the Linux host. The process is easy.
- Select Datacenter->proxmox1->103(RockyLinux2); replace this with your VM name if you used a different one from what we described above
- Click Console
- Type your username in the console
- Type your password in the console
- Type sudo yum install qemu-guest-agent; note that if you use a different version of Linux, the installation command may use rpm, apt get, or dnf.
- Type in your password again; this is required by sudo, the command that escalates your normal user permissions into admin permissions
- Type "y" to proceed
- Type "y" to proceed again
- You"ll be presented with the message, "Complete!" so you know the installation was successful
- Select Datacenter->proxmox1->103(RockyLinux2); replace this with your VM name if you used a different one from what we described above
- Click Options
- Double-click on QEMU Guest Agent; it"s currently set to Default (Disabled)
- Click the checkbox next to Use QEMU Guest Agent
- Click OK
- Select Datacenter->proxmox1->103(RockyLinux2); replace this with your VM name if you used a different one from what we described above
- Right click on 103(RockyLinux2) and select Shutdown; keep in mind that for some reason, if you reboot from the operating system command line, QEMU will not properly start
- Click Yes
- After the system shuts down, click "Start Now"
- Click "Summary" and you"ll now see data such as Memory Usage, system IP addresses, and more
Install Windows on Proxmox
The steps to install Windows on Proxmox are the same as for Linux, with only a few differences, including the need to download VirtIO drivers into the OS.
Download VirtIO drivers
The easiest way to do this is to import them directly into Proxmox. See "Download the ISO directly to Proxmox (Option 2)."
We will start by finding the most recent version.
- In a web browser, go to this FedoraPeople.org link: https://fedorapeople.org/groups/virt/virtio-win/direct-downloads/archive-virtio/?C=M;O=D
- Click on the most recent folder, which is virtio-win-0.1.248-1 as of the time of this writing
- Right click on the most recent ISO (virtio-win-0.1.248.iso in this case) and select "copy link"
- See "Download the ISO directly to Proxmox (Option 2)" and paste the copied URL into the URL field
- Click Download
Install Windows on Proxmox
As noted earlier, the steps to install Windows are similar to that of installing Linux, so I"m only going to highlight some of the key points below.
- Follow the steps in "Download the ISO (Option 1)" above, but download the Windows ISO from Microsoft
- Follow the steps in "Upload the ISO to Proxmox (Option 1 continued)" above
- Follow the steps in "Create the Linux Virtual Machine framework in Proxmox" above, but keep the following keys in mind:
- In the OS tab, be sure to select "Microsoft Windows" in the Guest OS type and select the version you"re installing
- In the OS tab, click the checkbox next to "Add addition drive for VirtIO drivers," and select the ISO image you uploaded to the system
- In the System tab, select local-lvm for EFI storage
- In the System tab, uncheck "Add TPM" unless you need it (e.g.: Windows 10/11 as opposed to Windows server); with this enabled, you will be unable to create snapshots in Proxmox.
- Start the VM to boot off of the ISO and follow the standard Windows installation steps; If installing Windows Server, I"d recommend installing the GUI if you"re a beginner so that it"s available on console
- If you need to send special commands to the console, such as ctrl-alt-delete for a server or a domain-joined system, you do it by clicking the arrow between summary and the console, clicking the "A" that represents the keyboard, and then clicking the bottom selection of "Send Ctrl-Alt-Del"
- If you"re planning on installing Windows 11, note that by default it requires a network connection, but you won"t have one until you can install the VirtIO tools in the process listed below. To get around this, on the page asking for networking, press SHIFT-F10 on the keyboard, open a command prompt, and type the following command: OOBE\BYPASSNRO
- This will cause the system to reboot. When it comes to the network setup page again, there will be a link that allows you to bypass the configuration and continue the installation
Install VirtIO Drivers on Windows
As long as you followed the previous steps, then instalilng the drivers will be easy.
- Select the drive in Windows that contains the virtio-win drivers you mounted in step 5 above.
- Right click on virtio-win-guest-tools
- Select Run As Administrator
- Click the checkbox next to "I agree to the licensing terms and conditions"
- Click Install
- Click Next
- Click the checkbox next to "I accept the terms in the License Agreement"
- Click Next
- Accept all of the default features and click Next
- Click Install
- Once done, you"ll see devices being added to the server - network connectivity, USB, etc.
- Click Finish
- Click Close on the "Installation Successfully" screen
- Do steps 12-19 in the section, "Install the QEMU agent"
Conclusion
If you"ve followed all of the steps in this tutorial, you now have both a Linux and a Windows virtual machine running on Proxmox. From here, you can install whatever you want on either system. Perhaps you want to host your own Active Directory domain? Or run your own webserver? Maybe you want to play with Docker on your Linux host and install some tools to run in your home. I"ll continue to dig into the options, but if you have anything specific you"d like to see me cover in a future article, let me know in the comments below.
You can read all of the articles in the series by searching for the "selfhosting-guide" tag.