Заблокировать обновление ядра centos 7

Обновлено: 05.07.2024

Ядро операционной системы является основным ее элементом — оно выполняет функции распределения ресурсов и предоставления интерфейса для взаимодействия с оборудованием. Из соображений безопасности или обеспечения корректной работы современного оборудования может возникнуть необходимость обновления ядра.

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

Перед обновлением необходимо убедиться, что текущая версия ядра уже не обновлена. Это выполняется командой:

* в данном примере установлено ядро версии 3.10.0.

2. Установка ядра

Перед обновлением ядра, необходимо обновить саму систему:

После стоит перезагрузить систему:

С помощью yum

Самый быстрый и безопасный способ обновить ядро CentOS — воспользоваться автоматической установкой из репозитория. Минусом тут является то, что можно установить только ту версию, которая имеется в наличие в данном репозитории.

Последняя версии ядра для CentOS находится в репозитории ELRepo (не путать с EPEL). Сначала устанавливаем его.

Ссылка на последнюю версию репозитория ELRepo

Импортируем ключ репозитория:

Воспользовавшись ссылкой, устанавливаем сам репозиторий:

* список установленных репозиториев можно посмотреть командой yum repolist.

Теперь можно установить ядро:

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

Ручное обновление

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

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

Ссылка на скачивание ядра Linux

* в данном примере мы скопировали ссылку на нестабильную версию ядра 5.0.

Воспользовавшись ссылкой, скачиваем ядро на компьютер с Linux:

* если система вернет ошибку, нужно установить wget — yum install wget.

Распаковываем скачанный архив:

tar -xvf linux-5.0-rc8.tar.gz -C /usr/src

* в данном примере мы распаковываем архив linux-5.0-rc8.tar.gz в каталог /usr/src.

Переходим в каталог, куда распаковали исходник ядра:

Устанавливаем инструменты для компиляции пакетов:

yum groupinstall "Development Tools"

yum install ncurses-devel openssl-devel bc

Создаем свою конфигурацию для ядра:

Или используем текущую конфигурацию для ядра:

На все вопросы, которые задает система можно отвечать нажатием Enter, чтобы принимать значения по умолчанию.

* процедура может занять много времени.

После устанавливаем ядро и модули:

make modules_install install

3. Применение нового ядра

Чтобы система грузилась с использованием нового ядра, необходимо внести изменения в GRUB:

* данной настройкой мы говорим загрузчику использовать первое ядро для загрузки (первым идет последнее по версии ядро).

Применяем настройки для grub:

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

Можно перезагружать компьютер:

После загрузки проверяем текущую версию ядра:

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

При установке новой версии ядра, старые версии тоже сохраняются и их можно выбрать при загрузке CentOS.

Если управление осуществляется удаленно по SSH, мы должны подключить монитор к компьютеру и включить его. В процессе загрузки выскочит окно со списком систем:

Ссылка на скачивание ядра Linux

Выбираем вариант загрузки с предыдущей версией ядра.

Возможные ошибки

1. Фатальная ошибка: <путь до файла>: Нет такого файла или каталога.

Причина: в системе не установлен один из пакетов, содержащий необходимые библиотеки.

Решение: необходимо воспользоваться поисковиком, чтобы определить, какой именно пакет необходим для продолжения установки и воспользоваться командой yum install <имя пакета> для его установки.

2. [<путь до файла>] Ошибка 127

Например: [include/generated/timeconst.h] Ошибка 127

Причина: как и с предыдущей ошибкой, в системе не установлен один из пакетов, содержащий необходимые библиотеки.

Решение: аналогично предыдущему примеру решения проблемы, необходимо воспользоваться поисковиком, чтобы определить, какой именно пакет необходим для продолжения установки и воспользоваться командой yum install <имя пакета> для его установки.

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

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

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

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


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


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

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

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


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

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


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, но и для других дистрибутивов. С помощью него вы можете очень тонко настроить параметры ядра, а также внести различные оптимизации для улучшения работы системы. Но с такой же легкостью вы можете сломать свою систему.

1、 Centos Я использовал для тестирования - это версия 7.2, по умолчанию минимизирует установку, система системы составляет 3,10,0-327.

2、 После обновления до 4.4.x, если вы используете команду yum update -y, чтобы использовать команду yum update -y, вы будете продолжать устанавливать пакет ядра 3.10.0-693 в Centos7.4 и будет использоваться в качестве первого Пункт запуска.

3、 Каждый раз Y. UM Convanting -y, вам нужно использовать grub2-set-default 0 команда, Измените элемент загрузки ядра по умолчанию, 0-битный первый, 1 - во-вторых, нажмите «Далее», установите флажок «Загрузить меню GRUB» и настройте ссылку на меню «Пуск» по умолчанию:

Способ 1: (Создать, просмотреть, редактировать, использовать команды)

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

Способ 2: (Создание, просмотр, редактирование элемента запуска по умолчанию)

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

4, этот эксперимент не используется в производственной среде.

четыре, Запустите чертежи:

