web-dev-qa-db-ja.com

古いカーネルで起動中に新しいカーネルを削除する方法は?

システムに2つのカーネルがインストールされています。 3.16 ...および3.19.3 ... Ubuntu 14.10を実行していますが、3.16 ...カーネルが付属しています。最新のカーネル(3.19.3 ...)を試すことにしましたが、時々エラーが発生し、システムが不安定に感じます。この新しいカーネルを保持する理由はありません。古いカーネルで起動し、たとえばSynapticを使用して新しいカーネルを削除する場合に遭遇する可能性のある問題はありますか?再起動すると問題が発生しますか、それともUbuntuは大騒ぎせずに古いカーネルで自動的に起動しますか?

適切な手順と、私の目標を最もよく達成するための方法に関するアドバイスをいただければ幸いです。ありがとう。

7
Wes Haq

カーネルで起動していない限り、他のパッケージを削除するのと同じ方法でカーネルを削除できます。

インストールしたカーネルのリストを取得するには、次のようにgrepを使用してdpkg -lを使用します。

dpkg -l | grep linux

そこにインストールされたパッケージのリストが表示されます。

次に、apt-getremoveコマンドを使用します

Sudo apt-get remove linux-...<name as shown by dpkg -l>

ヘッダーを削除する必要はありません。linux-image-...は、削除が必要な実際のバイナリです。

apt-getは、grubおよびスタートアップRAMディスクを更新するために必要なコマンドを自動的に再実行することに注意してください。

もちろん、apt-get update + apt-get upgrade(または同じことを行う自動アップグレード)を使用すると、新しいカーネルが再インストールされます...

再インストールを防ぐことができると思いますが、そのためのコマンドがわかりません。

6
Alexis Wilke

これは非常に簡単です。まず、削除するカーネルに関するいくつかのことを知る必要があります。フルネーム(たとえば、3.19.0-15-generic)を取得する必要があります。これを見つけるには、3.19カーネルで起動し、ターミナルを開き(Ctrl + Alt + T)、コマンドを実行します

uname -r

出力に注意してください。 3.16カーネルで再起動し、ターミナルを再度開き、コマンドを実行します

Sudo apt-get remove linux-headers-$(uname -r)
Sudo apt-get remove linux-image-$(uname -r)
Sudo update-initramfs -d -k $(uname -r)
Sudo update-initramfs -u
Sudo update-grub

これで完了です!次回GRUBを見ると、3.19カーネルはもう存在しません。

2
Eduardo Cola