技術ノート Linux Linux でカーネルをロールバックする方法

Linux でカーネルをロールバックする方法

Linux でカーネルをロールバックする方法

システムのアップデート後に Linux PC に突然問題が発生した場合は、 Linux カーネルの アップデートに問題がある可能性があります。幸いなことに、Debian、Arch、および Fedora システムでは、ロールバックまたは別のカーネルへの切り替えが比較的簡単に実行できます。その方法は次のとおりです。

カーネルのアップグレードが問題を引き起こす理由

カーネルは Linux システムに不可欠な部分であるため、デバイスと設定によっては、カーネルの更新により、ユーザーまたはインストールされているアプリケーションに問題が発生する可能性があります。問題は、グラフィックスの動作がおかしいことから、システムがまったく使用できないものまで多岐にわたります。あなたの状況が後者である場合、あなたはまさに窮地に陥っています。

この問題を解決するために、最近の ディストリビューションの 多くでは、起動時にアクセスできる古いカーネルまたは別のカーネルがインストールされたままになっています。これらにより、カーネルに問題がないかテストしたり、システムを破壊するカーネルのアップデートから回復したりできます。

Linux でカーネルをロールバックする方法

別のカーネルで起動する方法

もちろん、Linux カーネル以外のシステム パッケージの更新が問題の真の原因である可能性があります。カーネルに問題があることを除外する簡単な方法の 1 つは、別のカーネルで起動してみることです。

まず、PC を再起動して GRUB メニュー にアクセスする必要があります。起動時に GRUB が数秒間表示され、「詳細オプション」などのいくつかのオプションが表示されることがありますが、一部のディストリビューションでは、アクセスしない限り表示されません。起動時に表示されない場合は、PC の起動が始まる瞬間に、下の画像のような画面が表示されるまで Shift キーを押し続けます。

矢印キーを使用して「[ディストリビューション] の詳細オプション」に移動し、Enter キーを押します。

利用可能な起動オプションのリストが表示されます。 「[Your Distro], with Linux 5.10.0.7-amd64」のように、少なくとも 2 つのオプションが表示され、その後に同じオプションの「リカバリ モード」バージョンが表示されます。リストに表示されるさまざまなバージョンは、インストールされているさまざまなカーネルです。

標準オプションとリカバリ モード オプションが 1 つしかない場合、残念ながら、カーネルが 1 つしかインストールされていないことになります。その場合、カーネルをまったく使用できない場合は、リカバリ モードを使用して いくつかの修復オプションを試す ことができます。

複数のバージョン番号がある場合は、起動できる代替カーネルがあります。最初のオプションが最新であり、PC が自動的に起動するオプションになります。矢印キーでそのオプションに移動し、Enter キーを押して、別の非回復モード オプションを試してください。

Linux でカーネルをロールバックする方法

カーネルを削除またはダウングレードする方法

別のカーネルで起動することで問題が解決したと思われる場合は、そのカーネルを引き続き使用することをお勧めします。ただし、PC はデフォルトで、起動するたびに問題のあるカーネルを使用しようとする可能性があります。ブートのたびに古いカーネルを手動で選択することも、別の更新を待つ間に問題のあるカーネルを削除することもできます。

カーネルのアップデートにはセキュリティ修正が含まれる場合があります。そのため、カーネルのアップデートを無視するとリスクが伴います。続行する必要がある場合は、システムが 可能な限り安全で あることを確認してください。

一部のディストリビューションでは、これをグラフィカルに実行でき、単に別のカーネルをデフォルトとして選択できる場合もあります。たとえば、Linux Mint の Update Manager (下図) には、不要なカーネルを削除するだけでなく、カーネルの設定を行うことができるカーネル設定機能があります。

アプリケーション メニューで「カーネル」という単語を検索し、デスクトップ ツールが表示されるかどうかを確認してください。そうすれば、おそらくこれをグラフィカルに実行できるでしょう。それ以外の場合は、コマンド ラインを使用してカーネルを削除する方法を読んでください。

