Перейти к основному содержимому
Вернуться в категорию

Обновление ядра и управление GRUB: безопасное руководство

Обновление ядра с apt/yum, проверка текущей версии ядра, настройка GRUB, откат к предыдущему ядру и безопасное управление ядром на Linux-серверах.

Время чтения: 12 мин Управление сервером
ядроgrublinux kernelобновлениеaptyumоткат

Содержание

Обновление ядра и управление GRUB: безопасное руководство

Ядро Linux — это основа операционной системы, связывающая аппаратное и программное обеспечение. Обновления ядра закрывают уязвимости безопасности, добавляют поддержку нового оборудования и улучшают производительность. В этом руководстве рассматривается процесс обновления ядра, настройка GRUB и откат к предыдущей версии ядра при возникновении проблем.

Проверка текущей версии ядра

hljs bash
# Просмотр запущенной версии ядра
uname -r

# Подробная информация о ядре
uname -a

# Список всех установленных версий ядра (Ubuntu/Debian)
dpkg --list | grep linux-image

# RHEL/CentOS/AlmaLinux
rpm -qa | grep kernel

Обновление ядра

Обновление ядра на Ubuntu/Debian

hljs bash
# Обновить список пакетов
sudo apt update

# Список доступных обновлений
apt list --upgradable | grep linux

# Обновить всю систему (включая ядро)
sudo apt upgrade -y

# Обновить только ядро
sudo apt install linux-image-generic linux-headers-generic

# Установить конкретную версию ядра
sudo apt install linux-image-5.15.0-91-generic

# Перезагрузить после обновления
sudo reboot

Обновление ядра на RHEL/CentOS/AlmaLinux

hljs bash
# Обновить список пакетов
sudo dnf update

# Обновить только ядро
sudo dnf update kernel

# Список установленных версий ядра
sudo dnf list installed kernel

# Перезагрузить после обновления
sudo reboot

После обновления ядра требуется перезагрузка. Сохраните все важные данные и запишите запущенные службы перед перезагрузкой.

Проверка после обновления

hljs bash
# Проверить новую версию ядра
uname -r

# Проверить системные журналы
sudo journalctl -b | head -50

# Проверить критические службы
sudo systemctl status nginx
sudo systemctl status mysql

Настройка GRUB

GRUB (Grand Unified Bootloader) — загрузчик в Linux-системах. Управляет тем, какое ядро загружается при наличии нескольких установленных версий.

Просмотр меню GRUB

hljs bash
# Список записей меню GRUB
grep -E "^menuentry|^submenu" /boot/grub/grub.cfg

# Читаемый формат
grep -E "menuentry '" /boot/grub/grub.cfg | head -20

# Текущее ядро по умолчанию
grub-editenv list

Файл конфигурации GRUB

hljs bash
# Редактировать основной файл конфигурации GRUB
sudo nano /etc/default/grub
hljs bash
# Важные параметры GRUB:

# Выбор ядра по умолчанию (0 = первое, 1 = второе и т.д.)
GRUB_DEFAULT=0

# Время ожидания меню (секунды)
GRUB_TIMEOUT=5

# Всегда показывать меню
GRUB_TIMEOUT_STYLE=menu

# Параметры ядра
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"
hljs bash
# Обновить конфигурацию GRUB
sudo update-grub  # Ubuntu/Debian
sudo grub2-mkconfig -o /boot/grub2/grub.cfg  # RHEL/CentOS

Изменение ядра по умолчанию

hljs bash
# Список записей меню GRUB с номерами
awk -F\' '/menuentry / {print i++" : "$2}' /boot/grub/grub.cfg

# Изменить ядро по умолчанию (индекс с 0)
sudo grub-set-default 1

# Проверить изменение
grub-editenv list

# Обновить GRUB
sudo update-grub

Откат к предыдущей версии ядра

Метод 1: Ручной выбор из меню GRUB

При перезагрузке сервера в меню GRUB:

  1. Выберите Дополнительные параметры для Ubuntu
  2. Выберите старую версию ядра из списка
  3. Нажмите Enter для загрузки

Для удалённых серверов используйте функцию KVM/VNC-консоли в панели управления REXE для доступа к меню GRUB.

Метод 2: Установка старой версии ядра по умолчанию

hljs bash
# Список установленных версий ядра
dpkg --list | grep linux-image | grep -v meta

# Найти полное имя записи меню
grep "menuentry '" /boot/grub/grub.cfg | grep "5.15.0-88"

# Установить по умолчанию
sudo grub-set-default "Advanced options for Ubuntu>Ubuntu, with Linux 5.15.0-88-generic"

# Обновить GRUB
sudo update-grub

# Перезагрузить
sudo reboot

Метод 3: Удаление проблемного ядра

hljs bash
# Удалить проблемную версию ядра (Ubuntu/Debian)
sudo apt remove linux-image-5.15.0-91-generic
sudo apt autoremove

# Обновить GRUB
sudo update-grub

Параметры ядра

hljs bash
# Просмотр текущих параметров ядра
cat /proc/cmdline

# Изменить параметр во время выполнения (временно)
sudo sysctl -w net.ipv4.ip_forward=1

# Постоянное изменение параметра
sudo nano /etc/sysctl.d/99-custom.conf

# Применить изменения
sudo sysctl -p

Распространённые параметры ядра

hljs bash
# Производительность сети
net.core.somaxconn = 65535
net.ipv4.tcp_max_syn_backlog = 65535

# Управление памятью
vm.swappiness = 10
vm.dirty_ratio = 15

# Файловая система
fs.file-max = 2097152

Безопасная стратегия обновления для производственных серверов

hljs bash
# 1. Создать резервную копию
rsync -avz /var/www/ backup-server:/backup/

# 2. Сначала протестировать в тестовой среде

# 3. Запланировать окно обслуживания
# Обновлять в часы низкого трафика

# 4. Обновить и перезагрузить
sudo apt update && sudo apt upgrade -y
sudo reboot

# 5. Проверить службы
sudo systemctl status nginx mysql

Не применяйте обновления ядра на производственных серверах немедленно — сначала протестируйте их в тестовой среде. Для критических систем планируйте окно обслуживания.

Устранение неполадок

Система не загружается после обновления ядра

hljs bash
# Доступ к меню GRUB через KVM-консоль REXE
# Выбрать старое ядро в дополнительных параметрах

# После загрузки со старым ядром удалить проблемное
sudo apt remove linux-image-[проблемная-версия]
sudo update-grub

Модуль ядра не загружается

hljs bash
# Список загруженных модулей
lsmod

# Загрузить модуль
sudo modprobe имя-модуля

# Проверить журналы ядра
sudo dmesg | tail -50

Заключение

Обновления ядра критически важны для безопасности и производительности Linux-серверов. Регулярные обновления ядра закрывают уязвимости и позволяют использовать новые функции. Понимание конфигурации GRUB позволяет быстро откатиться к предыдущей версии ядра при возникновении проблем.