Меню Закрыть

Grub update centos 7

Содержание

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

Вот почему очень важно вовремя обновлять ядро. Также в новых версиях, обычно, добавляются новые функции, улучшаются драйвера и многое другое. Кроме того, новое ядро позволит вам использовать все самые новые технологии. В этой статье мы рассмотрим как выполняется обновление ядра в CentOS несколькими способами.

Проверка версии ядра

Вместе с дистрибутивом устанавливается и определенная версия ядра. Перед тем как перейти к обновлению нужно сначала узнать какая версия установлена сейчас и нужно ли ее обновлять. Для этого есть команда uname:

Утилита покажет текущую версию вашего ядра, включая архитектуру, для которой оно было собрано. Чтобы посмотреть всю информацию можно использовать опцию -a:

Дальше откройте официальный сайт ядра kernel.org. Здесь вы можете видеть, что самая последняя на данный момент версия — это 4.10.8.

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

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

В большинстве дистрибутивов, и в том числе в CentOS предусмотрено обновление пакетов с помощью встроенного пакетного менеджера, например, yum или apt. Но тем не менее, такой способ позволяет обновить ядро CentOS только до последней версии, которая есть в репозитории. Естественно, что там еще нет самой свежей версии, которая есть на kernel.org.

В CentOS можно использовать репозиторий ELRepo, с помощью него можно выполнить обновление ядра CentOS 7 до самой новой версии. Сначала нужно подключить репозиторий к системе:

Читайте также:  Монтаж видео в инстаграмм приложение

sudo rpm —import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org
$ sudo rpm -Uvh http://www.elrepo.org/elrepo-release-7.0-2.el7.elrepo.noarch.rpm

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

sudo yum —disablerepo="*" —enablerepo="elrepo-kernel" list available

И так, сейчас мы видим, что доступна версия 4.10.8, а это самая новая стабильная версия, исходники которой есть на kernel.org. Дальше осталось установить версию ядра из этого репозитория:

sudo yum —enablerepo=elrepo-kernel install kernel-ml

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

Настройка загрузчика Grub

Для того чтобы новое ядро загружалось автоматически, необходимо поменять несколько параметров запуска дистрибутива в загрузчике Grub. Откройте конфигурационный файл /etc/defaul/grub и измените значение переменной GRUB_DEFAULT на 0:

Это означает, что по умолчанию будет использоваться первое ядро , которое находится в списке Grub. А первым обычно размещается именно самое новое. Чтобы обновить конфигурацию выполните команду:

sudo grub2-mkconfig -o /boot/grub2/grub.cfg

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

Выводы

Из этой статьи вы узнали как легко обновить ядро CentOS до самой последней версии. Но есть еще один метод, который мы здесь не рассматривали. Вы можете собрать ядро из исходного кода. Такой метод подходит не только для CentOS, но и для других дистрибутивов. С помощью него вы можете очень тонко настроить параметры ядра, а также внести различные оптимизации для улучшения работы системы. Но с такой же легкостью вы можете сломать свою систему.

Читайте также:  Konica minolta bizhub c450

В Ubuntu (и я думаю, в Debian тоже) есть системный скрипт с именем update-grub , который автоматически выполняет grub-mkconfig -o с правильным путем для файла конфигурации grub.

Есть ли подобная команда для распределений на основе Red Hat?

Если нет, то как система знает, где будет обновляться файл конфигурации grub при установке новой версии ядра?

6 ответов

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

Для каждого установленного пакета RPM вы можете запросить базу данных RPM для точных сценариев, которые входят в команду rpm :

Запуск этой команды в пакете ядра для CentOS 6 возвращается среди других:

new-kernel-package — инструмент для сценария установки ядра

После анализа скриптов в Fedora я понимаю, что путь к файлу конфигурации читается из символической ссылки /etc/grub2.conf . Правильная строка grub2-mkconfig :

В Fedora я использую:

, поскольку выполнение без опции readlink возвращает относительный путь и grub2-mkconfig выдает сообщение об ошибке:

Я использую параметр -e , так что если символическая ссылка не разрешает существующий файл, вывод выводится на stdout, поэтому я что-то пошло не так.

На странице man для readlink:

Символьная ссылка /etc/grub2.cfg указывает на версию BIOS. В системе UEFI используйте:

Вы также можете использовать:

отредактируйте файл grub с помощью vi или vim , сохранить изменения и закрыть редактор с помощью: wq!

Это то, что вам нужно запустить для обновления grub в RedHat или CentOS:

Скрипт update-grub в Ubuntu на самом деле просто заглушка для grub-mkconfig , и это могут быть адаптированы к другим дистрибутивам без большой боли. Здесь он полностью:

Читайте также:  Значок соли в посудомойке

Это эффективно делает то, что рекомендуется в викторине CentOS и в другие ответы здесь — единственная разница в том, что вам нужно изменить grub на grub2 в команде и пути вывода.

In Ubuntu (and I guess in Debian too) there is a system script named update-grub which automatically executes grub-mkconfig -o with the correct path for the grub configuration file.

Is there any similar command for Red Hat based distributions?

If not, how do the system knows where is the grub configuration file to update when a new kernel version is installed?

6 Answers 6

Specific actions that need to happen when a RPM package is installed or removed are included within the RPM package itself in pre-install, post-install, pre-uninstall and post-uninstall sections.

For every installed RPM package you can query the RPM database for the exact scripts that are included with the rpm command:

Running that command on a kernel package for CentOS 6 returns among others:

From the manual:

new-kernel-package — tool to script kernel installation

After analyzing the scripts in Fedora, I realize that the configuration file path is read from the symlink /etc/grub2.conf . The correct grub2-mkconfig line is thus:

Рекомендуем к прочтению

Добавить комментарий

Ваш адрес email не будет опубликован.