Skip to content
WhySoGeek.
How To

How to Fix Ubuntu That Won't Boot After a Kernel Update

Recover an unbootable Ubuntu by booting an older kernel from GRUB, then repairing packages or reinstalling GRUB from a live USB.

Sam Carter 9 min read
Cover image for How to Fix Ubuntu That Won't Boot After a Kernel Update
Photo: foskarulla / flickr (BY-SA 2.0)

A kernel update finishes, you reboot, and Ubuntu drops you to a black screen, a BusyBox (initramfs) prompt, or a frozen splash. It is unsettling, but a failed kernel update rarely destroys anything. Ubuntu keeps the previous kernel installed precisely for this situation, and you can almost always boot it, fix the broken package, and move on. Here is the recovery path from easiest to most thorough.

Quick answer

The fastest fix is to boot the previous kernel: hold Shift (BIOS) or tap Esc (UEFI) at startup to reveal GRUB, choose Advanced options for Ubuntu, and pick the older kernel (the normal entry, not recovery mode). Once it boots, run sudo dpkg --configure -a and sudo apt --fix-broken install, then re-run the upgrade and sudo update-grub. If no kernel boots or you land in BusyBox, boot an Ubuntu live USB, chroot in, and run grub-install /dev/sda plus update-grub, or just use the Boot-Repair tool. Your personal files are never touched by any of this.

Key takeaways

  • Ubuntu keeps the previous kernel in the GRUB menu. Booting it is the fastest recovery.
  • Hold Shift (BIOS) or tap Esc (UEFI) during boot to reveal the GRUB menu if it is hidden.
  • From a working older kernel, sudo dpkg --configure -a and sudo apt --fix-broken install repair most failed updates.
  • If GRUB itself is broken, boot a live USB, chroot in, and run grub-install plus update-grub.
  • The Boot-Repair tool automates GRUB reinstallation when manual commands feel risky.

Match the failure to the fix

What you see on screen tells you how deep the problem goes and which step to start with:

What you seeLikely causeWhere to start
Boots to old kernel fine, new one failsHalf-installed kernel packageStep 2: repair packages
GRUB menu missing or wrong kernels listedBootloader config out of dateStep 3: update-grub
No kernel boots, blank/black screenGRUB or kernel install brokenStep 4: reinstall GRUB from live USB
BusyBox (initramfs) promptRoot filesystem not found/mountedRun fsck, or Step 4
Frozen Ubuntu splash logoDriver or initramfs issueBoot old kernel, then Step 2

Step 1: Boot the previous kernel from GRUB

Ubuntu installs a new kernel alongside the old one, so the old, working kernel is still there.

    1. Reboot. As the machine powers on, hold Shift on a BIOS system, or tap Esc repeatedly on a UEFI system, to bring up the GRUB menu.
    2. Select Advanced options for Ubuntu.
    3. Choose the previous kernel version in the list, the normal entry, not its recovery mode.
    4. Press Enter and let it boot.

If the system boots, you are now in a working environment and can repair the broken update from there.

Note

Pick the normal entry for the older kernel, not "(recovery mode)". Recovery mode boots single-user with limited services and can confuse the repair steps. You only need recovery mode if the normal entry also fails.

Step 2: Repair the broken packages

Once booted on the older kernel, fix whatever the update left half-installed.

sudo dpkg --configure -a
sudo apt --fix-broken install
sudo apt update
sudo apt full-upgrade

The first command finishes any packages that were interrupted mid-configuration. The second resolves broken dependencies. Then re-running the upgrade often completes the kernel install cleanly the second time. Reboot and let GRUB pick the newest kernel.

Step 3: Regenerate GRUB if the menu is wrong

If GRUB does not list the new kernel, or points at the wrong disk, rebuild its configuration from the working session:

sudo update-grub

This rescans installed kernels and rewrites the boot menu. If a manual edit to grub.cfg caused the problem, note that update-grub overwrites it, which is what you want.

