How to Install Proxmox Virtual Environment on a Dedicated Server

This tutorial is going to show you how to install Proxmox VE on a dedicated server. Proxmox VE (Virtual Environment) is an open-source virtual platform based on Debian. It allows you to easily create virtual machines and containers in a graphical web-based interface.

Proxmox Features

  • web-based administration interface.
  • Full virtualization (KVM)
  • Supports containers
  • live migration: move running VM from one physical host to another without downtime.
  • pre-installed applications. Up and running within a few seconds.
  • Proxmox uses OVMF (Open Virtual Machine Firmware), which is a port of Intel’s open-source TianoCore UEFI implementation, to enable UEFI support for Virtual Machines.

Prerequisites

  • You need a physical server or dedicated server to install Proxmox. It’s not meant to be installed inside a VM.
  • You also need a clean hard disk, because all partitions and data on the hard disk will be removed by Proxmox during installation.

Step 1: Download Proxmox VE ISO Image

Go to the Proxmox download page, and download the Proxmox VE 6.2 ISO installer. The latest stable version is 6.2, which is based on Debian 10 buster.

proxmox download

Once downloaded, you can create a bootable USB stick using tools like Etcher or Rufus. If your dedicated server has a remote web-based management interface like IPMI, then simply log in and insert the ISO file to the virtual drive.

Step 2: Lauch the Proxmox VE Installer

Reboot your server and use the BIOS/UEFI interface to boot it from the Proxmox ISO. When the Proxmox ISO installer shows up, press Enter to install it.

proxmox install

Then agree to the Proxmox license agreement.

proxmox ve installer

Next, choose the target hard disk. The following screenshot shows a VirtualBox hard disk, which is for teaching purposes only. You will need to select a big hard disk in production environment. Note that all partitions and data on the hard disk will be removed.

proxmox ve install target harddisk

Then select your country, time zone, and keyboard layout.

proxmox iso location country

Create a password and enter your email address.

Next, configure network settings.

proxmox network configuration

After that, Proxmox will give you a summary to review. If everything is ok, click the Install button.

proxmox install summary

Once the installation is complete, reboot your server.

Step 3: The Web-Based Admin Interface

The web-based admin interface is available at https://server-ip-address:8006. Because it’s using a self-signed TLS certificate, you need to add security exception in your web browser.

proxmox web interface

The default username is root. The password is the one you set when installing Proxmox. Note: You can also use this username and password for SSH login.

proxmox ve login

Proxmox might tell you that you don’t have a valid subscription. If you don’t need a paid subscription, simply ignore this message.

proxmox subscription

Step 4: Create Your First VM (Virtual Machine)

First, you need to upload ISO image files to Proxmox by going to Datacenter -> pve -> local(pve) -> Content -> Upload.

proxmox upload ISO image

Then select an ISO image file from your local hard drive.

proxmox create virtual machine

Once the ISO image file is uploaded, click the Create VM button on the upper-right corner.

proxmox create vm

A setup wizard will appear. On the General tab, give your VM a name and click Next.

proxmox vm setup wizard

On the OS tab, select your ISO image file.

proxmox vm ISO image

On the System tab, simply accept the default values and click Next.

proxmox vm graphics card

On the Hard Disk tab, you can change the VM disk size.

proxmox vm disk size

On the CPU tab, enter the number of CPU cores you want the VM to have access to. Change the CPU type to host for maximal performance.

proxmox vm cpu type

On the Memory tab, choose the RAM size for your VM.

proxmox vm RAM size

On the Network tab, simply accept the default values.

proxmox networking settings

Then confirm your VM configurations and click the Finish button.

proxmox confirm vm settings

Once the VM is created, it will appear on the left sidebar. Select it and click the Start button to start the VM. Then click the Console tab. You will be able to install an OS to the VM.

proxmox start vm

Once the installation is complete, you need to remove the ISO image from the virtual optical drive. Select the Hardware tab and the CD/DVD drive. Click the Edit button.

proxmox vm remove virtual optical drive

Select do not use any media and click Ok. Now you can reboot your VM.

do not use any media

