Удаление старых ядер (kernel) в Oracle Linux UEK

Раздел /boot как правило создается на отдельной ФС и её размер обычно делают 256MB, 512MB или 1GB и рано или поздно место на нем заканчивается. Как правило причиной всему служит обилие старых ядер (kernel). Конечно система сама будет подчищать старые ядра, но есть нюансы. Обо всех тонкостях мы и поговорим ниже.

Исходные данные: Oracle Linux 7.7 с ядром UEK
Задача: Подчистить старые ядра

Первое, что нужно выяснить — сколько ядер будет держать система. За это отвечает параметр installonly_limit в файле /etc/yum.conf, проверим сколько у нас:

# grep installonly_limit /etc/yum.conf
installonly_limit=10

Как видно у меня стоит 10 и это нестандартное значение, стандартное это 3
Почему у меня стоит 10, а не 3 — это отдельный разговор, но в результате место на /boot стало заканчиваться и хотелось удалить пару-тройку старых ядер.

Т.к. у меня стоит ядро UEK, то Oracle Linux помимо использования ядра UEK держит в системе еще и стандартные ядра версий 3.10 и обновляет их.

Посмотрим какие ядра у нас есть:

# rpm -q kernel
kernel-3.10.0-1062.1.1.el7.x86_64
kernel-3.10.0-1062.1.2.el7.x86_64
kernel-3.10.0-1062.4.1.el7.x86_64
kernel-3.10.0-1062.7.1.el7.x86_64

# rpm -q kernel-uek
kernel-uek-4.14.35-1902.3.2.el7uek.x86_64
kernel-uek-4.14.35-1902.5.2.el7uek.x86_64
kernel-uek-4.14.35-1902.5.2.2.el7uek.x86_64
kernel-uek-4.14.35-1902.6.6.el7uek.x86_64
kernel-uek-4.14.35-1902.7.3.el7uek.x86_64
kernel-uek-4.14.35-1902.7.3.1.el7uek.x86_64

Мы видим, что стоит 4 ядра версии 3.10 и 6 ядер версии 4.14.35 (UEK)

Давайте сократим их до 2 штук.

Прежде чем удалять старые ядра нам нужно выяснить какое текущее ядро используется, чтобы не удалить случайно его. Может случиться ситуация, что Вы сделали

yum update kernel kernel-uek

то есть обновили ядра, но не перезагрузили сервер, в результате используется не самое новое ядро.

Проверяем текущее ядро:

# uname -a
Linux myserver 4.14.35-1902.7.3.1.el7uek.x86_64 #2 SMP Tue Nov 12 13:19:18 PST 2019 x86_64 x86_64 x86_64 GNU/Linux

Мы видим, что используется ядро kernel-uek-4.14.35-1902.7.3.1.el7uek.x86_64, то есть самое последнее.

Теперь подчистим старые ядра, всего будет 2 шага:
1. Чистка ядер версии 3.10 с помощью утилиты package-cleanup или чистка стандартным yum erase
2. Чистка ядер версии 4.14 (UEK), она возможна только с помощью yum erase

Чтобы установить утилиту package-cleanup выполните:

yum -y install yum-utils

После этого давайте оставим последние 2 ядра версии 3.10, выполним:

package-cleanup --oldkernels --count=2 -y

После этого утилита сама удалить все старые ядра версии 3.10 и оставит только 2 последних, самых свежих.

Если Вы не хотите пользоваться package-cleanup, то можно удалить ядра с помощью yum erase, попробуем:

yum erase -y kernel-3.10.0-1062.1.1.el7.x86_64
yum erase -y kernel-3.10.0-1062.1.2.el7.x86_64

Как Вы поняли, указать какие версии ядер нужно удалять придется вручную.

Теперь удалим старые ядра UEK, выполним:

yum erase -y kernel-uek-4.14.35-1902.3.2.el7uek.x86_64 kernel-uek-4.14.35-1902.5.2.el7uek.x86_64 kernel-uek-4.14.35-1902.5.2.2.el7uek.x86_64 kernel-uek-4.14.35-1902.6.6.el7uek.x86_64

Теперь посмотрим что у нас осталось:

# rpm -q kernel
kernel-3.10.0-1062.4.1.el7.x86_64
kernel-3.10.0-1062.7.1.el7.x86_64

# rpm -q kernel-uek
kernel-uek-4.14.35-1902.7.3.el7uek.x86_64
kernel-uek-4.14.35-1902.7.3.1.el7uek.x86_64

Отлично, осталось 2 ядра.

Обновим информацию в загрузчике Grub:

# grub2-mkconfig -o /boot/grub2/grub.cfg
Generating grub configuration file ...
Found linux image: /boot/vmlinuz-4.14.35-1902.7.3.1.el7uek.x86_64
Found initrd image: /boot/initramfs-4.14.35-1902.7.3.1.el7uek.x86_64.img
Found linux image: /boot/vmlinuz-4.14.35-1902.7.3.el7uek.x86_64
Found initrd image: /boot/initramfs-4.14.35-1902.7.3.el7uek.x86_64.img
Found linux image: /boot/vmlinuz-3.10.0-1062.7.1.el7.x86_64
Found initrd image: /boot/initramfs-3.10.0-1062.7.1.el7.x86_64.img
Found linux image: /boot/vmlinuz-3.10.0-1062.4.1.el7.x86_64
Found initrd image: /boot/initramfs-3.10.0-1062.4.1.el7.x86_64.img
Found linux image: /boot/vmlinuz-0-rescue-7c090a1e93314a8b9d4a372dd88c1431
Found initrd image: /boot/initramfs-0-rescue-7c090a1e93314a8b9d4a372dd88c1431.img
done

Перезагрузим сервер и посмотрим список ядер в загрузчике:

Boot Oracle Linux 7

Boot Oracle Linux 7

Все успешно!

На этом все, до скорых встреч. Если у Вас возникли вопросы или Вы хотите чтобы я помог Вам, то Вы всегда можете связаться со мной разными доступными способами.


Оставить комментарий

avatar
1000

Этот сайт использует Akismet для борьбы со спамом. Узнайте как обрабатываются ваши данные комментариев.

  Подписаться  
Уведомление о