How to Install Ubuntu Desktop 24.04.1 on Proxmox 8.3.3

How to Install Ubuntu Desktop 24.04.1 on Proxmox 8.3.3
Photo by Kevin Horvat / Unsplash

1. Introduction

Virtual machines have become an essential tool in modern computing environments, offering flexibility, resource efficiency, and enhanced security through isolation. This guide will walk you through the process of installing Ubuntu Desktop 24.04.1 as a guest operating system on Proxmox VE (Virtual Environment 8.3.3), combining the user-friendly Ubuntu desktop experience with Proxmox's powerful virtualization capabilities.

Why This Matters

Installing Ubuntu Desktop on Proxmox allows you to create a fully functional desktop environment within your virtualization infrastructure. This setup is particularly valuable for:

  • Development and testing environments that require a graphical interface
  • Remote desktop workstations that can be accessed from anywhere
  • Isolated environments for software testing and evaluation
  • Learning and educational purposes where system snapshots are beneficial

Time and Resource Requirements

The complete installation process typically takes between 30-45 minutes, depending on your system's performance and network speed. This estimate includes:

  • Initial VM creation (5 minutes)
  • Ubuntu installation (20-25 minutes)
  • Post-installation configuration (10-15 minutes)

Target Audience

This guide is designed for:

  • System administrators familiar with Proxmox basics
  • IT professionals setting up development environments
  • Technical users who want to run Ubuntu Desktop in a virtual environment

Required Experience

While this guide provides detailed instructions, you should have:

  • Basic familiarity with Proxmox VE interface
  • Understanding of basic virtualization concepts
  • Comfort with basic Linux commands and concepts

What You'll Accomplish

By the end of this guide, you will have:

  • A fully functional Ubuntu Desktop 24.04.1 virtual machine running on Proxmox
  • Properly configured VM with optimal settings for desktop use
  • Essential guest tools installed for better integration
  • Basic understanding of VM resource management

What you learn here will serve as a foundation for creating and managing other desktop-oriented virtual machines in your Proxmox environment.


2. Prerequisites

Before beginning the Ubuntu Desktop installation on Proxmox, we need to ensure your environment is properly prepared. Understanding and meeting these requirements will help ensure a smooth installation process.

System Requirements

Your Proxmox host system should meet these minimum specifications for running Ubuntu Desktop 24.04.1 effectively:

For the Proxmox host:

  • CPU: 64-bit processor with hardware virtualization support (Intel VT-x/AMD-V)
  • RAM: At least 4GB available for the Ubuntu VM (plus memory for Proxmox and other VMs)
  • Storage: Minimum 30GB free space for the VM (50GB recommended)
  • Network: Working network connection with sufficient bandwidth for downloading updates

For the Ubuntu Desktop VM itself, plan to allocate:

  • CPU: 2 cores minimum (4 cores recommended for smooth desktop experience)
  • RAM: 4GB minimum (8GB recommended for optimal performance)
  • Storage: 25GB minimum (50GB recommended for comfortable usage)
  • Display: 64MB video memory minimum (128MB recommended)

Preparation Steps

Upload the ISO to Proxmox:

Access your Proxmox web interface

Navigate to your storage location (typically 'local' or 'local-lvm')

Select 'ISO Images'

Click 'Upload' and select your downloaded Ubuntu ISO

Verify the ISO's integrity using SHA256:

Commandline: sha256sum [path]

sha256sum C:\fakepath\ubuntu-24.04.1-desktop-amd64.iso

Compare this with the official checksums from Ubuntu's website to ensure the download is authentic.

https://releases.ubuntu.com/24.04.1/SHA256SUMS

Download Ubuntu Desktop ISO from URL:

wget https://releases.ubuntu.com/24.04.1/ubuntu-24.04.1-desktop-amd64.iso

Network Planning

Consider these networking aspects before beginning:

  • Determine whether you'll use DHCP or static IP addressing
  • Ensure your network has internet access for package updates
  • Decide if you need any special network configurations (VLANs, bridges, etc.)

Resource Allocation Planning

Think through these resource allocation decisions:

  • How much disk space you can dedicate to the VM
  • Whether to use thin provisioning or fixed-size storage
  • Which storage pool to use (local-lvm, ZFS, etc.)
  • Whether to enable features like ballooning and NUMA
  • Back up your Proxmox configuration if this is your first VM
  • Ensure your Proxmox system is up to date
  • Check that you have sufficient backup space if you plan to take VM snapshots
  • Consider whether you need to adjust your Proxmox storage configuration

Important Notes

  • The installation process will require sustained network connectivity
  • Ensure you have administrator access to your Proxmox system
  • Have a plan for managing VM backups
  • Consider whether you need to modify any Proxmox firewall rules

3. Creating the Virtual Machine in Proxmox

