Удаление старых ядер (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

Все успешно!

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


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