2019年11月3日日曜日

カーネルのバージョンを切り替えてUbuntu18.04を動かしてみた


背景

カーネルとはLinux OSの中核を構成するソフトウェアです。
UbuntuはLinuxの1つなので、カーネルを利用して動いています。
OSをインストールすると、その時点での新しめのバージョンのカーネルがインストールされます。

別のバージョンのカーネルを試したい場面に遭遇したので、カーネルの切替方法を備忘録を兼ねて共有します。

使ったもの

Ubuntu18.04.3がインストールされたPC

下記のコマンドで確認した所、5.0.0-32のカーネルがインストールされていました。
uname -a
Linux asuki-ThinkPad-S1-Yoga 5.0.0-32-generic #34~18.04.2-Ubuntu SMP Thu Oct 10 10:36:02 UTC 2019 x86_64 x86_64 x86_64 GNU/Linux

別のバージョンのカーネルをインストールする前に知っておいた方が良いこと

Shiftを押した状態でOSを起動するとgrubメニューが表示されるので、Advanced Optionsから利用するカーネルを選択できます。




カーネルによっては起動後にWiFiが使えない状態になることがあるので、元のカーネルバージョンとこの操作方法を覚えてからカーネルの切替を始めるのが良いと思います。

参考: How can I boot with an older kernel version?

パッケージマネージャーが管理するカーネルをインストール

apt upgradeではカーネルのバージョンが大きく変わることは無いものの、パッケージマネージャーでいくつかの種類のカーネルをサポートしてくれています。
サポートしているカーネルは下記のコマンドで確認できます。
sudo apt-cache search linux-image


記事を書いている時点で最新の5.3.0-19のカーネルをインストールしてみました。
(lowlatency版ではなくgeneric版を利用すると画面の更新が遅い上にWiFiが使えない状態になるので、lowlatency版を選択肢ています。)
sudo apt install linux-image-5.3.0-19-lowlatency

インストールできたら再起動します。
sudo reboot

再起動したらカーネルのバージョンを確認します。
(狙ったカーネルで起動できていない場合はShiftを押しながら起動し、Advanced Optionsからカーネルを選んでください。)
uname -a
Linux asuki-ThinkPad-S1-Yoga 5.3.0-19-lowlatency #20~18.04.2-Ubuntu SMP PREEMPT Tue Oct 22 18:56:52 UTC 2019 x86_64 x86_64 x86_64 GNU/Linux

5.3.0-19のカーネルで起動できました。


参考: Ubuntu カーネルのバージョン変更

選択したカーネルを以後の起動に使う

標準の設定ではカーネル一覧の最も上のカーネルを利用してOSが起動されます。
下記の設定変更と反映をすれば、最後に選択したカーネルをそれ以後の起動で利用してくれるようになります。

/etc/default/grubを管理者権限で開き、下記のように設定を記述します。
sudo gedit /etc/default/grub
# GRUB_DEFAULT=0
GRUB_DEFAULT=saved
GRUB_SAVEDEFAULT=true

設定を変更したら下記のコマンドを実行して設定を反映します。
これを実行しておかないと、再起動しても設定が反映されません
sudo update-grub

参考: Set “older” kernel as default grub entry

まとめ

異なるバージョンのカーネルをインストールして切り替えつつOSを起動できました。
カーネルは上書きインストールではないので、異なるバージョンを気軽に試せそうです。

0 件のコメント :