How to Install Ubuntu Server 26.04 LTS — Complete Production Guide
Everything you need to deploy Ubuntu 26.04 “Resolute Raccoon” on bare metal, a VM, or a cloud instance — from choosing the right hardware configuration to a hardened, production-ready server in under an hour.
Table of Contents
01 Release Overview & What’s New in 26.04
Ubuntu 26.04 LTS, codenamed Resolute Raccoon, landed on April 23, 2026. It is an LTS (Long-Term Support) release — Canonical commits to five years of standard security updates (through 2031) and an additional five years via Ubuntu Pro, bringing total coverage to a full decade.
For server administrators, this release is significant. It ships the Linux 7.0 kernel, removes cgroup v1 entirely (cgroup v2 is now mandatory), replaces the traditional sudo binary with the memory-safe Rust rewrite sudo-rs, and introduces native first-class support for NVIDIA CUDA and AMD ROCm — making it an excellent AI/ML workload platform out of the box.
⚙️
Linux Kernel 7.0
Better CPU/GPU driver coverage, improved power management, mandatory cgroup v2, media mounts under /run/media.
🦀
sudo-rs (Rust sudo)
The classic sudo is replaced by a memory-safe Rust implementation. Legacy sudo.ws still installable.
🔐
TPM Full-Disk Encryption
TPM-backed FDE out of the box. Works seamlessly with hardware security chips on modern servers.
🤖
Native AI/ML Toolkits
NVIDIA CUDA and AMD ROCm are natively supported. Ideal for GPU inference and training servers.
🛡️
Livepatch on ARM64
Live kernel patching now supports ARM64 servers — zero-downtime security patches for Ampere, Graviton, etc.
🗄️
New Database Versions
PostgreSQL 18, MariaDB 11.8, MySQL 8.4, Valkey 9, and DocumentDB are LTS-supported out of the box.
🌐
Netplan 1.2
Improved wait-online behavior, routing policy support, better OVS/SR-IOV integration for advanced networking.
📦
Updated Toolchain
glibc 2.42, LLVM 21, Rust 1.93, OpenJDK 25, PHP 8.5, Nginx 1.28, Apache 2.4.65, Docker 29, QEMU 10.2.
ℹ
If you are running a production system today, consider waiting for the 26.04.1 point release (August 7, 2026) before upgrading mission-critical workloads. Ubuntu 24.04 LTS remains fully supported until 2029.
02 Which Ubuntu Server Version for Which Configuration?
Not every server should run the newest LTS. The table below maps server use cases and hardware profiles to the recommended Ubuntu release, so you can make an informed decision before you begin.
| Server Role / Use Case | CPU / RAM Profile | Storage | Recommended | Notes |
|---|---|---|---|---|
| New general-purpose production server Web, API, app server |
4+ cores · 8+ GB RAM | 40 GB+ SSD | 26.04 LTS | 10-year security horizon; best for long-running infrastructure |
| AI / ML inference or training CUDA / ROCm GPU workloads |
8+ cores · 32+ GB RAM · NVIDIA/AMD GPU | 200 GB+ NVMe | 26.04 LTS | Native CUDA & ROCm support; Kernel 7.0 GPU driver improvements |
| Kubernetes / container host K3s, kubeadm, Docker Swarm |
4–16 cores · 16–64 GB RAM | 100 GB+ fast SSD | 26.04 LTS | cgroup v2 only — verify workloads are v2-compatible before migrating |
| Database server PostgreSQL, MariaDB, MySQL |
4+ cores · 16–128 GB RAM | 500 GB+ NVMe RAID | 26.04 LTS | PostgreSQL 18, MariaDB 11.8 are LTS-supported; excellent IO scheduler improvements |
| Edge / IoT / ARM server Raspberry Pi 5, Ampere, Graviton |
ARM64 · 4–16 GB RAM | 32 GB+ eMMC / SSD | 26.04 LTS | ARM64 Livepatch support; RVA23 RISC-V profile; strong ARM64 optimizations |
| Stable production system on 24.04 No urgent need to upgrade |
Any | Any | 24.04 LTS | Supported until 2029; upgrade after 26.04.1 in Aug 2026 for smoother migration |
| Legacy server (low RAM, old hardware) Rescue, embedded, minimal VPS |
1–2 cores · 1.5–3 GB RAM | 10–20 GB | 24.04 LTS | 26.04 works at 1.5 GB server minimum, but 24.04 has lower overhead on constrained hardware |
| Development / staging / CI Latest tools needed |
2–8 cores · 4–16 GB RAM | 40+ GB | 26.04 LTS | LLVM 21, OpenJDK 25, PHP 8.5, Rust 1.93 — ideal for cutting-edge dev environments |
| High-frequency trading / latency-critical | High-clock cores · 64+ GB RAM | Fast NVMe | 22.04 LTS | Validate scheduler changes in Kernel 7.0 before migrating |
| IBM Z (mainframe) deployment | IBM z15 (LinuxONE III) or newer only | Varies | 26.04 LTS | z14 and older are NOT supported by 26.04; requires z15 minimum |
| End-of-life server on 20.04 or older | Any | Any | Migrate ASAP | 20.04 standard support ended April 2025; plan migration to 24.04/26.04 |
⚠
cgroup v1 removal: Ubuntu 26.04 with Kernel 7.0 drops cgroup v1 entirely. If your containers, Java runtimes (pre-JDK 11), or monitoring agents rely on cgroup v1, they will break. Test on a staging server before migrating production.
03 Prerequisites & Hardware Requirements
Official Minimum Requirements (Server Edition)
| Component | Absolute Minimum | Recommended (light) | Recommended (production) |
|---|---|---|---|
| CPU | 1 GHz single-core (x86-64 or ARM64) | 2 GHz dual-core | 4+ cores, 3+ GHz |
| RAM | 1.5 GB | 4 GB | 16–64 GB+ |
| Disk (OS) | 4 GB | 20 GB | 40–100 GB SSD |
| Network | Not required for install | 100 Mbps NIC | 1 Gbps+ NIC |
| Architecture | x86-64 (AMD64), ARM64, ppc64le (POWER8+), s390x (IBM z15+), RISC-V (RVA23/QEMU) | ||
What You’ll Need Before Starting
- Ubuntu Server 26.04 LTS ISO (ubuntu-26.04-live-server-amd64.iso)
- A USB drive (8 GB or larger) or BMC/iDRAC/iLO virtual media access
- The server’s IP / gateway / DNS info if you’ll use static addressing
- SSH public key (optional but highly recommended — set it up during install)
- If using LVM/ZFS encryption: note your TPM state or prepare a passphrase
04 Download & Verify the ISO
Download from the official Canonical server
# AMD64 (most common) wget https://releases.ubuntu.com/26.04/ubuntu-26.04-live-server-amd64.iso # ARM64 (Raspberry Pi 5, Ampere, AWS Graviton, etc.) wget https://releases.ubuntu.com/26.04/ubuntu-26.04-live-server-arm64.iso
Verify the download integrity (critical for production servers)
# Download the SHA256 checksum file wget https://releases.ubuntu.com/26.04/SHA256SUMS wget https://releases.ubuntu.com/26.04/SHA256SUMS.gpg # Import Canonical's signing key gpg --keyid-format long --keyserver hkps://keyserver.ubuntu.com \ --recv-keys 0x843938DF228D22F7B3742BC0D94AA3F0EFE21092 # Verify the SHA256SUMS file signature gpg --verify SHA256SUMS.gpg SHA256SUMS # Verify the ISO checksum sha256sum -c SHA256SUMS 2>&1 | grep ubuntu-26.04-live-server-amd64.iso # Expected: ubuntu-26.04-live-server-amd64.iso: OK
Flash to USB (Linux/macOS)
# Find your USB device first lsblk # Flash — replace /dev/sdX with your USB device (e.g., /dev/sdb) sudo dd if=ubuntu-26.04-live-server-amd64.iso of=/dev/sdX bs=4M status=progress oflag=sync
⚠
Double-check the of= target before running dd. Writing to the wrong device will destroy data on that disk. Use lsblk to confirm the device letter.
05 Step-by-Step Server Installation
The Ubuntu Server installer is a curses-based TUI called Subiquity. It is keyboard-driven, straightforward, and supports both interactive and autoinstall modes for unattended deployments.
Step 1 — Boot from installation media
Set your server’s boot order to boot from USB/virtual media first. Modern UEFI systems: hit F11, F12, or Del at POST to enter the boot menu. Select the Ubuntu installer media. When the GRUB menu appears, press Enter to select Install Ubuntu Server.
Step 2 — Language and keyboard
Use arrow keys to select your preferred language and keyboard layout. For most server deployments, English and the default detected layout are fine. Press Done.
Step 3 — Choose installation type
- Ubuntu Server — full server with cloud-init and common utilities (recommended)
- Ubuntu Server (minimized) — stripped-down image for containers and cloud instances
Step 4 — Network configuration
Subiquity will auto-detect your NICs and attempt DHCP. For production servers, configure a static IP:
Select the NIC
Navigate to your primary NIC (e.g., ens3 or eth0) and press Enter.
Set IPv4 method to Manual
Change from “Automatic (DHCP)” to “Manual”. Enter your subnet, address, gateway, and name servers.
Save and continue
Press Save then Done. The installer will verify connectivity.
Step 7 — Storage configuration (most important step)
| Option | When to use | Notes |
|---|---|---|
| Use an entire disk | Single-disk servers, VMs, quick setups | Creates one EXT4 root partition; optionally enables LVM |
| Use entire disk + LVM | Production servers, database hosts | Flexible resizing; enable TPM FDE here for encrypted LVM |
| Custom storage layout | RAID, ZFS, multi-disk, specific partition requirements | Full manual control; recommended for large/critical servers |
ℹ
Recommended partition layout for production servers: /boot/efi (512 MB, FAT32), /boot (2 GB, EXT4), / (40 GB, EXT4), /var (remaining disk or separate volume for log-heavy workloads), swap (equal to RAM up to 16 GB, or 4 GB if RAM > 16 GB).
Step 8 — Profile setup (user account)
# Fill in the installer form fields: Your name: admin # Display name Server's name: prod-web-01 # Hostname (lowercase, no spaces) Username: ubuntu # Avoid 'root' — use sudo instead Password: •••••••••••• # Use a strong passphrase
⚠
Do not use root as your username. Always create a non-root user with sudo privileges.
Step 10 — SSH setup
Enable OpenSSH server during install. You can import your SSH public key directly from GitHub — the installer fetches it by your GitHub username automatically.
Step 12 — Installation and reboot
The installer copies files and configures GRUB. This typically takes 5–15 minutes. When done, remove the installation media and press Reboot Now.
✓
After reboot you should see the Ubuntu 26.04 login prompt. Connect via SSH: ssh ubuntu@<server-ip>
06 Post-Install Checklist
Update all packages
sudo apt update && sudo apt upgrade -y sudo apt autoremove -y sudo reboot # Reboot to apply any new kernel
Set timezone and NTP
sudo timedatectl set-timezone UTC timedatectl status # System clock synchronized: yes
Enable automatic security updates
sudo apt install unattended-upgrades -y sudo dpkg-reconfigure --priority=low unattended-upgrades
Install essential utilities
sudo apt install -y \
curl wget git vim htop tmux tree \
net-tools dnsutils tcpdump \
build-essential python3-pip \
jq rsync lsof strace
Verify system info
lsb_release -a Description: Ubuntu 26.04 LTS uname -r 7.0.0-1001-generic
07 Security Hardening
Configure UFW firewall
sudo ufw default deny incoming sudo ufw default allow outgoing sudo ufw allow 22/tcp # SSH — do this BEFORE enabling! sudo ufw allow 80/tcp sudo ufw allow 443/tcp sudo ufw enable sudo ufw status verbose
Harden SSH configuration
sudo nano /etc/ssh/sshd_config PermitRootLogin no PasswordAuthentication no PubkeyAuthentication yes MaxAuthTries 3 X11Forwarding no ClientAliveInterval 300 ClientAliveCountMax 2 sudo systemctl restart sshd
⚠
Before setting PasswordAuthentication no, ensure your SSH key works in a separate terminal session first.
Install Fail2ban
sudo apt install fail2ban -y sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local # Add to [sshd] section in jail.local: enabled = true maxretry = 3 bantime = 3600 findtime = 600 sudo systemctl enable --now fail2ban
08 Installing Popular Server Stacks
LEMP stack (Nginx + MariaDB + PHP 8.5)
sudo apt install nginx -y sudo apt install mariadb-server -y && sudo mysql_secure_installation sudo apt install php8.5-fpm php8.5-mysql php8.5-curl php8.5-xml php8.5-mbstring -y
PostgreSQL 18
sudo apt install postgresql postgresql-contrib -y sudo systemctl enable --now postgresql PostgreSQL 18.x ...
Docker 29
curl -fsSL https://get.docker.com | sudo sh sudo usermod -aG docker $USER docker run hello-world
NVIDIA CUDA (GPU servers)
sudo apt install nvidia-cuda-toolkit -y nvidia-smi CUDA Version: 12.x
09 Upgrading from Ubuntu 24.04 LTS
⚠
Always take a full snapshot or backup before upgrading. Test on staging first. Wait for 26.04.1 (August 7, 2026) for smoother production upgrades.
# Step 1: Fully update 24.04 first sudo apt update && sudo apt dist-upgrade -y && sudo reboot # Step 2: Run upgrade inside tmux (survives SSH disconnects) tmux new -s upgrade sudo do-release-upgrade # Step 3: Reboot and verify uname -r 7.0.0-1001-generic
Verify after upgrading
- Check for failed services: sudo systemctl –failed
- Validate cgroup v2 workloads: systemd-cgls
- Check media paths: /media → now /run/media
- AppArmor denials: sudo aa-status
10 FAQ & Troubleshooting
Q: My containers broke after upgrading — “cgroup” errors
Kernel 7.0 removes cgroup v1 entirely. Update to Docker 25+ (26.04 ships 29), JDK 11+, and replace /sys/fs/cgroup/memory/ paths with the unified /sys/fs/cgroup/.
Q: sudo behaves differently / sudo-rs issues
sudo --version # Should show sudo-rs 0.2.x # Need legacy sudo? sudo apt install sudo.ws -y
Q: My server has only 2 GB RAM — will 26.04 work?
Yes. The official minimum for Ubuntu Server 26.04 is 1.5 GB RAM. 2 GB is workable for light workloads. For databases or moderate traffic, aim for at least 4 GB.
Q: How do I attach Ubuntu Pro after installation?
sudo pro attach <YOUR-TOKEN> sudo pro status sudo pro enable livepatch # No-reboot kernel patching
Q: External drives not showing up in /media anymore
Kernel 7.0 changed mount points from /media/username/ to /run/media/username/. Update your scripts, backup cron jobs, and monitoring accordingly.
Q: Can I install 26.04 on IBM Z / mainframe z14?
No. Ubuntu 26.04 requires z15 (LinuxONE III) as the minimum on IBM Z. The z14 and older are not supported — stay on 22.04 or 24.04 LTS on those systems.
— References & Further Reading
- Ubuntu 26.04 LTS Official Release Notes — Canonical
- Ubuntu Server Documentation — Canonical
- Ubuntu Release Cycle & Support Windows — Canonical
- Ubuntu Pro — Extended Security Maintenance — Canonical
- Summary of Changes for LTS Users (24.04 → 26.04) — Canonical
- Community System Requirements Wiki — Ubuntu Community