Ubuntu 16.04サーバーがいくつかあります。 unattended-upgrades
は16.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
古いカーネルを削除するには、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
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
そして、システムを再起動します。
apt-get autoremove
、定期的に実行され、あなたが望むものを達成するのを助けることができるはずです。実行中のカーネル、以前のカーネル、および最新の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
これにより、以下のコマンドからリストセットカーネルが削除されます。
_Sudo apt -f install
_
そして確かに
_ Sudo update-grub
_