Robert Scott

Fixing a broken kernel update on Arch GNU/Linux

October 20, 2016

So Arch GNU/Linux isn't booting after a kernel update? No issue.

Write the current Arch GNU/Linux ISO image to a USB drive you have lying around:
sudo dd if=archlinux-2016.10.01-dual.iso of=/dev/sdX

Boot from the USB into a live session of the same architecture of your currently broken install.

Mount the drive containing the broken kernel you want to fix. For example if you have /dev/sda1 as /boot and /dev/sda3 as /, then you will need to do this:
mount /dev/sda3 /mnt
mount /dev/sda1 /mnt/boot

Enter a chroot at your newly mounted mountpoint:
arch-chroot /mnt /bin/bash

Get to pacman's cache directory:
cd /var/cache/pacman/pkg

Print a list of all the currently cached linux kernel versions:
ls linux-*

Downgrade the kernel! You'll need to replace 'version' with the version you want to downgrade to.
pacman -U linux-version.pkg.tar.xz linux-headers-version.pkg.tar.xz

Get out of that chroot:
exit

Reboot and hold your breath:
reboot

Success! Well hopefully at least...

Now stop that pesky kernel from updating until a newer versions comes out that you can test. Change the line:
#IgnorePkg =
to:
IgnorePkg = linux linux-headers

Done.