私はコアサービス(NTP、DNSなど)のためにいくつかのサーバーを管理していますが、サーバーの1つが他の2つではなく3つの最新のカーネルを保持しているように思われました。
nul@quark:~$ Sudo apt-get autoremove --purge
Reading package lists... Done
Building dependency tree
Reading state information... Done
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
nul@quark:~$ dpkg -l |grep linux-image
ii linux-image-3.13.0-51-generic 3.13.0-51.84 AMD64 Linux kernel image for version 3.13.0 on 64 bit x86 SMP
ii linux-image-3.13.0-52-generic 3.13.0-52.85 AMD64 Linux kernel image for version 3.13.0 on 64 bit x86 SMP
ii linux-image-3.16.0-37-generic 3.16.0-37.49~14.04.1 AMD64 Linux kernel image for version 3.16.0 on 64 bit x86 SMP
ii linux-image-extra-3.13.0-51-generic 3.13.0-51.84 AMD64 Linux kernel extra modules for version 3.13.0 on 64 bit x86 SMP
ii linux-image-extra-3.13.0-52-generic 3.13.0-52.85 AMD64 Linux kernel extra modules for version 3.13.0 on 64 bit x86 SMP
ii linux-image-extra-3.16.0-37-generic 3.16.0-37.49~14.04.1 AMD64 Linux kernel extra modules for version 3.16.0 on 64 bit x86 SMP
ii linux-image-generic 3.13.0.52.59 AMD64 Generic Linux kernel image
ii linux-image-generic-lts-utopic 3.16.0.37.29 AMD64 Generic Linux kernel image
...
nul@dwarf:~$ Sudo apt-get autoremove --purge
Reading package lists... Done
Building dependency tree
Reading state information... Done
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
nul@dwarf:~$ dpkg -l |grep linux-image
ii linux-image-3.13.0-52-generic 3.13.0-52.85 AMD64 Linux kernel image for version 3.13.0 on 64 bit x86 SMP
ii linux-image-3.16.0-37-generic 3.16.0-37.49~14.04.1 AMD64 Linux kernel image for version 3.16.0 on 64 bit x86 SMP
ii linux-image-extra-3.13.0-52-generic 3.13.0-52.85 AMD64 Linux kernel extra modules for version 3.13.0 on 64 bit x86 SMP
ii linux-image-extra-3.16.0-37-generic 3.16.0-37.49~14.04.1 AMD64 Linux kernel extra modules for version 3.16.0 on 64 bit x86 SMP
ii linux-image-generic 3.13.0.52.59 AMD64 Generic Linux kernel image
ii linux-image-generic-lts-utopic 3.16.0.37.29 AMD64 Generic Linux kernel image
すべてのサーバーは同じように維持され、私が何をすることができたかわからない、どこかにパラメーターでなければならないが、それを見つけることができません!
私の好奇心を養ってください!ありがとうございました
apt-get
に自動削除するカーネルと保持するカーネルを指示する自動生成されたファイルがあります。apt-get
がどのカーネルであるかを伝えるファイルは、/etc/apt/apt.conf.d/01autoremove-kernels
から生成される/etc/kernel/postinst.d/apt-auto-removal
です。
通常、カーネルの更新を受け取っているとき、カーネルのバージョンが変更されたとき、たとえば3.13
から3.16
に変更すると、/etc/apt/apt.conf.d/01autoremove-kernels
が更新されて3.16*
カーネルが保持され、その後、生成スクリプトで削除しないように指定されていない限り、3.13
カーネルをすべて削除するように設定されます。
apt-auto-removal
スクリプトから:
#作成者:Steve Langasek # #以下のカーネルパッケージを非自動削除としてマーク: #-現在起動しているバージョン #-カーネル呼ばれたバージョン #-最新のカーネルバージョン(起動するカーネルを決定するためにgrub #パッケージからコピーされたルールを使用して決定されます) #-2番目-ブートされたカーネルバージョンが #で既に最新であり、このスクリプトがその同じバージョンに対して呼び出される場合、最新のカーネルバージョン、 #は、新しくインストールされたイベントでフォールバックが利用できることを保証します。 ____。]#このABIのカーネルはブートに失敗します #一般的なケースでは、これにより正確に2つのカーネルが保存されますが、 #は3つのカーネルを保存できます。 #保存するカーネルの数が少なすぎるよりも、 #を多用する方が良いでしょう。 # #このリストを生成し、/ etc/apt/aptに保存します。データベース内のパッケージをマーキング #する代わりにconf.d。これはpostinstスクリプトから実行され、apt #は終了時にdbを上書きします。
ただし、これは、これを防ぐためにバージョンによってコーディングの一部が変更されているため、自動削除の対象としてマークされない場合があります。
スクリプトに基づいて必要なカーネルを除き、以前のカーネルにautoremove
のマークを付ける場合は、ターミナルウィンドウから次のコマンドを実行します。
Sudo apt-mark auto ^linux-image-
次に、apt-get autoremove
コマンドを実行すると、古いもので不要になったもののみを削除できます。以下に例を示します。
この最初のものは、システム上のすべてのカーネルから現在実行中のカーネルを引いたものを示します。
root @ terrance-Linux:/ home/share#dpkg -l 'linux- *' | sed '/ ^ ii /!d; /' "$(uname -r | sed" s /\(.*\)-\([^ 0-9]\+ \)/\1/")" '/ d; s/^ [^] * [^] * \([^] * \)。*/\ 1 /;/[0-9] /!d ' linux-headers-3.16.0 -34 linux-headers-3.16.0-34-generic linux-headers-3.16.0-36 linux-headers-3.16.0-36-generic linux-headers-3.16.0-37 linux-headers-3.16.0-37-generic linux-headers-4.0.0-040000 linux-headers -4.0.0-040000-generic linux-image-3.16.0-34-generic linux-image-3.16.0-36-generic linux-image-3.16 .0-37-generic linux-image-4.0.0-040000-generic linux-image-extra-3.16.0-34-generic linux-image-extra -3.16.0-36-generic linux-image-extra-3.16.0-37-generic
これは、現在実行中のカーネルを示しています。
terrance @ terrance-Linux:〜$ uname -r 4.0.1-040001-generic
terrance @ terrance-Linux:〜$ Sudo apt-get autoremove [sudo] terranceのパスワード: パッケージリストの読み取り中...完了 依存関係ツリーの構築 状態情報を読み込んでいます...完了 0アップグレード済み、0は新規インストール、0は削除、0はアップグレードされていません。
terrance @ terrance-Linux:〜$ Sudo apt-mark auto ^ linux-image- linux-image-extra-3.16.0-33-genericは、インストールされていないためマークできません。 linux-image-extra-3.13.0-27-genericはインストールされていないためマークできません。 linux-image-3.13.0-44-lowlatencyはインストールされていないためマークできません。 linux-image-3.13.0-27-genericはインストールされていないためマークできません。 linux-image-3.16.0-31-lowlatencyはそうでないためマークできません linux-image-3.16.0-36-genericは自動インストールに設定されています。 linux-image-lowlatency-lts-utopicは、インストールされていないためマークできません。 linux-image-extra-3.13.0-36-genericはインストールされていないためマークできません。 linux-image-3.13.0-36-genericはインストールされていないためマークできません。 linux-image-4.0.0-040000-genericは自動的にインストールされます。 linux-image-extra-3.13.0-45-genericはインストールされていないためマークできません。 linux-image-3.16.0-25-genericはマークできませんインストールされていないため。
注:上記のものはリストするには長すぎたので、少し切り捨てました。
terrance @ terrance-Linux:〜$ Sudo apt-get autoremove パッケージリストを読み込んでいます...完了 依存関係ツリーを構築しています 状態情報を読み込んでいます...完了 次のパッケージは削除されます。 linux-image-3.16.0-34-generic linux-image-3.16.0-36-generic linux-image-4.0.0-040000-generic linux-image-extra-3.16.0-34-generic linux-image-extra-3.16.0-36-generic 0アップグレード、0は新規インストール、5は削除、0はアップグレードなし。 この操作の後、613 MBのディスク容量が解放されます。 続行しますか? [Y/n]
したがって、これらのコマンドを実行すると、現在のカーネル(4.0.1-040001-generic)を除くすべての古いカーネルと、次に新しいカーネル(3.16.0-37-generic)を自動削除できることがわかります。
これがお役に立てば幸いです。