Поиск по сайту:

Как откатить ядро в Linux


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

Почему обновления ядра вызывают проблемы

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

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

Как загрузиться с другим ядром

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

Сначала вам нужно получить доступ к меню GRUB, перезагрузив компьютер. Вы можете увидеть, как GRUB появляется на несколько секунд при загрузке, отображая несколько параметров, таких как «Дополнительные параметры», хотя некоторые дистрибутивы скрывают его, пока вы не получите к нему доступ. Если он не появляется при загрузке, нажмите и удерживайте клавишу Shift в тот момент, когда ваш компьютер начнет загружаться, пока не появится экран, похожий на изображение ниже.

Используйте клавиши со стрелками, чтобы перейти к «Дополнительным параметрам для [вашего дистрибутива]» и нажмите Enter.

Вы получите список доступных вариантов загрузки. Вы должны увидеть как минимум два, например «[Ваш дистрибутив] с Linux 5.10.0.7-amd64», за которым следует версия того же параметра в «режиме восстановления». Различные версии, которые вы видите в списке, представляют собой разные установленные ядра.

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

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

Как удалить или понизить версию ядра

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

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

Попробуйте выполнить поиск в меню приложения по слову «ядро» и посмотрите, появятся ли какие-либо инструменты для рабочего стола. Если это так, вы, вероятно, сможете сделать это графически. В противном случае читайте дальше, чтобы удалить ядро через командную строку.

Удаление ядра в Debian и Ubuntu

Чтобы удалить ядро Linux в Debian, Ubuntu или одном из их производных, вы должны сначала определить установленные пакеты ядра. Откройте терминал и введите следующую команду.

apt list --installed | grep linux-image

Вы можете увидеть номера версий в каждом из имен пакетов, которые стоят перед косой чертой (/) в результатах. Получив имя ядра, которое вы хотите удалить, введите следующую команду, заменив kernel-name именем пакета ядра точно так же, как оно появилось в предыдущей команде.

sudo apt remove kernel-name

Вас попросят ввести пароль, а затем попросят подтвердить удаление, введя y и нажав Enter.

Дождитесь завершения удаления, и ваш ПК с Linux больше не будет загружаться в это ядро. Следите за новыми ядрами при обновлении системы и проверяйте их по мере их поступления, чтобы убедиться, что проблема устранена.

Удалить или понизить версию ядра в Arch

В Arch Linux вы можете легко получить несколько альтернативных ядер с такими именами, как linux-hardened, linux-zen и linux-lts. Выбирая вариант в GRUB, вы, вероятно, видели только одну версию каждого установленного ядра. В отличие от ядер в Debian, обновления ядра Arch не приходят в виде новых пакетов для замены старых. Вместо этого каждое установленное ядро просто обновляется (или «синхронизируется») до последней версии по мере ее появления.

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

sudo pacman -R kernel-name kernel-name-headers

Замена kernel-name на выбранное вами ядро. Вам будет предложено ввести пароль, прежде чем вы сможете продолжить. Затем вам нужно будет подтвердить удаление, набрав «y» и нажав Enter.

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

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

sudo pacman -S kernel-name=x.x.x kernel-name-headers=x.x.x

Замените kernel-name на ядро, которое вы хотите понизить, и x.x.x на нужную версию. Вы можете найти старые номера версий, выполнив поиск ядра в Arch Package Search и нажав «Просмотреть изменения».

Удалить ядро в Fedora

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

rpm -qa kernel-core

Вы увидите список всех установленных ядер рядом с номерами их версий.

После загрузки с другим ядром используйте dnf для удаления проблемного ядра.

sudo dnf remove kernel-core-x.x.x-xxx.fcxx.x86_64

Вам будет предложено подтвердить удаление. Введите y и нажмите Enter для подтверждения.

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