web-dev-qa-db-ja.com

コマンドのみで実行中のカーネルをアンインストールするにはどうすればよいですか?

コマンドラインで実行中のカーネルをインストールしたい。

たとえば、カスタムカーネルlinux-image-4.0-1-xyzをインストールし、このカーネルで起動したとします(uname -rを実行すると、カーネルバージョンより上になります。

次に、汎用カーネルに切り替えることなく、このカーネルを削除します。

apt purge -y linux-image-4.0-1-xyzを試してみましたが、これは実行されますが、Package Configurationダイアログが表示されます。

Do you want to abort removal now?

2つのオプションがあります

<Yes> <No>

コマンドラインから<No>を選択するにはどうすればよいですか?

2
Pulkit Lall

使用 TAB セレクタを移動するキー。つかいます ENTER 選ぶ。

1
user535733

ビスタへの注意:可能ですが、実行中のカーネルを削除することは非常にお勧めできません。そのカーネルがインストールされている唯一のものであり、アンインストールまたは削除後に再起動または電源が失われた場合、システムは起動できず、おそらく再インストールする必要があります。回復モードは機能しません。これが発生した場合、ライブシステムから起動してデータを救出し、カーネルファイルを適切な場所にコピーすることができます。通常、実行中のカーネルをアンインストールする理由はありません。したがって、おそらくこの答えに従うべきではありません:)


コメントで、パッケージ管理ツールを使用して実行中のカーネルを削除するときに表示されるダイアログを避けたいと述べました。これを達成するために考えられる唯一の方法は、実行中のカーネルに属するすべてのファイルを削除することです。

locateを使用して、カーネルのファイルを検索します。最初にデータベースを更新します。

Sudo updatedb

何らかの理由でカーネルのdpkgデータベースレコードを削除したくない場合は、上記の代わりに次のコマンドを実行します。

Sudo updatedb --prunepaths=/var/lib/dpkg

実行中のカーネルとそのモジュールなどを見つけます。

locate -be $(uname -r)

リストを確認してください。 /usr/src内の多くの小さなファイルであっても、カーネルに属するすべてのファイルを削除するには、locateから-bフラグを省略します。必要なリストができたら、結果をxargsにパイプしてファイルを削除します。

locate -be $(uname -r) -0 | xargs -0 Sudo rm -r

xargsをインタラクティブにするために、-pフラグを追加すると、リスト内の各ファイルで本当にrmを実行することを本当に確認するよう求められます。 locateから-bを省略し、xargs-pを追加すると、長い間確認されます。

-0フラグを使用してnullで区切られた出力を取得する必要はありません。これらのファイルはすべて、あなたまたは他の誰かがそれらをいじっていない限り、正しい名前を持っているからです。ただし、xargsでヌル区切りを使用することをお勧めします。ファイル名にスペースが含まれていると間違えるためです。

GRUBがブートを試行したり、存在しないカーネルをブートするオプションを提供したりするのを防ぐには、構成を更新します。

Sudo update-grub

私はこれをテストしましたが、今、この方法で実行中のカーネルを削除したシステムからこれを入力しています(これを行うために古いUbuntuカーネルから起動しました。通常、dpkgは知らないので、削除してコンパイルし直したくありません。

カーネルはRAMにあります。ブート時にRAMにロードされるため、今はファイルを必要としません。ただし、次のコマンドを使用してカーネルを再インストールします。

Sudo apt update
Sudo apt install --reinstall linux-image-$(uname -r) \
                             linux-modules-extra-$(uname -r) \
                             linux-headers-$(uname -r) \
                             linux-modules-$(uname -r)

非対話型プロセスに関心があるように見えるので、後で使用するために出力をファイルにキャプチャする場合は、aptよりもapt-getを優先して使用できることに言及します。

1
Zanna