web-dev-qa-db-ja.com

不正な更新後にカーネルをダウングレードする方法(16.04)

Ubuntu 16.04カーネル(4.4.0-89および-91)への最近のアップグレードは私のラップトップでひどく失敗しました。幸いなことに、以前の作業バージョンがまだインストールされています(4.4.0-57)。今のところ、メニューを表示するようにGrubを設定し、ブート時に-57を手動で選択していますが、これは壊れやすく、将来Sudo apt upgradeで壊れる可能性があります。

私が欲しいと思う:

  • -89と-91を削除するには、彼らは私に何の役にも立ちません。
  • -57をGrubのデフォルトにするために、アップグレード中も維持されます。
  • 後でカーネルアップグレードをインストールしても、-57がインストールされたままになるようにするため
  • 後でカーネルの更新を簡単に試すことができますが、失敗した場合は-57に戻ります。私の主な関心事は-57が自動的に削除されることです。
  • 機能している後のアップデートを見つけた場合、このすべてを元に戻し、次のカーネルアップデートに戻る簡単な方法。

Sudo apt remove linux-image-4.4.0-91-genericで-91を削除しようとすると、linux-genericとlinux-headers-genericを削除する必要があります。それは悪いようですので、私はそれを試していません。

一般的な問題に関するさまざまな質問を見つけることができますが、私の目標のすべてに対応しているものはないようで、ほとんどは十分に古く、もはや当てはまらないと思います。

これを行う最良の方法は何ですか?

補遺:これは 特定のパッケージの更新を防ぐ方法? の複製としてフラグが立てられました。その答えは私の質問の一部に対処するかもしれませんが、全体像には対処しません。

概して、問題はカーネルが異常な方法で処理されることです。 linux-generic経由でインストールされますが、これはlinux-image-genericおよびlinux-image-headersへの依存関係にすぎません。これらは、バージョン番号をパッケージ名に組み込むのに注目すべきパッケージであるlinux-linux-image-VERSION-genericおよびheaders-VERSION-genericの依存関係にすぎません(複数の並列インストールを容易にするため)。

その回答で具体的に取り上げられていないのは次のとおりです。

  • -89および-91を削除する方法については説明しません。
  • 後で更新をインストールする場合でも、-57をGrubのデフォルトにする方法については説明しません。
  • 後で更新をインストールする場合でも、-57がインストールされたままになるようにする方法については説明しません。答えが1つ以上のパッケージを保持することである場合でも、関連するいくつかのパッケージを考えると、どのパッケージを保持しますかlinux-genericを保持する問題の場合、最初にダウングレードするにはどうすればよいですか?
16
Alan De Smet

最新のカーネルを削除するには

Sudo apt remove linux-image-4.4.0-91-generic linux-headers-4.4.0-91-generic

これにより、メタパッケージlinux-genericlinux-image-generic、およびlinux-headers-genericがアンインストールされます。カーネルはアップグレードされません。

それを元に戻すには、実行することができます

Sudo apt install linux-generic

これにより、最新のカーネルがインストールされ、カーネルがアップグレードされます。

linux-genericはメタパッケージです。これは空ですが、他の2つのメタパッケージlinux-image-genericlinux-headers-genericに依存しています。

最後の2つは、最新のカーネルイメージとヘッダーを指します。

メタパッケージを削除すると、Linuxからは何も削除されませんが、カーネルイメージとヘッダーは更新されません。いつでもインストールできます。彼らは最新の「本当の」カーネルパッケージを引き出します。

そのため、解決策は、不要なカーネルパッケージとメタパッケージを手動で削除することです。

17
Pilot6

Pilot6のソリューションは最良のソリューションかもしれませんが、それほど劇的な対策を講じることはできません。

ソフトウェアセンターから不要なカーネルを個人的に削除し、それらのパッケージを保留にします- 特定のパッケージの更新を防ぐ方法?

これは些細な変更であり、変更を簡単に上書きまたは元に戻すことができます。

3
Panther