Creating a virtual machine for Ubuntu Desktop requires careful consideration of various settings to ensure optimal performance. Let's walk through the process step-by-step, understanding each important configuration choice along the way.

Starting the VM Creation Process

Begin by logging into your Proxmox web interface. In the top-right corner, click the "Create VM" button. This will open the VM creation wizard. We'll configure each tab thoughtfully to ensure the best experience for a desktop environment.

General Tab Settings

On the first tab, configure these essential settings:

Node: Select your Proxmox node if you have multiple nodes.

VM ID: Accept the default or choose a memorable number. The ID must be unique within your Proxmox cluster.

Name: Choose a descriptive name like "ubuntu-desktop-24.04". Using a naming convention that includes the OS and version helps with system organization.

OS Tab Configuration

Select these settings for Ubuntu Desktop:

Guest OS Type: Choose "Linux"
Version: Select "6.x - 2.6 Kernel"
ISO Image: Select your uploaded ubuntu-24.04.1-desktop-amd64.iso

These selections ensure Proxmox applies the correct optimization flags for a Linux guest operating system.

System Tab Settings

Configure these system settings for optimal desktop performance:

Graphics Card: Select "VirtIO-GPU"
Machine: Choose "q35" (this is the modern machine type recommended for desktop VMs)
BIOS: Select "OVMF (UEFI)" for better compatibility
Add EFI Disk: Enable this option
SCSI Controller: VirtIO SCSI
Qemu Agent: Enable this option

The VirtIO-GPU provides better graphics performance than other options, while UEFI boot offers modern features and better compatibility.

Disks Tab Configuration

Configure your virtual disk with these recommended settings:

Bus/Device: SCSI
Storage: Choose your preferred storage pool
Disk Size: Minimum 25GB (50GB recommended)
Format: zfspool (nvme)
Cache: Write back (offers better performance for desktop use)

Other options
Discard (Trim/Unmap)

• What it does: Enables TRIM/UNMAP commands, allowing the OS to inform the storage system about unused space.
• Use case: Useful if your ZFS pool is thin provisioned, as it can free up space when data is deleted.
• Recommendation: ✅ Enable it if you expect a lot of data deletion and rewriting (e.g., ML datasets). Otherwise, it’s not strictly necessary.

IO Thread
• What it does: Assigns a dedicated thread for disk I/O, improving performance on multi-core systems.
• Use case: Helps when using multiple disks and improving performance in high I/O workloads.
• Recommendation: ✅ Enable it since AI/ML workloads can be I/O heavy.

CPU Settings

Configure CPU for desktop workloads:

