AddThis Smart Layers

воскресенье, 24 января 2016 г.

Апгрейд ядра CentOS 7

Как ни странно, но даже в седьмой версии CentOS все еще идет с ядром 3.10, в то время как давно уже вышла четвертая версия.
Ниже описана пошаговая инструкция по апгрейду ядра для дистрибутива CentOS 7 до четвертой версии.

На самом деле, ничего сложного в апгрейде ядра нет.



Сначала необходимо установить репозиторий.
Разумеется, все действия делаются под рутом.

# rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org
# yum install http://www.elrepo.org/elrepo-release-7.0-2.el7.elrepo.noarch.rpm

После этого удаляем заголовки старого ядра
# yum remove kernel-{firmware,headers,devel}

Устанавливаем текущую версию ядра и новых заголовков (на момент написания заметки текущей является версия 4.4.0)
# yum --enablerepo=elrepo-kernel install kernel-ml
yum install --enablerepo=elrepo-kernel kernel-ml-{firmware,headers,devel}

Далее, нужно убедиться в том, что новая версия ядра установлена и корректно прописана в автозагрузчике
# nano /boot/grub2/grub.cfg
На данном этапе важно ничего не изменять в этом файле, так как он генерируется динамически. Все что нам нужно - это убедиться в том, что новая версия ядра в нем указана и скопировать ее название.

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

Но, так как мы работаем с системой удаленно при помощи терминала SSH, увидеть выбор ядра при загрузке системы не представляется возможным (но если есть удаленный доступ через KVM это все упрощает), поэтому ядро по умолчанию будем устанавливать в ручном режиме.

На всякий случай проверим какое ядро загружется по умолчанию
# cat /etc/default/grub

В файле увидим следующую строку
GRUB_DEFAULT=saved

Что означает, что будет загружена последняя сохраненная версия.
Какая же версия ядра была загружена последней?
Это можно увидеть при помощи следующей команды
# grub2-editenv list

В ответ получим примерно следующее
saved_entry=CentOS Linux (3.10.0-229.20.1.el7.x86_64) 7 (Core)
Разумеется, точная версия может отличаться.

Далее, ручками изменяем версию ядра по умолчанию
# grub2-set-default [title number="" or=""]
Где title будет точный заголовок нового ядра, который мы увидели (и скопировали) ранее в файле /boot/grub2/grub.cfg

В моем случае новое ядро имеет следующий заголовок
CentOS Linux (4.4.0-1.el7.elrepo.x86_64) 7 (Core)

таким образом, команда по изменению ядра, загружаемого по умолчанию будет выглядеть следующим образом
# grub2-set-default 'CentOS Linux (4.4.0-1.el7.elrepo.x86_64) 7 (Core)'
Важно - весь заголовок оборачивается в одинарные кавычки.

После этого еще раз проверим версию ядра загружаемого по умолчанию
# grub2-editenv list

На этом этапе сохраняем новую конфигурацию автозагрузчика
# grub2-mkconfig -o /boot/grub2/grub.cfg

Ну и, наконец, перезагружаем систему
# reboot

После того, как система перезагрузилась можно проверить текущую версию ядра
# uname -r

В моем случае вывод будет таким
4.4.0-1.el7.elrepo.x86_64

На этом, собственно, апгрейд ядра CentOS 7 закончен.

1 комментарий :