01- Импорт секретный ключ - Установка источника ELREPO - Установка Core .jpg


02- Импорт секретный ключ - установка источника ELREPO - установить ядро ​​.jpg


03 - Настройка GRUB CORE START - Просмотр запуска - Установите элемент запуска по умолчанию .jpg


04- Перезагрузка машины - по умолчанию устанавливается на новую версию ядра .jpg


05 - Перезагрузить машину - Просмотр новой версии ядра .jpg


06- Если выполняется команда yum update Kernel, ядро ​​to centos7.4 будет обновлено 3.10.0-693.jpg


07- Если команда kernel yernel yerm yernel выполняется, ядро ​​to centos7.4 будет обновлено 3.10.0-693.jpg



09- После установки 4,4.11 ядро, снова выполните команду yum update update еще раз, установите Core 3.10, и система автоматически переключается на ядро ​​3.10, вам нужно повторно вручную обозначать элемент 4.14.11. JPG


10- После установки ядра 4.4.11 снова выполните команду yum update снова, будет установлен сердечник 3.10, и система автоматически переключается на Core 3.10, и вам нужно вручную обозначить элемент 4.14. 11. JPG.

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

Чтобы следовать этому руководству, вам нужно быть root пользователем.

Установите Yum-cron в CentOS 7

Эта утилита доступна в репозитории CentOS 7, и для ее установки мы выполним следующее:

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

Таким образом, мы установили yum-cron в CentOS 7.

Настройка Yum-cron для автоматического обновления

После установки пакета yum-cron в CentOS 7 необходимо будет настроить его для автоматического обновления.

По умолчанию yum-cron предоставляет три типа обновлений:

  • Обновление по умолчанию с помощью команды:
  • Минимальное обновление
  • Обновление безопасности

Чтобы настроить эти значения, мы должны перейти в каталог с yum-cron.conf и получить к нему доступ на редактирование нужным редактором, в этом случае nano:

В этом файле мы должны перейти к строке update_cmd, чтобы определить тип обновления, которое будет исполнен вашей системой CentOS 7.

Теперь мы должны подтвердить, что в строке update_messages это значение yes

Наконец, необходимо будет подтвердить, что следующие строчки выставлены на yes

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

Если мы хотим получать уведомление по почте, мы установим следующее значение в строке emit_via:

Теперь мы можем определить адрес электронной почты:

Сохраните изменения, используя следующую комбинацию клавиш Ctrl + O и выйдите из редактора, используя Ctrl + X.

После обработки изменений перезапустите службу yum-cron, выполняя следующее.

С помощью этого процесса обновления системы будут автоматически загружаться и обновления будут применяться с использованием yum-cron ежедневно.

Настройка исключений для пакетов в CentOS 7

На этом этапе мы можем не применять автоматические обновления на некоторых пакетах, включая ядро CentOS 7.

Для этих исключений мы снова правим файл конфигурации:

В финальной части файла мы найдем базовый раздел, и мы должны добавить следующую строку, например, чтобы исключить ядро с MySQL:

В этом конкретном примере все пакеты с именами, начинающимися с «mysql» или «kernel», будут отключены для автоматического обновления.

Мы сохраняем изменения и перезапускаем службу, выполняя:

Yum-cron описание параметров

В этом конфигурационном файле yum-cron можно указать четыре основных параметра:

  • CHECK_ONLY (yes | no): этот параметр позволяет нам указать, будет ли он проверяться только при загрузке, но не для выполнения дополнительных действий (без их установки или загрузки).
  • DOWNLOAD_ONLY (yes | no): Применяется в случае, если не проверять наличие обновлений (CHECK_ONLY = NO), но этот параметр позволяет нам загружать и устанавливать или загружать только обновления, доступные для CentOS 7.
  • MAILTO (электронная почта): позволяет отправлять почту уведомления с результатом действий, выполняемых каждый раз, когда выполняется yum-cron.
  • DAYS_OF_WEEK («0123456»): этот параметр используется для указания, в какие дни недели будет проводиться проверка обновлений.

Проверка журналов Yum-cron в CentOs 7

Параметр yum-cron использует cronjob для автоматических обновлений безопасности, и все записи этого cron будут доступны в каталоге /var/log.

Чтобы увидеть эти записи, мы выполним следующее:

Если мы хотим посмотреть на установленные пакеты, мы запустим следующее:

С помощью этой опции yum-cron мы можем быть уверены, что обновления будут готовы к загрузке и установке, как только будет доступны.

Ниже представлен краткий мануал о выполнении обновления ядра CentOS 7.

1.1. Что такое ядро?

Ядро обеспечивает базовую функциональность операционной системы: создает процессы и управляет ими, распределяет память и обеспечивает доступ к файлам и периферийным устройствам. Когда компьютер включается и загружает Linux, первое, что загружается – ядро. Ядро инициализирует аппаратные компоненты системы: последовательные и параллельные порты, звуковые и сетевые карты, контроллеры IDE и SCSI и многое другое.

Возможность просто заменить деталь чем-то другим без проблем — вот что делает Linux великолепным.