Sockets: 1 Cores: 2-4 (depending on your host's resources) Type: host

Using the "host" CPU type allows the VM to access all CPU features available on your Proxmox host, improving performance.

For my use case, I am going with the following with an i7 11700k intel CPU and will be using this vm for ML and AI workloads; feel free to copy my config below if you are also using an 11700k.

Configuring the CPU properly ensures optimal performance for your virtual machine. When setting up the CPU in Proxmox, consider the following options:

• Sockets: Set to 1 to avoid unnecessary NUMA complexities.

• Cores: Allocate 6+ cores for AI/ML workloads, depending on available resources.

• Type: Choose host to allow the VM to utilize all CPU features, including AVX512, which improves machine learning performance.

• vCPUs: Match the core count for efficient thread scheduling.

• CPU Limit: Set to 0 (unlimited) to allow full utilization of assigned cores.

• CPU Units: Use the default 1024 to maintain fair resource allocation if running multiple VMs.

• NUMA: Enable (checked). Helps with memory optimization, especially for multi-threaded workloads.

For AI/ML workloads, prioritizing higher core counts and enabling full CPU feature access significantly improves performance. If running multiple VMs, adjust core allocation to balance resources efficiently.

Memory Configuration

Set memory for smooth desktop operation:

Memory (MiB): 4096 minimum (8192 recommended)
Minimum Memory: Leave unchecked for desktop use
Ballooning Device: Enable this option

Ballooning allows dynamic memory allocation, useful when running multiple VMs, though desktop VMs typically need consistent memory allocation.

For my use case, I have gone with the following settings as I have 32GB RAM and a RTX 3090 in my host machine, if you have the same, feel free to use the settings below.

Proper memory allocation ensures smooth performance for AI/ML workloads and prevents bottlenecks. When configuring memory in Proxmox, consider the following:

• Allocated Memory: Set between 16GB - 24GB, leaving some RAM for the Proxmox host. Increase to 28GB if running heavy models. 28GB is just above 26702MiB so thats what I have chosen.

• Ballooning Device: Disable (unchecked). AI/ML workloads require stable, dedicated memory without dynamic adjustments.

Network Tab Settings

Configure network access:

Bridge: Select your network bridge (usually vmbr0)
Model: VirtIO (offers the best performance)
MAC Address: Auto-generated is fine unless you have specific requirements

VirtIO networking provides near-native performance for network operations.

Confirmation

Review your settings before clicking Finish. Remember, while most settings can be changed later, some (like the machine type and UEFI settings) are better set correctly from the start.

Important Notes

  • Keep the VM ID and name handy - you'll need them for future management
  • The VirtIO drivers will be automatically available in Ubuntu 24.04
  • These settings prioritize desktop performance over resource conservation
  • Consider taking a backup or snapshot after initial setup

If you try the next step and your display goes black, you will need to ensure your GPU is being passed through correctly to your VM.

Follow this guide before continuing.

The next steps are [Under Construction]


4. Initial VM Boot and Ubuntu Installation

Now that we've created our virtual machine with optimal settings, we'll walk through the process of booting it for the first time and installing Ubuntu Desktop. This process combines standard Ubuntu installation steps with some special considerations for running in a virtual environment.

First Boot Process

Start your VM from the Proxmox interface by selecting your VM and clicking "Start". Then click "Console" to access the VM's display. You should see the Ubuntu boot menu within a few moments.

When the GRUB boot menu appears, choose:

  • "Try or Install Ubuntu"

Follow the instructions, they are pretty self explanatory

Important VM Considerations:

  • The time zone setting is particularly important for a VM to ensure proper time synchronization with your host system.
  • Choose a strong password, especially if the VM will be accessible over the network
  • The computer name should be unique within your network
  • Consider using a naming convention that identifies this as a VM

Installation Process

During the installation:

  • The system will copy files from the installation media
  • Download and install updates if you're connected to the internet
  • Configure system settings
  • Install bootloader

This process typically takes 15-20 minutes, depending on your system's performance and network speed.

First Boot Preparation

Once the installation completes, you'll be prompted to restart.

  1. Click "Restart Now"
  2. Wait for the shutdown message
  3. The VM may appear to hang with a message about removing installation media

In the Proxmox interface, go to the VM's Hardware tab

Remove the ISO from the CD/DVD drive

Then go back to the VM and press Enter

Click "Reset" in the Proxmox interface

First Login

After the restart:

  1. Wait for the GRUB bootloader and system boot
  2. You'll see the Ubuntu login screen
  3. Log in with the user account you created
  1. Ubuntu will present its initial setup wizard

Enable Ubuntu Pro if you can, Its free for up to 5 machines at the time of writing.


Everything after here is a DRAFT. ignore or use at your own risk

5. System Configuration

After successfully installing Ubuntu Desktop in your Proxmox VM, several important configuration steps will ensure optimal performance and functionality. Let's go through each essential optimization systematically.

Display Configuration

To optimize your display settings for VM use, we'll configure the VirtIO display driver. First, verify that the system recognizes the VirtIO graphics:

lspci | grep VGA

Network Configuration

While DHCP works well for most setups, you might want to configure a static IP address for server-like functionality. To set a static IP:

  1. Click the network icon in the top bar
  2. Select "Settings"
  3. Click on your network connection
  4. Switch to the "IPv4" tab
  5. Change from "Automatic (DHCP)" to "Manual"
  6. Enter your desired IP configuration

Keeping your system updated is crucial for optimal performance and security. Run a full system update:

sudo apt update
sudo apt upgrade -y
sudo apt dist-upgrade -y

After updates complete, restart your system to ensure all changes take effect:

sudo systemctl reboot

6. Post-Installation Optimization

After completing the basic system configuration, we can further optimize your Ubuntu Desktop VM for improved performance, better resource utilization, and enhanced user experience. These optimizations build upon our previous configurations to create a more responsive and efficient virtual desktop environment.

Desktop Environment Optimization

Install preload to improve application startup times:

sudo apt install preload

Preload learns from your usage patterns and anticipates which applications you're likely to start, loading their libraries into memory proactively.

Resource Monitoring Setup

Install performance monitoring tools:

sudo apt install htop iotop nethogs

These tools help you:

  • Monitor CPU and memory usage with htop
  • Track disk I/O with iotop
  • Monitor network usage with nethogs

Understanding resource usage helps you make informed decisions about future optimizations.

Power Management

Since we're running in a VM, we can disable some power management features:

sudo systemctl mask sleep.target suspend.target hibernate.target hybrid-sleep.target

This prevents the VM from trying to sleep or hibernate, which can sometimes cause issues in virtual environments.


Community Resources

Engage with these valuable communities for ongoing support:

  1. Ubuntu Community:
  2. Proxmox Community:
  3. Local Support:
    • Join local Linux User Groups (LUGs)
    • Participate in virtual meetups
    • Contribute to open source projects

This concludes our comprehensive guide to installing Ubuntu Desktop 24.04.1 on Proxmox.