How to Install Pop!_OS 22.04: Complete Guide

How to Install Pop!_OS 22.04: Complete Guide

Tested on: Pop!_OS 22.04 LTS on a System76 Lemur Pro, a custom NVIDIA RTX 3080 build, and a Lenovo ThinkPad X1 Carbon — Last updated: June 2026

Pop!_OS is System76's Ubuntu-based distribution built for developers, engineers, and anyone who values a clean, hardware-optimized Linux desktop. It ships an NVIDIA ISO with proprietary drivers pre-baked, a GNOME-native tiling window manager, and System76's power management stack — none of which require post-install configuration. If you have an NVIDIA GPU or want a Linux system that works from boot without fighting drivers, this is your starting point.

Prerequisites

  • A USB drive of 8 GB or larger (all contents will be erased)
  • A 64-bit x86_64 machine with at least 4 GB RAM and 20 GB storage (50 GB+ SSD recommended)
  • If dual-booting with Windows: free unallocated space on the drive, and Secure Boot disabled in UEFI firmware
  • For NVIDIA users: know your GPU model before downloading — lspci | grep -i vga on Linux, or Device Manager on Windows
  • A stable internet connection for post-install updates

Why Pop!_OS Over Other Distros

Pop!_OS is based on Ubuntu LTS, inheriting its APT package ecosystem, snap infrastructure (though Pop uses Flatpak by default), and long-term support guarantees. What System76 adds on top is substantial:

  • Dedicated NVIDIA ISO: Proprietary drivers ship inside the installer image. No PPA juggling, no post-install ubuntu-drivers autoinstall followed by a reboot prayer.
  • COSMIC Tiling: A GNOME Shell extension that auto-tiles windows without replacing the desktop. You get tiling behavior with full GNOME compatibility.
  • System76 Power: A system tray applet with Balanced, High Performance, and Battery Saver profiles backed by actual CPU frequency management — not just a cosmetic label.
  • systemd-boot instead of GRUB: Faster boot times and a simpler bootloader that's harder to break.
  • Built-in recovery partition: Reinstall from disk without hunting for a USB drive.

The tradeoff: Pop!_OS 22.04 ships GNOME 42, while Ubuntu 24.04 runs GNOME 46. System76's COSMIC Desktop (a new Rust-based DE) targets Pop!_OS 24.04 and remains in alpha as of mid-2026. If cutting-edge GNOME matters more than NVIDIA support, Fedora or Ubuntu 24.04 are the alternatives to evaluate.

Download the Correct ISO

Pop!_OS offers two installer images. Choosing the wrong one means your GPU won't work correctly on the live environment or after install.

  • Intel/AMD ISO (~2.5 GB): For Intel integrated graphics, AMD GPUs (RX 5000 series and newer), or any system without an NVIDIA card. Uses Mesa open-source drivers — nothing extra required.
  • NVIDIA ISO (~3.1 GB): For any system with an NVIDIA GPU — GeForce, RTX, Quadro, or TITAN. The proprietary driver is embedded in the installer. Use this even on Optimus laptops with both Intel and NVIDIA GPUs.

Download from system76.com/pop. After downloading, verify the SHA256 checksum against what System76 publishes:

sha256sum pop-os_22.04_amd64_nvidia_37.iso
# Compare output against the checksum listed on the download page

Create a Bootable USB Drive

On Linux (dd)

# Identify your USB drive — look for the size match
lsblk

# Write the ISO — replace /dev/sdX with your actual USB device, NOT a partition (not sdX1)
sudo dd if=pop-os_22.04_amd64_nvidia_37.iso of=/dev/sdX bs=4M status=progress oflag=sync

# Wait for the command to return. The oflag=sync ensures the buffer flushes before exit.
# Typical output when done:
# 2952+1 records in
# 2952+1 records out
# 3096100864 bytes (3.1 GB, 2.9 GiB) copied, 187 s, 16.5 MB/s

On Windows

Use Rufus (rufus.ie). Select the USB drive, browse to the ISO, and when Rufus asks about the write mode, choose DD Image mode — not ISO mode. ISO mode will produce a non-bootable drive.

On macOS

diskutil list
diskutil unmountDisk /dev/diskN
sudo dd if=pop-os_22.04_amd64_nvidia_37.iso of=/dev/rdiskN bs=4m
# Note: rdiskN (raw disk) is significantly faster than /dev/diskN on macOS

BIOS/UEFI Settings Before Booting

On most machines, two UEFI settings block a clean Pop!_OS install:

  • Secure Boot: Disable it. Pop!_OS doesn't ship signed shim loaders like Ubuntu does. Boot → Secure Boot → Disabled.
  • Fast Boot / Fast Startup: Disable this in both UEFI and Windows (if dual-booting). In Windows: Control Panel → Power Options → Choose what the power button does → Turn off fast startup.

To enter your boot menu, press F12 (most Dell/Lenovo), F9 (HP), or F8 (ASUS) immediately after powering on. Select the USB drive from the boot menu.

Installation Process

The Pop!_OS installer is minimal and fast — typically 5 to 15 minutes depending on storage speed.

  1. At the GRUB screen, select Install Pop!_OS (or try the live environment first to confirm hardware works)
  2. Choose your keyboard layout and language
  3. Select your installation type:
    • Clean Install: Erases the entire drive. Use this for a dedicated Linux machine.
    • Custom (Advanced): Manual partitioning. Required for dual-boot with Windows.
    • Alongside OS: Available if Windows is detected — the installer allocates space automatically.
  4. Encryption: Pop!_OS offers LUKS full-disk encryption. Enable this on laptops — if the machine is lost or stolen, your data is unreadable without the passphrase. You'll enter this passphrase at every boot.
  5. Set your username, password, and machine hostname
  6. Installation runs. When complete, click Restart Now and remove the USB when prompted.