I also recommend going to the Options tab and enabling start at boot, which will start the VM when the Proxmox host starts up.

vm start at boot

How to Enable NAT Networking Mode

The default bridge networking mode makes VMs request IP addresses from the Proxmox host’s gateway. In other words, VMs and the Proxmox host will be in the same network. If you don’t have control over this network, then a VM might not be able to obtain an IP address from the gateway. You can enable NAT networking mode, so Proxmox will create a separate network for the VMs, which use the Proxmox host as the gateway.

SSH into the Proxmox host, and edit the /etc/network/interfaces file.

sudo nano /etc/network/interfaces

Proxmox has a default bridge network interface vmbr0.

auto lo
iface lo inet loopback

iface eno1 inet manual

auto vmbr0
iface vmbr0 inet static
        address 10.10.22.215
        netmask 255.255.255.0
        gateway 10.10.22.1
        bridge_ports eno1
        bridge_stp off
        bridge_fd 0

Add the following lines at the end of this file.

auto vmbr1
iface vmbr1 inet static
        address  10.10.10.1
        netmask  255.255.255.0
        bridge_ports none
        bridge_stp off
        bridge_fd 0

        post-up echo 1 > /proc/sys/net/ipv4/ip_forward
        post-up   iptables -t nat -A POSTROUTING -s '10.10.10.0/24' -o vmbr0 -j MASQUERADE
        post-down iptables -t nat -D POSTROUTING -s '10.10.10.0/24' -o vmbr0 -j MASQUERADE

Save and close the file. Then bring up the new interface.

sudo ifup vmbr1

When you create a new VM, you need to select the vmbr1 interface on the Network tab.

proxmox nat bridge

And when you install an operating system in the VM, you need to manually configure networking. For example:

  • IP address: 10.10.10.100
  • Gateway: 10.10.10.1
  • DNS: 8.8.8.8, or 1.1.1.1

Note that if you change the settings in /etc/network/interface file, you might also need to restart the VMs in order to use the new network configuration. Also, if you run a VPN client on the Proxmox host, it should run in split-tunning mode. A full-tunnel VPN on the Proxmox host can block VMs from accessing the Internet when the NAT networking mode is turned on.

How to Increase Virtual Disk Size

First, select your VM and go to the hardware tab to resize disk.

proxmox resize disk

Choose the amount of the disk size you want to increase.

proxmox size increament

Save the setting. Now the virtual disk is enlarged. We need to enlarge the partition to use all of the remaining space. You will need to do this from a live Linux system because you can’t enlarge a root partition when it’s mounted.

Go to the options tab and set the VM to boot from CD-ROM first. (Make sure the virtual CD-ROM has an ISO image.)

proxmox boot from cd-rom

Then reboot the VM into the live Linux system. Next, go to the Console tab and wait for the live system to boot.

Launch Gparted from the live system and enlarge the root partition of the VM.

gparted resize disk partition

After that, go to the options tab and change the boot order back. Finally, reboot your VM.

How to Reduce Virtual Disk Size

Note: Shrinking a disk in Proxmox can corrupt your disk partition table. I highly recommend taking a snapshot of your VM before shrinking its disk size. If anything goes wrong, you can easily restore to the original state.

First, you need to boot your VM from CD-ROM like the previous section and use Gparted to shrink the file system to your desired size.

Then you need to log into the main Proxmox host via SSH and use the lvresize command to reduce the VM disk to the same size.

lvresize --size -20G /dev/mapper/pve-vm--100--disk--0

The above command will reduce 20G for the disk /dev/mapper/pv-vm--100--disk--0. You can use the following command to find the disk name for your VM.

parted -l

Note that the Proxmox web interface will still show the original size but actually the disk size is reduced and you can use the free space for new VMs. You can use the following command to get the real size of the disk.

lvdisplay /dev/pve/vm-100-disk-0

If your VM can’t boot after shrinking the disk, you can roll back to the snapshot. In my case, it’s because my GPT table was corrupt.

the backup GPT table is corrupt

Once I clicked the rollback button in Proxmox, the VM can boot again.

Click to rate this post!
[Total: 0 Average: 0]

Leave a Reply