Ubuntu18.04で更新されたLinux Kernelを別のバージョンに変更する

「apt upgrade」で調子こいて更新しまくっていると、おかしくなったり、意にそぐわない変更があったりして、別のKernelに変更したくなった場合の手順です。

目的のKernelバージョンを特定

まずは目的のKernelを特定する。起動時にESCを押して起動するKernelの選択画面から特定するのもありだし、aptで探し出しても良いと思う。

目的のKernelをインストール

目的のKernelバージョンが分かったら、下記のような感じで必要なものをインストールする。
※今回は5.3.0-26から5.0.0-37に戻したい

# apt install linux-headers-5.0.0-37
# apt install linux-headers-5.0.0-37-generic
# apt install linux-image-5.0.0-37-generic
# apt install linux-modules-5.0.0-37-generic
# apt install linux-modules-extra-5.0.0-37-generic

再起動してインストールしたKernelを起動

再起動して、起動時にESCを押して先程インストールしたKernelでOSを起動する。

いらないKernelを削除

正常動作を確認したら、いらないKernelを削除する形で、GRUBが起動するKernelを先程インストールしたバージョンにする。
※もし使わないKernelを残したい場合はGRUBの設定をいじる

# apt autoremove --purge linux-headers-5.3.* linux-image-5.3.* linux-modules-extra-5.3.*

今後の更新をとりあえず止める

以後、勝手に新しいKernelが入るのは嫌なので、下記のファイルを作成して更新対象外に設定しておく。

Package: linux-generic linux-headers-generic linux-image-generic
Pin: version 5.0.0-37*
Pin-Priority: 1001

HWEカーネル

HWEカーネルを使用している場合はこっち。

Package: linux-generic-hwe-18.04 linux-headers-generic-hwe-18.04 linux-image-generic-hwe-18.04
Pin: version 5.0.0-37*
Pin-Priority: 1001