How to Fix Ubuntu Freezing at Boot on Purple Screen

Powering on an Ubuntu workstation or laptop only for the machine to hang indefinitely on a solid purple (or Plymouth splash) screen before loading the graphical user interface or login manager is a classic Linux desktop challenge. While the system appears responsive to hardware power, neither the mouse cursor nor the GDM/LightDM login prompt materialises.

This boot stoppage occurs when the Linux kernel transitions from low-level boot (initramfs) to high-resolution display mode (Kernel Mode Setting, or KMS). Incompatible proprietary GPU drivers (especially Nvidia GeForce cards), ACPI power management mismatches, corrupted Xorg/Wayland configurations, or corrupted root filesystems cause the display server to freeze during initialization.

Underlying Cause Technical Mechanism Recovery Approach
GPU Kernel Mode Setting (KMS) Lock Kernel driver fails to negotiate display resolution with GPU Append nomodeset boot parameter in GRUB
Nvidia DKMS Module Desynchronisation New kernel deployed without matching compiled Nvidia binary modules Boot into Recovery Mode and reinstall nvidia-driver
ACPI Power State Failure Motherboard firmware rejects Linux ACPI sleep/wake power tables Add acpi=off or noapic parameter
Corrupted Root Filesystem Unclean shutdown leaves ext4 journal dirty; fsck stalls in background Run manual fsck on root volume from root shell

Method 1: Access the GRUB Boot Menu and Boot with “nomodeset”

The nomodeset parameter instructs the Linux kernel not to load video drivers until the X server or Wayland compositor has started, bypassing early kernel mode setting crashes.

  1. Power off your computer completely by holding the power button for 5 seconds.
  2. Turn on your computer, and immediately tap the Shift key (for BIOS/Legacy systems) or the Esc key (for UEFI systems) repeatedly to reveal the GRUB menu.
  3. Highlight the default Ubuntu entry and press the e key to edit its boot parameters.
  4. Use the arrow keys to scroll down and find the line beginning with linux (or linux /boot/vmlinuz...).
  5. Navigate to the end of this line, where you will find the string quiet splash.
  6. Replace quiet splash with nomodeset (or add nomodeset directly after quiet splash).
  7. Press Ctrl + X or F10 to boot with this temporary modification.
  8. The system will boot using basic VESA graphics and successfully load the Ubuntu desktop.

Method 2: Make the “nomodeset” Parameter Permanent

If adding nomodeset successfully boots your computer, making this modification permanent ensures the system boots reliably every time until proper GPU drivers are compiled.

  1. Once inside your Ubuntu desktop, press Ctrl + Alt + T to launch Terminal.
  2. Open the default GRUB configuration file:
    sudo nano /etc/default/grub
  3. Locate the line:
    GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"
  4. Modify it to include the parameter:
    GRUB_CMDLINE_LINUX_DEFAULT="quiet splash nomodeset"
  5. Press Ctrl + O to save and Ctrl + X to exit the nano editor.
  6. Update the GRUB bootloader configuration files by executing:
    sudo update-grub

Method 3: Boot into Recovery Mode and Repair Broken Packages

Ubuntu includes an integrated recovery environment that loads a minimal root shell to repair package manager locks and filesystem errors.

  1. Reboot and access the GRUB menu.
  2. Select Advanced options for Ubuntu.
  3. Choose the latest kernel version followed by (recovery mode).
  4. When the Recovery Menu appears, use the arrow keys to select:
    • fsck: Checks and repairs filesystem errors (select Yes to remount as read/write).
    • dpkg: Repairs broken packages and completes interrupted installations.
    • network: Enables networking services to download missing drivers.
  5. Highlight root and press Enter to drop into a root terminal prompt.

Method 4: Fix Corrupted Proprietary Nvidia Graphics Drivers

Mismatches between the Linux kernel headers and proprietary Nvidia modules are responsible for the vast majority of purple screen freezes.

  1. From the recovery root terminal (or after booting via nomodeset), completely remove existing conflicting Nvidia packages:
    sudo apt purge '*nvidia*' -y
  2. Clean package configuration records:
    sudo apt autoremove --purge -y
    sudo apt clean
  3. Install the officially validated proprietary driver for your specific graphics hardware:
    sudo ubuntu-drivers autoinstall
  4. Alternatively, install the latest long-term production branch driver manually (e.g. sudo apt install nvidia-driver-535).
  5. Reboot the workstation:
    sudo reboot

Method 5: Disable Wayland and Revert to Xorg Display Server

Wayland compositing can freeze on older GPUs or specific hybrid laptop configurations. Forcing the GDM display manager to utilise X11 resolves compositor hangs.

  1. Open Terminal and edit the GDM configuration file:
    sudo nano /etc/gdm3/custom.conf
  2. Locate the line:
    #WaylandEnable=false
  3. Uncomment the line by deleting the preceding # symbol so it reads:
    WaylandEnable=false
  4. Save the file (Ctrl + O, Enter) and exit (Ctrl + X).
  5. Restart the display manager:
    sudo systemctl restart gdm3

Diagnosing Further Boot Stalls

If boot freezes persist, remove both quiet and splash from your GRUB boot line to enable verbose kernel logging. This causes the kernel to stream real-time hardware initialization logs directly to your monitor, allowing you to pinpoint the exact device driver or systemd service responsible for the stall.

Get the best tech tips delivered straight to your inbox.

Join thousands of readers mastering Apple, Google, Microsoft, and Linux.