Як зберегти 4 ядра Linux у / завантажуванні за замовчуванням, перш ніж вони автоматично будуть видалені


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
"Чотири" в частині, яку ви цитували, стосується незвичайного випадку, коли "завантажена в даний час версія", "версія ядра, до якого ми закликали", "остання версія ядра" та "друга остання версія ядра" всі виразні, оскільки всі ці версії зберігаються. Однак у типових випадках це зводиться до двох, оскільки "поточно завантажена версія" та "друга остання версія ядра" однакові, як і для двох інших.
fkraiem

Відповіді:


12

Що означає "до чотирьох", це те, що поточна, поточна встановлена, остання та попередні версії можуть бути різними, внаслідок чого чотири версії автоматично зберігаються (як мінімум дві). Дивіться цю частину коду:

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, тому він, ймовірно, конфіле, і зміни слід зберегти (або, принаймні, про них запитають користувача)
muru

1
Так, усі файли під /etcконфілі, але, здається, користувачі часто плутаються, коли "зберігати чи замінювати?" питання спливає ...
fkraiem

1
Я не заплутаюся ... @fkraiem
Fabby

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. але це виконуваний файл, і я перестану хвилюватися про це, і адаптував питання, щоб відповідати відповіді. :-)
Fabby
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.