/bootにカーネルがいっぱいです。何を削除する必要がありますか?

/bootにカーネルがいっぱいです。何を削除する必要がありますか?

Ubuntu 16.04サーバーがあります。unattended-upgrades16.04以降は自動的に有効になり、  /boot別々のパーティションです。自動セキュリティ更新により、新しいカーネルのブートパーティションスペースが不足します。

(可用性の理由で)システムを再起動できないため、マシンはまだ2番目の最後のコアを使用しています。

どのカーネルを削除する必要がありますか?現在、最も古い、最新以外のすべて?

コメントありますか?

また、最新のカーネル状態が「セミコンフィギュレーション」であることがわかりました。このカーネルが機能しない可能性がありますが、このカーネルを削除して古いカーネルを使用する必要がありますか?

出力dpkg -l | grep linux-image

ii  linux-image-4.4.0-21-generic --> old kernel
ii  linux-image-4.4.0-34-generic --> current kernel
ii  linux-image-4.4.0-36-generic --> new kernel
ii  linux-image-4.4.0-38-generic --> new kernel
ii  linux-image-4.4.0-42-generic --> new kernel
ii  linux-image-4.4.0-45-generic --> new kernel
ii  linux-image-4.4.0-47-generic --> new kernel
ii  linux-image-4.4.0-51-generic --> new kernel
ii  linux-image-4.4.0-53-generic --> new kernel
iF  linux-image-4.4.0-57-generic --> new kernel

答え1

古いカーネルを消去するには、purge-old-kernelsコマンドラインツールを使用できます。

このプログラムは、システムから古いカーネルとヘッダーパッケージを削除してディスク容量を解放します。現在実行中のカーネルは決して削除されません。デフォルトでは、最新のコアは2つ以上を保持しますが、ユーザーは--keepパラメータを使用してこの値をオーバーライドできます。追加のパラメータは直接渡されます。apt-get

インストールするpurge-old-kernels、ランニング:

sudo apt install byobu

または

sudo apt install bikeshed

最新のカーネルを引き続き実行するにはn:

sudo purge-old-kernels --keep n

たとえば、g: n=2

sudo purge-old-kernels --keep 2

更新grub:

sudo update-grub

答え2

Ubuntuの場合、Grub2は自動的に最新のカーネルを表示し、古いカーネルを隠します。これを表示するには、起動時にShiftキーを押します。

したがって、古いカーネルを削除する前に、使用可能な最新のカーネルから起動してください(grub2は起動時にデフォルトでそれをロードします)。使用しているコアを確認するには、次のコマンドを使用できます。

uname -r

最新のコアを含む少なくとも2つ、または好ましくは3つのコアを維持することをお勧めします。その理由は、最新のカーネルで起動できない場合、起動できる他のカーネルが少なくとも1~2個あるからです。

古いカーネルを削除するには、端末を開き、現在のカーネルを確認してください。

uname -r 

次に、システムにインストールされているすべてのカーネルを一覧表示します。

dpkg --list | grep linux-image 

現在のカーネルより低いカーネルをすべて探します。選択したカーネルを削除するには、次のコマンドを実行します。

sudo apt-get purge linux-image-x.x.x.x-generic 

最後に、次のコマンドを実行して grub2 を更新します。

sudo update-grub2 

システムを再起動してください。

答え3

apt-get autoremove、定期的に実行すると、あなたが望むものを達成するのに役立ちます。実行中のカーネル、古いカーネル、および2つの最新のカーネルで十分です。

答え4

古いカーネルのいずれかを起動します。

最初の試みapt autoremove --purge

動作しない場合 dpkg -l 'linux-[ihs]*' | sed '/^ii/!d;/'"$(uname -r | sed "s/\([-0-9]*\)-\([^0-9]\+\)/\1/")"'/d;s/^[^ ]* [^ ]* \([^ ]*\).*/\1/;/[0-9]/!d'

削除される項目を制御します。

dpkg -l 'linux-[ihs]*' | sed '/^ii/!d;/'"$(uname -r | sed "s/\([-0-9]*\)-\([^0-9]\+\)/\1/")"'/d;s/^[^ ]* [^ ]* \([^ ]*\).*/\1/;/[0-9]/!d' | xargs sudo dpkg -P これにより、以下のコマンドでlistetカーネルがクリアされます。

sudo apt -f install

確かに

 sudo update-grub

関連情報