自動的に削除される前に、デフォルトで4つのLinuxカーネルを/ bootに保持する方法


12

少し調べてみると、カーネルの自動クリーンアップが実行されて/etc/kernel/postinst.d/apt-auto-removalおり、ファイルの状態が次のようになっています。

# In the common case this results in two kernels saved (booted into the
# second-latest kernel, we install the latest kernel in an upgrade), but
# can save up to four. Kernel refers here to a distinct release, which can
# potentially be installed in multiple flavours counting as one kernel.

しかし、そのスクリプトは私の頭上にあり、最後の4つのカーネル以外の自動クリーニングを簡単に見つけることはできません。


いくつかの場所でスクリプトを変更する必要があります。他の方法はありません。必要に応じて、aptパッケージの「ウィッシュリスト」バグレポートを提出して、カーネルの数をカスタマイズできます。
fkraiem

2
引用した部分の「4」は、「現在起動しているバージョン」、「求められているカーネルバージョン」、「最新のカーネルバージョン」、「2番目に新しいカーネルバージョン」という珍しいケースを示します。これらのバージョンはすべて保持されているため、すべてが異なります。ただし、「現在起動しているバージョン」と「2番目に新しいカーネルバージョン」は同じであり、他の2つのバージョンも同様であるため、通常は2つになります。
fkraiem

回答:


12

「最大4」と言うときは、現在実行中のバージョン、現在インストールされているバージョン、最新のバージョン、および以前のバージョンがすべて異なる可能性があり、4つのバージョンが自動的に保持されます(最低2つ)。コードのこの部分を参照してください。

debkernels="$(echo "$latest_version
$installed_version
$running_version
$previous_version" | sort -u | sed -e '/^$/ d')"

古いカーネルを保存する最も簡単な方法は$previous_version、リストに拡張することだと思います。の代わりに:

previous_version="$(echo "$debverlist" | sed -n 2p)"

行う:

previous_version="$(echo "$debverlist" | sed -n 2,4p)"

はい、これは動作するはずです。ファイルはaptパッケージの一部であるため、aptアップグレード時にデフォルトのファイルに戻すことができることに注意してください。
fkraiem

@fkraiemファイル内にある/etc、それはおそらくCONFFILEと変更が保存されるべきだ(あるいは、少なくとも、ユーザーはそれらについて聞かれます)ので、
muru

1
はい、下のファイルはすべて/etcconffilesですが、「キープまたは置換しますか?」質問が表示されます...
fkraiem

1
混乱することはありません... @fkraiem
ファビー

aptはまだ文句を言います:The following packages were automatically installed and are no longer required: linux-headers-4.10.0-38 linux-headers-4.10.0-38-generic linux-image-4.10.0-38-generic linux-image-extra-4.10.0-38-generic linux-signed-image-4.10.0-38-generic Use 'sudo apt autoremove' to remove them. しかし、それは実行可能ファイルであり、私はそれについて心配するのをやめて、答えに合うように質問を適合させます。 :
ファビー
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.