削除する予定のカーネルではなく、使用するカーネルでブートしているときにのみ続行してください。

「 Linux でカーネルをロールバックする方法」に関するベスト動画選定!

システムの起動とLinuxカーネル(Linux学習)
Linuxカーネルをコンパイルしてみよう!
Linux でカーネルをロールバックする方法

Debian および Ubuntu でカーネルを削除する

Debian、Ubuntu、またはそれらの派生製品のいずれかで Linux カーネルを削除するには、まずインストールされているカーネル パッケージを特定する必要があります。 ターミナルを開き 、次のコマンドを入力します。

 apt list --installed | grep Linux-イメージ

各パッケージ名のバージョン番号は、結果のスラッシュ (/) の前に表示されます。削除するカーネルの名前を取得した後、次のコマンドを渡します kernel-name パッケージ名に置き換えます。

 sudo apt カーネル名を削除します

パスワードの入力を求められ、 y と入力して Enter キーを押して削除を確認するよう求められます。

削除が完了するまで待ちます。削除が完了すると、Linux PC はそのカーネルで起動しなくなります。 システムを更新する ときは新しいカーネルに注目し、到着したらテストして問題が解決されるかどうかを確認してください。

Linux でカーネルをロールバックする方法

Arch 上のカーネルを削除またはダウングレードする

Arch Linux では、 linux-hardened linux-zen linux-lts などの名前を持ついくつかの代替カーネルを簡単に入手できます。 GRUB でオプションを選択するとき、インストールされているカーネルごとに 1 つのバージョンのみが利用可能であることを確認したことがあるでしょう。 Debian のカーネルとは異なり、Arch カーネルのアップデートは、古いパッケージを置き換える新しいパッケージとして到着しません。代わりに、インストールされている各カーネルは、最新バージョンが利用可能になると、単純に 更新 (または「同期」) されます。

そのため、通常のカーネルをダウングレードするのではなく、単純に代替カーネルで起動することが最善です。別のカーネルを起動していて、最初のカーネルを使用したくないことがわかっている場合は、Pacman のアンインストール コマンドでカーネルに名前を付けることができます。

 sudo pacman -R カーネル名 カーネル名ヘッダー

kernel-name を選択したカーネルに置き換えます。続行する前に、パスワードの入力を求められます。次に、「y」を入力して Enter キーを押し、削除を確認する必要があります。

カーネル パッケージをダウングレードする場合は、それをお勧めしません。ローリング リリース アップデートは他のパッケージが最新であることに依存することが多いため、アップデートをロールバックすることは危険な作業であり、オペレーティング システムの破損につながる可能性があります。

ただし、確実に同期したい場合は、次のコマンドを使用してカーネル パッケージを特定のバージョンに同期できます。

 sudo pacman -S カーネル名=xxx カーネル名ヘッダー=xxx

kernel-name ダウングレードするカーネルに置き換え、 xxx 必要なバージョンに置き換えます。 Arch Package Search でカーネルを検索し、[View Changes] をクリックすると、古いバージョン番号を見つけることができます。

Linux でカーネルをロールバックする方法

Fedora でカーネルを削除する

Fedora Linux はデフォルトで、最新バージョンとともに 2 つの古いバージョンのカーネルをデバイスにインストールしたままにします。この rpm コマンドを使用すると、パッケージ名を識別できます。

 rpm -qa カーネルコア

バージョン番号の横に、インストールされているすべてのカーネルのリストが表示されます。

別のカーネルで起動した後、dnf を使用して問題のあるカーネルをアンインストールします。

 sudo dnf カーネルコア-xxx-xxx.fcxx.x86_64 を削除します

アンインストールを確認するプロンプトが表示されます。 「y」と入力し、Enter キーを押して確認します。

カーネルを削除した後は、カーネルの更新を許可するまで、システムは新しいカーネルで起動できなくなります。新しいものが利用可能になったら、それを試して問題が解決したかどうかを確認してください。