新しいカーネルを削除する/ boot full


8

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

システムをリブートするだけでは、マシンはまだ最後から2番目のカーネルを使用しています。

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

あなたたちはいくつかの推奨事項を持っていますか?

また、最新のカーネルのステータスが「Half Configured」になっていることにも気づきました。このカーネルはおそらく機能しないので、これを削除して古いカーネルを使用する必要があります。

の出力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

回答:


7

古いカーネルを削除するには、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

e、g:n = 2

sudo purge-old-kernels --keep 2

更新grub

sudo update-grub

2
byobuおそらく16.04 Xenuialに必要なパッケージです。Trusty とXenialの間でいつかpurge-old-kernels移動しbikeshedましたbyobuが、bikeshed現在は推奨されbyobuていないため、インストールの推奨がない場合でもプログラムを入手できます。
Wolfgang

4

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 

そして、システムを再起動します。


1
質問から:「システムをただリブートすることはできません」。あなたの答えはそうすることを2回行う必要があります。
オービットのライトネスレース2016

3

apt-get autoremove、定期的に実行され、あなたが望むものを達成するのを助けることができるはずです。実行中のカーネル、以前のカーネル、および最新の2つのカーネルで十分です。


1
インストールされているカーネルのリスト、および実行中のカーネルが古いという事実を考えると、「実行中のカーネル、以前のカーネル、および2つの最新のカーネル」と言います。
Stephen Kitt

2

以前のカーネルの1つを起動します。

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