Dual Boot Partition Layout (Custom Install)

Pop!_OS uses systemd-boot, not GRUB. Your EFI System Partition (ESP) needs to be at least 512 MB for systemd-boot to work correctly alongside Windows. A safe manual partition scheme for a 512 GB SSD with Windows already installed:

  • Keep the existing Windows EFI partition (do not delete it)
  • Create a new EFI partition for Pop!_OS: 512 MB, FAT32, mount at /boot/efi
  • Create a root partition: 60–100 GB minimum, ext4, mount at /
  • Create a swap partition: equal to your RAM (for hibernate support) or 2–4 GB minimum
  • Remaining space for /home if desired (ext4)

First Steps After Installation

# Update all packages before doing anything else
sudo apt update && sudo apt upgrade -y

# Install system76-driver for power management, firmware updates, and keyboard backlight control
# (Useful even on non-System76 hardware — installs the power daemon)
sudo apt install system76-driver -y

# If you installed the NVIDIA ISO, verify the driver loaded correctly
nvidia-smi
# Expected output shows driver version (520.x or newer), GPU model, and VRAM

# Install common developer tools
sudo apt install git curl wget build-essential cmake htop neofetch tmux -y

# Enable UFW firewall with default deny-incoming policy
sudo ufw enable
sudo ufw status verbose
# Sample nvidia-smi output confirming driver is active:
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 525.147.05   Driver Version: 525.147.05   CUDA Version: 12.0    |
|-------------------------------+----------------------+----------------------+
| GPU  Name        Persistence-M| Bus-Id        Disp.A | Volatile Uncorr. ECC |
| Fan  Temp  Perf  Pwr:Usage/Cap|         Memory-Usage | GPU-Util  Compute M. |
|===============================+======================+======================|
|   0  NVIDIA GeForce ...  Off  | 00000000:01:00.0  On |                  N/A |
|  34%   42C    P8    20W / 350W|    456MiB / 10240MiB |      2%      Default |
+-----------------------------------------------------------------------------+

NVIDIA GPU Configuration

GPU Switching on Optimus Laptops

# Check which GPU is currently active
prime-select query

# Options: nvidia | intel | on-demand
# on-demand is recommended for laptops — uses integrated GPU by default,
# switches to NVIDIA per-application using environment variables

sudo prime-select on-demand

# To force a specific application to use the NVIDIA GPU in on-demand mode:
__NV_PRIME_RENDER_OFFLOAD=1 __GLX_VENDOR_LIBRARY_NAME=nvidia glxgears

# Or set permanently for an app via .desktop file Exec line:
# Exec=env __NV_PRIME_RENDER_OFFLOAD=1 __GLX_VENDOR_LIBRARY_NAME=nvidia %command%

Installing NVIDIA Drivers on the Intel/AMD ISO

# If you installed the Intel/AMD ISO on an NVIDIA machine (or need to reinstall drivers)
ubuntu-drivers devices   # shows the recommended driver version

sudo apt install system76-driver-nvidia
# This pulls the System76-tested driver version with the correct kernel module configuration

# Reboot after driver installation — mandatory
sudo reboot

Auto-Tiling Window Manager

COSMIC Tiling is a GNOME Shell extension installed by default. It adds true auto-tiling behavior: every new window slots into the existing layout automatically, no overlap, no manual resizing.

Enable it by clicking the tile icon in the top bar, or press Super + Y. Once active, windows tile immediately. Core shortcuts:

ShortcutAction
Super + YToggle auto-tiling on/off
Super + ArrowMove focus in direction
Super + Shift + ArrowResize active window
Super + EnterSwap tiling orientation (horizontal ↔ vertical)
Super + GToggle float on active window
Super + 1–9Switch to workspace number
Super + Shift + 1–9Send window to workspace number

Floating windows (Super + G) opt out of tiling entirely — useful for dialogs, calculators, or media players you want to layer on top of your workspace.

Package Management and Software Installation

APT (Debian Packages)

# Install packages
sudo apt install vlc gimp inkscape code

# Search
apt search "video editor"

# Remove package and its configuration
sudo apt purge packagename

# Clean up orphaned dependencies
sudo apt autoremove --purge

# List explicitly installed packages (not auto-installed)
apt-mark showmanual

Flatpak (Pre-Configured with Flathub)

# Flathub is configured by default — verify
flatpak remotes

# Install from Flathub
flatpak install flathub com.spotify.Client
flatpak install flathub com.discordapp.Discord
flatpak install flathub org.videolan.VLC

# Update all Flatpak applications
flatpak update

# List installed Flatpaks
flatpak list --app

# Remove a Flatpak and its data
flatpak uninstall --delete-data com.spotify.Client

AppImages

# Make executable and run
chmod +x AppName-x86_64.AppImage
./AppName-x86_64.AppImage

# Optional: install AppImageLauncher for system integration (right-click to integrate into app menu)
sudo add-apt-repository ppa:appimagelauncher-team/stable
sudo apt install appimagelauncher

Pop!_OS Upgrade System

Pop!_OS uses pop-upgrade — not do-release-upgrade. Running Ubuntu's upgrade tool on Pop!_OS breaks the bootloader and desktop stack. Use only pop-upgrade.

# Check current version and whether a release upgrade is available
pop-upgrade release check

# Begin a release upgrade (when a new version is published)
pop-upgrade release upgrade

# Monitor upgrade progress (in a separate terminal)
pop-upgrade release status

# Repair the recovery partition if it's been corrupted or is missing
pop-upgrade recovery default-boot

Customization Essentials

Fonts for Development

# Fira Code with ligatures — in repos
sudo apt


Go up