Раздел /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
Перезагрузим сервер и посмотрим список ядер в загрузчике:
Все успешно!
На этом все, до скорых встреч. Если у Вас возникли вопросы или Вы хотите чтобы я помог Вам, то Вы всегда можете связаться со мной разными доступными способами.
Профессионально занимаюсь системным администрированием Linux -серверов и баз данных (MySQL, PostgreSQL) на протяжении последних 24 лет.