Linuxでカーネルをロールバックする方法
公開: 2022-01-29システムのアップデート後にLinuxPCで突然問題が発生した場合は、Linuxカーネルのアップデートに問題がある可能性があります。 幸い、Debian、Arch、Fedoraシステムでは、ロールバックや別のカーネルへの切り替えは比較的簡単です。 方法は次のとおりです。
カーネルのアップグレードが問題を引き起こす理由
カーネルはLinuxシステムの不可欠な部分であるため、デバイスとセットアップによっては、カーネルの更新によって、ユーザーまたはインストールされているアプリケーションに問題が発生する可能性があります。 問題は、風変わりなグラフィックスの動作から完全に使用できないシステムにまで及ぶ可能性があります。 あなたの状況が後者である場合、あなたは本当の漬物にいます。
この問題を解決するために、最近の多くのディストリビューションでは、起動時にアクセスできる古いカーネルまたは異なるカーネルがインストールされています。 これらにより、カーネルの問題をテストしたり、システムを壊すカーネルアップデートから回復したりできます。
関連: Linuxカーネルとオペレーティングシステムのバージョンを確認する方法
別のカーネルで起動する方法
もちろん、Linuxカーネル以外のシステムパッケージの更新が問題の真の原因である可能性があります。 カーネルに障害があることを除外する簡単な方法の1つは、別のカーネルで起動してみることです。
まず、PCを再起動してGRUBメニューにアクセスする必要があります。 GRUBは起動時に数秒間表示され、「詳細オプション」などのいくつかのオプションが表示される場合がありますが、一部のディストリビューションでは、アクセスしない限りGRUBが非表示になります。 起動時に表示されない場合は、PCの起動が開始された時点で、下の画像のような画面が表示されるまでShiftキーを押し続けます。
矢印キーを使用して「[ディストリビューション]の詳細オプション」に移動し、Enterキーを押します。
利用可能なブートオプションのリストが表示されます。 「[YourDistro]、with Linux 5.10.0.7-amd64」のように、少なくとも2つが表示され、その後に同じオプションの「リカバリモード」バージョンが表示されます。 リストされているさまざまなバージョンは、インストールされているさまざまなカーネルです。
標準オプションとリカバリモードオプションが1つしかない場合は、残念ながら、カーネルが1つしかインストールされていないことを意味します。 その場合、カーネルをまったく使用できない場合は、リカバリモードを使用していくつかの修復オプションを試すことができます。
複数のバージョン番号がある場合は、起動できる代替カーネルがあります。 最初のオプションは最新のもので、PCが自動的に起動するオプションです。 矢印キーで移動してEnterキーを押すことにより、別の非回復モードオプションを試してください。
関連: Ubuntuシステムが起動しないときに修正する方法
カーネルを削除またはダウングレードする方法
別のカーネルを起動することで問題が解決したと思われる場合は、そのカーネルを引き続き使用することをお勧めします。 ただし、PCはデフォルトで、起動するたびに問題のあるカーネルを使用しようとする場合があります。 起動するたびに古いカーネルを手動で選択するか、別の更新を待つ間に問題のあるカーネルを削除することができます。
警告:カーネルの更新にはセキュリティ修正が含まれる場合があります。 そのため、カーネルの更新を無視するとリスクが伴います。 続行する必要がある場合は、システムが可能な限り安全であることを確認してください。
一部のディストリビューションでは、これをグラフィカルに実行できます。また、デフォルトとして別のカーネルを選択することもできます。 たとえば、LinuxMintのUpdateManager(下の図)には、不要なカーネルを削除するだけでなく、カーネル設定を設定できるカーネル設定機能があります。
アプリケーションメニューで「カーネル」という単語を検索して、デスクトップツールが表示されるかどうかを確認してください。 もしそうなら、あなたはおそらくこれをグラフィカルに行うことができるでしょう。 それ以外の場合は、コマンドラインからカーネルを削除するために読んでください。
警告:削除する予定のカーネルではなく、使用するカーネルを起動している間のみ続行してください。
DebianとUbuntuでカーネルを削除する
Debian、Ubuntu、またはそれらの派生物の1つでLinuxカーネルを削除するには、最初にインストールされているカーネルパッケージを特定する必要があります。 ターミナルを開き、次のコマンドを入力します。
apt list --installed | grep linux-image
結果のスラッシュ(/)の前にある各パッケージ名のバージョン番号を確認できます。 削除するカーネルの名前を取得したら、次のコマンドを渡し、 kernel-name
を前のコマンドで表示されたとおりのカーネルパッケージ名に置き換えます。
sudo apt removekernel-name
パスワードの入力を求められたら、 y
と入力してEnterキーを押して削除を確認するように求められます。
削除が完了するのを待つと、LinuxPCはそのカーネルで起動しなくなります。 システムを更新するときは新しいカーネルを監視し、到着時にそれらをテストして、問題が修正されているかどうかを確認します。
関連: UbuntuLinuxをアップデートする方法
Archでカーネルを削除またはダウングレードする
Arch Linuxでは、 linux-hardened
、 linux-zen
、 linux-lts
などの名前の代替カーネルを簡単に入手できます。 GRUBでオプションを選択すると、インストールされている各カーネルの1つのバージョンしか使用できない可能性があります。 Debianのカーネルとは異なり、Archカーネルのアップデートは古いものを置き換える新しいパッケージとしては届きません。 代わりに、インストールされている各カーネルは、利用可能になったときに最新バージョンに更新(または「同期」)されます。
そのため、通常のカーネルをダウングレードするのではなく、単に代替カーネルで起動するのが最善です。 別のカーネルを起動していて、最初のカーネルを使用したくないことがわかっている場合は、Pacmanを使用したアンインストールコマンドでカーネルに名前を付けることができます。
sudo pacman -R kernel-name kernel-name-headers
kernel-name
を選択したカーネルに置き換えます。 続行する前に、パスワードの入力を求められます。 次に、「y」と入力してEnterキーを押して、削除を確認する必要があります。
カーネルパッケージをダウングレードする場合は、お勧めしません。 ローリングリリースの更新は、他のパッケージが最新であることに依存していることが多いため、更新をロールバックすることはリスクの高いビジネスであり、オペレーティングシステムが破損する可能性があります。
ただし、確実に実行したい場合は、次のコマンドを使用してカーネルパッケージを特定のバージョンに同期できます。
sudo pacman -S kernel-name = xxx kernel-name-headers = xxx
kernel-name
をダウングレードするカーネルに置き換え、 xxx
を必要なバージョンに置き換えます。 Arch Package Searchでカーネルを検索し、「ViewChanges」をクリックすると古いバージョン番号を見つけることができます。
関連: ArchLinuxをアップデートする方法
Fedoraでカーネルを削除する
Fedora Linuxはデフォルトで、最新のカーネルとともに2つの古いバージョンのカーネルをデバイスにインストールしたままにします。 このrpm
コマンドを使用すると、パッケージ名を識別できます。
rpm-qaカーネルコア
バージョン番号の横に、インストールされているすべてのカーネルのリストが表示されます。
別のカーネルで起動した後、dnfを使用して問題のあるカーネルをアンインストールします。
sudo dnf remove kernel-core-xxx-xxx.fcxx.x86_64
アンインストールを確認するためのプロンプトが表示されます。 yと入力し、Enterキーを押して確認します。
カーネルを削除した後、カーネルの更新を許可するまで、システムは新しいカーネルで起動できなくなります。 新しいものが利用可能になったら、それを試して、問題が修正されているかどうかを確認してください。