A GRUB boot menu showing Ubuntu and Advanced options entries on a dark screen
Photo: yohann.aberkane / flickr (BY-NC-ND 2.0)

Step 4: Reinstall GRUB from a live USB

If no kernel boots at all, or you land in BusyBox, GRUB itself likely needs reinstalling. Do this from an Ubuntu live USB.

    1. Boot the Ubuntu installer USB and choose Try Ubuntu.
    2. Open a terminal and identify your root partition with lsblk (for example /dev/sda2).
    3. Mount it and bind the system directories:
    sudo mount /dev/sda2 /mnt
    sudo mount --bind /dev /mnt/dev
    sudo mount --bind /proc /mnt/proc
    sudo mount --bind /sys /mnt/sys
    # UEFI systems also need the EFI partition:
    sudo mount /dev/sda1 /mnt/boot/efi
    
    1. Enter the system and reinstall GRUB:
    sudo chroot /mnt
    grub-install /dev/sda
    update-grub
    exit
    
    1. Reboot and remove the USB.

Note

Use the whole disk for grub-install (/dev/sda), not a partition (/dev/sda2). Pointing it at a partition is a common mistake that leaves the system still unbootable.

The easy-button alternative: Boot-Repair

If manual chroot commands feel risky, the Boot-Repair tool does it for you. From the live USB, add its PPA, install boot-repair, launch it, and click Recommended repair. It analyzes the disk, reinstalls the bootloader to the correct location, and regenerates the menu automatically. It is the safest route for anyone not comfortable at the command line. The commands to set it up from a Try Ubuntu session:

sudo add-apt-repository ppa:yannubuntu/boot-repair
sudo apt update
sudo apt install -y boot-repair
boot-repair

What to do right now

If you are staring at a failed boot, work in this order and stop as soon as you are back in:

  • Reboot and hold Shift (BIOS) or tap Esc (UEFI) to bring up GRUB.
  • Open Advanced options for Ubuntu and boot the previous kernel (normal entry, not recovery).
  • Once in, run sudo dpkg --configure -a then sudo apt --fix-broken install.
  • Re-run sudo apt update && sudo apt full-upgrade, then sudo update-grub, and reboot.
  • If no kernel boots, boot a live USB, chroot in, and run grub-install /dev/sda plus update-grub.
  • Not comfortable in the terminal? Run Boot-Repair and click Recommended repair.
  • After recovery, keep at least one known-good older kernel and snapshot before the next big upgrade.

Frequently asked questions

Will I lose my files recovering from a failed kernel update?

No. The kernel and bootloader live separately from your home directory. Booting an older kernel or reinstalling GRUB does not touch your personal data. The repair steps act on system packages and the boot configuration, not your documents.

Why does Ubuntu keep so many old kernels?

As a safety net exactly like this. When an update breaks booting, the previous kernel is your way back in. You can remove very old ones later with sudo apt autoremove --purge, but always keep at least one known-good previous kernel installed.

I get a BusyBox (initramfs) prompt. What does that mean?

The initial ramdisk could not find or mount your root filesystem. From that prompt, run fsck on the root partition (for example fsck /dev/sda2 -y), then type exit to continue booting. If that fails, recover via the live-USB chroot method above.

Why must I run grub-install on the disk, not the partition?

GRUB's boot code lives in the disk's boot sector (or the EFI partition), not inside a data partition. Pointing grub-install at /dev/sda2 instead of /dev/sda is the single most common chroot mistake and leaves the machine still unbootable. Use the whole disk.

How do I avoid this next time?

Keep the previous kernel installed, and consider taking a system snapshot (Timeshift, or a Btrfs/ZFS snapshot) before major upgrades. The same backup discipline in our 3-2-1-1-0 backup guide applies to Linux desktops too, and if you are new to running Linux beside Windows, our dual-boot setup guide covers the partition habits that keep recovery simple.

#linux#ubuntu#grub#troubleshooting

Sources & further reading

Keep reading