古いカーネルを削除するのはなぜ安全ではないのですか?


36

ブートドライブの容量が足りなくなったため、古いカーネルを削除することにしました。:私は、私が何をすべきまさに説明このページ見つけLubuntuドキュメント:古いカーネルを削除します

私は最も古いカーネルを手動で削除しましたが、今では大丈夫ですが、私は1つのことを理解していません:記事の終わりに、すべての古いカーネルバージョンを削除できるいくつかのコードがありますが、上級ユーザー専用としてマークされています。

私はここで危険が何であるか本当に理解していません。馬鹿げているように聞こえますが、特定のマシンで同時に複数のカーネルが使用される可能性があると言われているようです。

Ubuntuマシン上の異なるアプリケーションが異なるカーネルを同時に使用することは可能ですか?古いカーネルをすべて削除すると、なぜ自動的に危険と見なされるのですか?


8
実際、この記事には「危険」と「危険」という言葉は含まれていません。どうしてそんなに誇張された結論に到達したのですか?
mikewhatever

2
数回、最新のカーネルにアップグレードし、リブートする前に古いカーネルを削除しましたが、(特定のシステムで)カーネルが機能せず、システムが起動しないことがわかりました。今、私は最初にリブートを行い、すべてがうまくいけば古いカーネルを削除します。
マシュー

回答:


50

古いカーネルを削除することは本質的に安全ではありませんが、すべてのカーネルを削除て再起動すると、怒っているGrub画面が表示されます。重要なノウハウを必要とする修正(そのような、しかしapt-get install linux-generic最後に)。

これを初めて行うのは非常にスリルがありますが、Grubメニューのクリーンアップやディスク領域の回復を探している人はスリルを求めていません。

危険がユーザーから来ているが、コピー・貼り付けコードのブロックにそれらへとrisks-を認めずに-unbeknownstが適用されないこと。古いカーネルを検出する多くの例がありますが、完璧な例はほとんどありません。私の最新の努力でさえまだ落とし穴があります。そして、私たちは修正可能な問題について話している。Ask Ubuntuの多くの投稿は、誤って使用すると永続的なデータ損失につながる可能性があります。

ユーザーに潜在的な問題を意識させるためのリスクを示す標識を付けることにより損害から保護するよう努めています。最良の場合のシナリオでは、ユーザーは問題に対処する準備と準備を整えられますが、最悪の場合は、少なくとも警告がなかったと文句を言うことはできません。


11
すべてのカーネルを削除しないでください(もちろん)。ただし、更新されたカーネルをインストールしたばかりでまだリブートしていない場合は、現在実行中のカーネルも削除しないでください。どうして?更新されたカーネルで何かが壊れた場合、いつでもGrubで以前のカーネルを選択して作業に戻ることができます。そうしないと、起動不可能なシステムで立ち往生し、「LiveCDゲーム」(楽しいゲームではなく、BTW)をプレイする必要があります。
ネイサンオスマン

1
それはほとんど同じくらい楽しいdd if=/dev/zero of=/dev/sda bs=512 count=1です。私が何をしようとしていたのか覚えていません(複数のブートマネージャーが私の人生を迷惑にしていることについて)。LiveCDで約7時間、パーティションテーブルを修復しようとしました。
phyrfox

1
そのように簡単で、テストされ、確実に動作する(少なくとも)1つのカーネルを保持します。誰か-@NathanOsman-実際にそれを言葉に入れなければならなかった。ここで学んだ2番目の重要な教訓は、結果がわからないことをやらないことです。
ニコライ

1
「スリリング」という言葉は使いませんが、それをしたときの感覚は強烈でした。
-MDeBusk

過去にカーネルの問題を修正したことがあるので、3つのカーネルを残したほうがずっと幸せです。私は通常、現在実行中のカーネル、最新のカーネル、および現在のカーネルの直前のものを使用します。これにより、再起動時に最新のもの、機能することがわかっているもの、および何らかの理由で失敗した場合は以前のものが得られます。それはおそらくやり過ぎですが、CYAが承認しています。
フリッカーフライ

4

古いカーネルはパッケージの一部です。削除するだけで、/boot/vmlinuz-3.13.0-44-genericパッケージのパンくずが残ります。

まず、実行しているカーネルを見つけます。この値が名前になっているものは削除しないでください。

$ uname -r  
3.13.0-49-generic  

YMMV。次に、dpkg知っていることを尋ねます。

$ dpkg -l linux-*

これらのパッケージのいくつかは削除できますが、他に何がありますか?以下の出力から(MYシステムで)抽出された1行を使用しますdpkg -l linux-*

 ii  linux-image-3.13.0-44-generic       3.13.0-44.73           amd64                  Linux kernel image for version 3.13.0 on 64 bit x86 SMP

次に、他のパッケージの-3.13.0-44名前に含まれるものを確認します。

$ dpkg -l *-3.13.0-44*

最終チェックを行って、現在のカーネル(uname -r)がパッケージのリストにないことを確認したら、選択したパッケージ管理システムから削除を開始できます。


0

前回、古いカーネルを削除したときに、古いコードスニペットを借りました。さて、このコードスニペットでは、新しいカーネルをインストールした後に再起動する必要があったため、カーネルがありませんでした。幸いなことに、再起動する前にこれを捕まえましたが、他の人が言ったように、「怒っているgrub画面」が残っているかもしれません。

簡単に言えば、簡単に台無しにできるものであり、復旧が困難なレンガ造りのシステムになります。


0

安全ではありません。Linuxを使用すると、正しいコマンドを知っていれば、望みどおりのことができます。

では/bootディレクトリは、簡単な操作を行うことができls -la、長いリストを持っているだけでなく、任意の隠されたファイルやディレクトリを見つけるために(いずれかが存在する場合があることになっていません!)。

この情報から、日付と古いバージョンのファイルを評価できます。それらのすべてを削除するのではなく、同じバージョンに対応する最も古いファイルを削除してください。

ある時点で、ソースからカーネルをコンパイルした場合、新しいカーネルを微調整する必要がある可能性があると考えていました。.config私はあなたの説明どおりケースだとは思わないファイルは、そこに滞在します。

そのため、1つのバージョンに対応する古いファイルを削除した後、マシンを再起動した後、カーネルパニックが発生する可能性があります。

簡単な解決策は、ライブUSBまたはCD / DVD Linuxでマシンをブートすることです。chrootそして、のようなツールでカーネルを再構築しますdracut

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.