Сервер в кармане, или просто о сложном!

главная - Статьи - Linux, FreeBSD

Как удалить старые ядра CentOS 7

Дата обновления: 20.03.2020

Теги: Linux

А зачем их удалять, собственно, если в CentOS по-умолчанию количество хранимых старых ядер равно 5 (привет, default Ubuntu 16 и 18, где весь boot рано или поздно будет забит до 100%), за что отвечает параметр installonly_limit в /etc/yum.conf? Например, при сбое установки обновлений система может зависать на определеном ядре, а если выбрать другую версию ядра, все будет в порядке. То есть задача может быть просто удалить конкретное ядро, которое точно не нужно. Или если у вас раздел boot слишком маленький и доводить его до заполнения не стоит. Причин может быть много.

Перед тем, как удалять ненужные ядра, нужно понять, какое ядро сейчас загружено:

# uname -a
Linux kvm2.localdomain 3.10.0-1062.18.1.el7.x86_64

Список установленных ядер:

# rpm -q kernel
kernel-3.10.0-957.21.2.el7.x86_64
kernel-3.10.0-1062.4.1.el7.x86_64
kernel-3.10.0-1062.7.1.el7.x86_64
kernel-3.10.0-1062.9.1.el7.x86_64
kernel-3.10.0-1062.18.1.el7.x86_64

Каждое ядро имеет размер 15-20, а то и под 150 Мб, поэтому, например на микро VPS, держать лишнее место под ненужные ядра может быть не очень здорово.

Удалить конкретное ядро

Совет1: если вы давно не перезагружали хост, обратите внимание на то, что текущее загруженное ядро не будет самой последней версией. Возможно, есть смысл перезагрузить хост перед тем, как кардинально чистить ядра, чтобы не получить проблему при следущей штатной перезагрузке, когда где-либо всплывет зависимость от того ядра, которое вы удалили.

Совет2: несмотря на простоту ручного удаления файлов ядер из директории /boot, лучше этого не делать, пока штатные средства CentOS позволяют удалить ядра.

Удалим, к примеру, три ненужных ядра, укажем какие именно:

# yum remove kernel-3.10.0-957.21.2.el7.x86_64 kernel-3.10.0-1062.4.1.el7.x86_64 kernel-3.10.0-1062.7.1.el7.x86_64
Loaded plugins: fastestmirror
Resolving Dependencies
--> Running transaction check
---> Package kernel.x86_64 0:3.10.0-957.21.2.el7 will be erased
---> Package kernel.x86_64 0:3.10.0-1062.4.1.el7 will be erased
---> Package kernel.x86_64 0:3.10.0-1062.7.1.el7 will be erased
--> Finished Dependency Resolution
...

# rpm -q kernel
kernel-3.10.0-1062.9.1.el7.x86_64
kernel-3.10.0-1062.18.1.el7.x86_64

Утилита package-cleanup

Удалять старые ядра в CentOS можно с помощью утилиты package-cleanup:

# package-cleanup --oldkernels --count=2
Loaded plugins: fastestmirror
No old kernels to remove

В данном случае ненужных ядер уже нет, но если бы были, то утилита оставила бы 2 старых (предыдущих) ядра.

Другой пример, из man package-cleanup:
Удалить старые ядра, оставив два, и оставить установленные kernel-devel:
              package-cleanup --oldkernels --count=2 --keepdevel

Автоудаление ядер в CentOS

Как уже отмечалось выше, в CentOS есть удобная возможность управлять количеством ядер. За это отвечает параметр installonly_limit в файле /etc/yum.conf. По-умолчанию, он равен 5. Практичски для всех нормальных ситуаций этого достаточно. Но это уже решать вам.


Авторизуйтесь для добавления комментариев!


    забыли пароль?    новый пользователь?