Ubuntu 16.04サーバーがあります。unattended-upgrades
16.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