A kernel update occasionally causes a server to fail booting into the new kernel — this guide covers recovery approaches, from simplest to more involved.
Why This Happens
A new kernel version might have a compatibility issue with your specific virtualized hardware/drivers, a misconfigured bootloader entry, or (rarely) a genuine kernel bug — whatever the specific cause, the fix generally involves either booting the previous working kernel or troubleshooting the new one.
Step 1 — Access Your VPS Console
See How to Access Your VPS Console When SSH Isn't Working — since the server likely isn't network-reachable if it's failing to boot, console access is essential for this troubleshooting.
Step 2 — Access the GRUB Boot Menu
During boot, GRUB (the bootloader) typically offers a menu of available kernels — you may need to interrupt the boot process (often holding Shift or pressing Esc during the brief boot window) to see this menu, since it can be hidden/skipped by default on many configurations.
Step 3 — Boot the Previous Kernel Version
Select an older, previously-working kernel version from the GRUB menu — if this boots successfully, it confirms the issue is specific to the new kernel, not a broader system problem.
Step 4 — Once Booted, Investigate the New Kernel Issue
journalctl -k -b -1
Review logs from the failed boot attempt (the previous boot, hence -1) for specific error messages that might explain the failure.
Step 5 — Consider Holding the Problematic Kernel Version
sudo apt-mark hold linux-image-VERSION
Prevents this specific problematic kernel from being automatically selected as default, while you investigate further or wait for a subsequent fix.
Step 6 — Make the Working Kernel the Default (Temporary Fix)
sudo nano /etc/default/grub
GRUB_DEFAULT="1>2"
Adjust the default boot entry to point at your known-working kernel — the exact syntax depends on your GRUB menu structure; consult /boot/grub/grub.cfg to identify the correct entry index.
sudo update-grub
Step 7 — Check for Provider-Specific Kernel Requirements
Some VPS providers use a custom kernel or have specific requirements/recommendations distinct from the distribution's stock kernel — check your provider's documentation if you suspect a provider-specific compatibility issue.
Step 8 — If GRUB Menu Isn't Appearing At All
Some cloud/VPS images hide the GRUB menu by default for faster boot — check /etc/default/grub for a very short or zero GRUB_TIMEOUT, and adjust if you need reliable access to this menu during troubleshooting.
When to Contact Provider Support
If console access itself isn't revealing the GRUB menu or boot process clearly, or if the issue seems related to the underlying virtualization layer rather than the guest OS, provider support may have additional diagnostic tools or insight.
Preventing Recurrence
Consider testing kernel updates in a non-critical environment first if boot failures have been a recurring issue, or hold kernel updates temporarily during periods when you can't afford potential downtime for troubleshooting.
Common Errors
Neither old nor new kernel boots — suggests a broader issue beyond just the kernel update itself; consider restoring from a recent backup/snapshot taken before the update if available.
Continue Reading
- How to Access Your VPS Console When SSH Isn't Working
- How to Fix a VPS Stuck in a Reboot Loop
- How to Enable Automatic Security Updates on Ubuntu & Debian
Browse more articles in Troubleshooting & FAQ.