Centos откатить версию ядра

Обновлено: 07.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 <имя пакета> для его установки.

Используйте команду YUM history для отката операции обновления в системах RHEL / CentOS | Linux China

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

Yum (Yellowdog Update Modified) - это инструмент управления пакетами RPM, используемый в системах CentOS и RedHat. yum history Команда позволяет системному администратору откатить систему к предыдущему состоянию, но из-за определенных ограничений откат может быть успешным не во всех случаях, иногда yum Команда может ничего не делать, а иногда может удалять некоторые другие пакеты.

Я предлагаю вам сделать полную резервную копию системы перед обновлением, и yum history Его нельзя использовать вместо резервного копирования системы. Резервное копирование системы позволяет в любой момент восстановить систему до состояния узла.

◈ Используйте команды YUM для управления пакетами программного обеспечения в системах RHEL / CentOS [1] ◈ Используйте команду DNF (ветвь YUM) для управления пакетами программного обеспечения в системе Fedora. [2] ◈ Как сделать так, чтобы команда истории отображала дату и время [3]

В некоторых случаях установленное приложение не работает нормально или после обновления патча появляются ошибки (могут быть вызваны несовместимостью библиотек или обновлением программного пакета). Что мне делать?

Свяжитесь с командой разработчиков приложения и выясните, где проблема вызывает библиотеку и программный пакет, а затем используйте yum history Заказать откат.

◈ Он не поддерживает откат selinux, selinux-policy- *, kernel, glibc (и пакетов, зависящих от glibc, таких как gcc). ◈ Не рекомендуется понижать версию системы до более низкой версии (например, переходить с CentOS 6.9 на CentOS 6.8), так как это приведет к нестабильному состоянию системы.

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

Ты найдешь git Пакет можно обновить, так что давайте поэкспериментируем. Выполните следующую команду, чтобы получить информацию о версии программного пакета (текущая установленная версия и версия, которую можно обновить).

Выполните следующую команду, чтобы изменить git Из 1.7.1-8 обновитесь до 1.7.1-9 。

После проверки обновления git Версия.

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

Используйте команду YUM history, чтобы откатить операцию обновления

Сначала используйте следующую команду, чтобы получить идентификатор операции yum. Следующие выходные данные четко перечисляют всю необходимую информацию, такую ​​как идентификатор операции, кто выполнил операцию (имя пользователя), дату и время операции, действие операции (установка или обновление) и количество затронутых пакетов. по операции.

Приведенная выше команда показывает, что затронуты два пакета, потому что git Он также обновил свой пакет зависимостей perl-Git . Выполните следующую команду, чтобы просмотреть подробную информацию об операции.

Выполните следующую команду, чтобы откатиться git Пакет до предыдущей версии.

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

Используйте команду YUM downgrade, чтобы откатить обновление

Кроме того, мы также можем использовать YUM downgrade Команда отката обновления.

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

Что касается пользователей Fedora

Команды такие же, вам нужно только изменить имя диспетчера пакетов с yum Изменить на dnf Вот и все.

Автор: 2daygeek [5] Переводчик: lujun9972 Вычитка: wxy

Эта статья состоит из LCTT Оригинальная компиляция, Linux Китай Запуск Honor


Переводчик LCTT lujun9972 ? ? ? ? Общий перевод: 72 Статьи Срок вклада: 49 дней

<Проведите пальцем влево и вправо, чтобы просмотреть похожие статьи>







Нажмите на картинку, введите идентификатор статьи или определите QR-код, чтобы перейти напрямую

Как удалить старые ядра CentOS 7


А зачем их удалять, собственно, если в CentOS по-умолчанию количество хранимых старых ядер равно 5 (привет, default Ubuntu 16 и 18, где весь boot рано или поздно будет забит до 100%), за что отвечает параметр installonly_limit в /etc/yum.conf? Например, при сбое установки обновлений система может зависать на определеном ядре, а если выбрать другую версию ядра, все будет в порядке. То есть задача может быть просто удалить конкретное ядро, которое точно не нужно. Или если у вас раздел boot слишком маленький и доводить его до заполнения не стоит. Причин может быть много.

Перед тем, как удалять ненужные ядра, нужно понять, какое ядро сейчас загружено:

Список установленных ядер:

Каждое ядро имеет размер 15-20, а то и под 150 Мб, поэтому, например на микро VPS, держать лишнее место под ненужные ядра может быть не очень здорово.

Удалить конкретное ядро

Совет1: если вы давно не перезагружали хост, обратите внимание на то, что текущее загруженное ядро не будет самой последней версией. Возможно, есть смысл перезагрузить хост перед тем, как кардинально чистить ядра, чтобы не получить проблему при следущей штатной перезагрузке, когда где-либо всплывет зависимость от того ядра, которое вы удалили.

Совет2: несмотря на простоту ручного удаления файлов ядер из директории /boot, лучше этого не делать, пока штатные средства CentOS позволяют удалить ядра.

Удалим, к примеру, три ненужных ядра, укажем какие именно:

Утилита package-cleanup

Удалять старые ядра в CentOS можно с помощью утилиты package-cleanup:

В данном случае ненужных ядер уже нет, но если бы были, то утилита оставила бы 2 старых (предыдущих) ядра.

Другой пример, из man package-cleanup :
Удалить старые ядра, оставив два, и оставить установленные kernel-devel:
package-cleanup --oldkernels --count=2 --keepdevel

Автоудаление ядер в CentOS

Как уже отмечалось выше, в CentOS есть удобная возможность управлять количеством ядер. За это отвечает параметр installonly_limit в файле /etc/yum.conf. По-умолчанию, он равен 5. Практичски для всех нормальных ситуаций этого достаточно. Но это уже решать вам.

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

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