Linuxカーネルのダウングレード方法:アップデート失敗時の復旧ガイド
Linuxシステムは、その動作をカーネルに大きく依存しています。GNU/Linuxの仕組みをご存じの方ならおわかりのとおり、Linuxとはすなわち「カーネル」そのものです。それ以外の部分は、すべてカーネルとやり取りするためのツールにすぎません。これらのツールによって実際の作業は可能になりますが、カーネルがなければ何ひとつ実行できません。
OSにおけるカーネルは、人間でいえば心臓や血管系のようなものです。普段は存在を意識することはありませんが、一度問題が起きると深刻な影響が出ます。頻繁ではありませんが、カーネルのアップグレードが失敗することは実際にあり得ます。更新後のカーネルが原因でコンピュータが使えなくなったら、ダウングレードを検討しましょう。
古いカーネルで起動する
幸いなことに、最近カーネルをアップデートしたばかりの場合、旧バージョンのカーネルが自動的に削除されることはほとんどありません。旧カーネルが見つからないとすれば、自分でアンインストールした場合だけで、これはあまりおすすめできない操作です。
古いカーネルで起動するには、まずコンピュータを再起動します。GRUBが読み込まれたら、キーを押して標準以外の起動オプションを選択する必要があるかもしれません。一部のシステムでは古いカーネルがこの画面に直接表示されますが、Ubuntuの場合は「Advanced options for Ubuntu(Ubuntu詳細オプション)」を選択すると、過去のカーネルが見つかります。
古いカーネルを選択すれば、通常どおりシステムが起動します。すべてが以前のように動作するはずです。それでも問題が解決しない場合は、カーネル以外に原因がある可能性があります。
問題のあるカーネルを削除する
古いカーネルで起動してすべてが正常に動作していれば、アップグレードしたカーネルが原因である可能性が高いといえます。毎回起動時に古いカーネルを手動で選ぶことも技術的には可能ですが、問題のあるカーネルを削除してしまう方が合理的です。
削除には、使用しているディストリビューションのパッケージ管理ツールを使います。具体的な手順はディストリビューションによって異なります。また、削除したいカーネルのバージョン番号も必要です。これは起動時のGRUB画面で確認できます。Ubuntuなどaptベースのディストリビューションでは、次のようなコマンドを使用します。
sudo apt remove linux-image-VERSION-generic linux-headers-VERSION-generic
VERSIONの部分は、削除したい問題のカーネルの正確なバージョン番号に置き換えてください。しばらくの間だけカーネルのアップデートを保留したい場合は、次のコマンドが便利です。
sudo apt-mark hold linux-image-generic linux-headers-generic
今後のトラブルを防ぐために
こうした問題を避ける最も簡単な方法のひとつは、リリース直後にすぐアップデートを行わないことです。数日待つだけで、他のユーザーからカーネルに関するトラブル報告が上がってくるかどうかを確認できます。特に、自分と同じハードウェア構成を持つユーザーの報告には注意を払いましょう。
安定性を最優先するなら、LTS(長期サポート)版のディストリビューションを選ぶのも有効です。セキュリティアップデートを除けば更新頻度が低く設計されており、一般的なディストリビューションよりも高い安定性が期待できます。
よくある質問
1. カーネルをダウングレードすると不具合が起こりませんか?
OSの中核部分を扱う以上、その可能性は常にあります。ただし、単純にアップグレードしただけなら、古いカーネルへ戻しても大きな問題が発生することは少ないでしょう。
一方で、ドライバーなどカーネルと直接連携するソフトウェアではエラーが起こる場合があります。該当ソフトウェアの旧バージョンが削除・更新されている場合は、そちらも併せてダウングレードが必要になることがあります。
2. カーネルアップデートが自分のシステムで正常に動くか事前に確認できますか?
前述のとおり、大規模なアップグレードの前にユーザーレポートを確認しておくのが賢明です。利用しているLinuxディストリビューションの公式フォーラムなどをチェックし、重大な問題に直面しているユーザーがいないか調べましょう。多数のユーザーが問題を報告している場合は、解決を待ってからアップグレードするのが無難です。
3. システムにインストール済みのカーネルを確認するには?
インストールされているカーネルを確認するコマンドは複数あり、使用しているディストリビューションによって異なります。以下のコマンドは多くの環境で利用できます。
find /boot/vmli*
Arch LinuxおよびArchベースのディストリビューションでは、次のコマンドを使用します。
pacman -Q linux
Ubuntu、Debian、およびそれらの派生ディストリビューションでは、以下のコマンドが使えます。
dpkg --list | grep linux-image
Red Hat、FedoraなどのRPM系ディストリビューションでは、次のコマンドを使用します。
rpm -qa kernel
ここに挙げたのは一部ですが、主要なディストリビューションの多くをカバーしています。その他のディストリビューションをお使いの場合は、公式ドキュメントを参照してください。
4. 現在使用中のカーネルを確認するには?
シンプルなコマンドで確認できます。ターミナルを開いて、次のコマンドを入力してください。
uname -rs
実行中のカーネルのバージョン情報を含む文字列が表示されます。表示例は次のとおりです。
Linux 5.11.0-41-generic
さらに知識を深めるために
カーネル関連の問題への対処として、ダウングレードが最も簡単な方法ですが、唯一の手段というわけではありません。また、起動時のトラブルの原因はカーネルだけとは限りません。システムが起動しなくなると、非常にストレスフルな状況に陥ります。
インターネットで問題を検索するのも有効ですが、システム内部で何が起きているのかを理解していれば、より迅速な解決につながります。起動時に何が行われているのかを詳しく知りたい方は、「Linuxブートプロセスの仕組み」を解説したガイドもあわせてご覧ください。
-
Linuxのteeコマンド使い方ガイド|画面表示とファイル保存を同時に実現
Linuxシェルでパイプやリダイレクトを使っているなら、teeコマンドの出番もきっとあるはずです。teeは「標準出力に表示しながら、同時にファイルにも書き込む」ことができる便利なユーティリティです。この記事では、teeコマンドの基本操作から、sudoとの組み合わせ、追記モード、エラー出力の扱い方まで、実例を交えながら詳しく解説します。 teeコマンドとは何をするもの? まず、次のようなコマンドを見てみましょう。 ls このコマンドは、現在のディレクトリの内容を表示します。つまり、標準出力(stdout)へ出力するわけです。標準出力とは通常、画面、正確には仮想端末のディスプレイのことです
-
Linuxでキーボードレイアウトを変更する方法【主要デスクトップ環境別ガイド】
パソコンで長時間作業をするようになると、自分の好みの設定がいかに重要かを実感するものです。コンピュータを自分好みに仕上げておくことで、作業がスムーズに進むか、それとも単純なタスクさえも時間がかかってしまうかの違いが生まれます。文章の執筆、コーディング、ショートカットキーの活用など、キーボードとそのレイアウトは作業効率を左右する大きな要素です。 各Linuxデスクトップ環境にはそれぞれ独自のやり方がありますが、どれも言語や地域、個人の好みに合わせてキーボードレイアウトを簡単にカスタマイズできます。 GNOME / Budgie まず「設定」アプリケーションを開きます。ウィンドウ左側のリストか