Ваш дистрибутив постоянно просит вас обновить ядро? Зачем вам это делать, когда он работает нормально?

1.2. Исправления безопасности.

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

1.3. Улучшения стабильности.

Обновления ядра содержат не только исправления безопасности, но и другие проблемы, которые могут вызвать сбой системы при регулярном использовании. Некоторые люди утверждают, что постоянное обновление ядра фактически снижает общую стабильность системы, потому что вы будете работать на ядре, которое никогда не использовали, поэтому вы не можете предполагать, что оно будет работать так же, как ядро, на котором вы ранее работали. Хотя это также верно, этот запас довольно невелик, и только люди, которые используют серверы или другие важные системы, действительно должны быть осторожны. Для большинства обычных пользователей потребительского типа обновление вашего ядра намного перевешивает эти проблемы.

1.4. Обновленные драйверы.

Хотя это были обновления, которые вы получаете с небольшими обновлениями ядра (скажем, с 3.10.0 до 3.10.1), давайте посмотрим на некоторые улучшения, которые вы обычно можете увидеть с основными обновлениями (подумайте с 3.12 до 3.13).

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

Зная, что драйверы с открытым исходным кодом продолжают становиться все лучше и лучше, это тоже хорошо.

1.5. Новые функции ядра.

Иногда крупные обновления ядра в Linux также приносят некоторые новые функции. Эти функции в основном являются частями ядра, которые программы могут использовать для выполнения каких-либо задач или операций. Кроме того, другие функции также могут быть изменены. Скорее всего, вы не сломаете свою систему, если не будете обновлять ядро ​​именно по этой причине, но рано или поздно вы найдете программы и другие пакеты, для которых требуется определенная версия ядра. Лучше иметь последнюю версию, чтобы вы знали, что не столкнетесь с этой проблемой.

1.6. Увеличение скорости.

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

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

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

Первым делом обновим операционную систему и программное обеспечение:

Посмотрим текущую версию ядра Linux:

Ответ:


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

Ответ:


Если с местом в разделе /boot всё хорошо, то продолжаем обновление.

Если всё с местом в разделе /boot всё плохо, то чистим место до обновления вот этим способом:

Подключаем репозиторий ELRepo Project для CentOS 7.

Далее исполняем несколько команд, для подготовке к обновлению ядра.

Импортируем публичный ключ:

Чтобы вывести список доступных ядер, введите:

Система должна вернуть список доступных модулей.

Ответ:


Обратите внимание на строку в списке, в которой написано kernel-lt , что означает стабильный выпуск с долгосрочной поддержкой, или kernel-ml , который указывает на основной выпуск с более коротким сроком поддержки, но с более частыми обновлениями.

Затем посмотрите на правый столбец и обратите внимание на ряд букв и цифр, который выглядит примерно как 5.4.142-1.e17.elrepo . Это версия ядра.

Интересное наблюдение! Имея на одном и том же сервере одинаковые комплекты репозиториев для yum и dnf видимость содержимого репозиториев отображается по разному.

YUM:


DNF:


Устанавливаем само ядро актуальной стабильной версии с долгосрочной поддержкой с помощью yum или dnf:

или ядро с более коротким сроком поддержки, но с более частыми обновлениями:

После устаноки нужно версии ядра, требуется перезагрузить сервер:

Вам будет представлен GRUB или меню загрузки.

С помощью клавиш со стрелками выберите только что установленное ядро. GNU/Linux 5, затем нажмите Enter. Ваша операционная система должна нормально загрузиться.

Найдите время, чтобы проверить функциональность вашей системы CentOS 7. Все ли у вас программное обеспечение запускается правильно и без ошибок? Все ли ваши сетевые функции работают правильно?

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

Убедившись, что новое ядро совместимо и работает правильно, вы захотите отредактировать загрузочную утилиту GRUB так, чтобы по умолчанию она загружала ваше новое ядро.

Редактируем конфигурацию загрузчика:

Вносим изменения по смыслу в строку:

Ответ:


Посмотрим текущую версию ядра Linux:

Ответ:


3. Исправление возможных ошибок.

3.1. Закончившееся место в каталоге /boot.

Ошибка:

Иногда так бывает, что надо почистить старые ядра CentOS 7. Чаще всего это происходит после того, как вы поставили обновления и сервер банально перестал грузится. Причина – закончившееся место в каталоге /boot .

Решение:

3.2. Система работает неисправно.

Ошибка:

Бывает, что после обновления ядра, операционная система престает загружаться или не работают некоторые привычные функции. Например, пропала сетевая карта и никак не хочет находиться в системе.

Решение:

Если после процесса обновления сервер не загрузился на новом ядре или чего-то работает не так, как надо, то следует подключиться к серверу физически и выбрать старую версию ядра при загрузке из меню загрузки.

После возвращения на предыдущую версию ядра всё работает в штатном старом-добром режиме.

Затем вы можете удалить неисправное ядро ​​и сделать выбор: остаться с текущим ядром или подождать, пока не появится рабочее обновление.

Читайте также: