Как откатить ядро в 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 вы можете определить имена пакетов.
Вы увидите список всех установленных ядер рядом с номерами их версий.
После загрузки с другим ядром используйте dnf для удаления проблемного ядра.
sudo dnf remove kernel-core-x.x.x-xxx.fcxx.x86_64
Вам будет предложено подтвердить удаление. Введите y и нажмите Enter для подтверждения.
После удаления ядра ваша система не сможет загрузиться с более новым ядром, пока вы не разрешите обновление ядра. Когда появится новый, попробуйте его и посмотрите, решена ли ваша проблема.
Откат системы Ubuntu
Было бы неплохо иметь возможность спокойно обновлять систему или попробовать новую версию дистрибутива не боясь проблем и ошибок, зная что вы всегда можете откатить Ubuntu назад к прежнему состоянию. В этой статье мы рассмотрим инструмент, который позволяет сделать снимок состояния системы Ubuntu в любое время. TimeShift очень похож на функцию восстановления системы в Windows, программа позволяет восстановить состояние ubuntu. Сначала вы создаете снимок, можете запланировать автоматическое создание снимков через заданные промежутки времени, а затем просто восстанавливаете систему.
TimeShift защищает только системные файлы и настройки, но не восстанавливает пользовательские данные, такие как фото, музыка, документы. Если вам нужно делать резервную копию именно таких файлов, придется использовать другие инструменты.
Установка TimeShift
В современных версиях Ubuntu программа Timeshift уже есть в официальных репозиториях, поэтому для установки достаточно выполнить:
sudo apt install timeshift
Для выполнения команды понадобятся права суперпользователя, поэтому вам нужно будет ввести пароль.
Когда установка завершится, можете закрыть окно терминала, а программа будет доступна в главном меню. Для того чтобы её найти наберите в строке поиска Timeshift:
Откат системы Ubuntu
Для работы программы нужны права root, поэтому после запуска появится окно с запросом пароля. Введите его и нажмите Ok.
При первом запуске утилиту надо настроить. Сначала мастер настройки спросит вас каким способом создавать снимки файловой системы. Доступно два варианта: с помощью утилиты rsync или встроенными средствами Btrfs. Если вы используете не файловую систему ext4, то вариант с Btrfs не подойдёт. Снимки rsync будут инкрементные, сначала программа скопирует все системные файлы, затем в каждом новом снимке будут копироваться только измененные:
Затем надо выбрать устройство, на котором надо сохранять снимки. Поддерживаются только разделы, отформатированные в файловые системы Linux, такие файловые системы как FAT и NTFS не поддерживаются:
Далее надо настроить автоматическое создание снимков. Если вы хотите его отключить просто снимите все галочки. Я указал создавать снимок файловой системы каждый месяц. Ещё здесь можно настроить сколько таких снимков надо сохранять. По умолчанию сохраняется пять последних снимков:
На следующем шаге надо выбрать добавлять ли домашние каталоги пользователей в снимок. Можно их вовсе не добавлять, добавлять только скрытые файлы или все файлы. Для экономии места на диске домашние каталоги лучше оставить исключёнными (Exclude all files):
Только теперь перед вами откроется главное окно программы:
Здесь отображается свободное место, доступное для создания снимков, а также все снимки, созданные на данный момент. Для создания первого снимка нажмите кнопку Создать:
После завершения создания снимка он появится в списке:
Вы можете посмотреть его содержимое нажав кнопку Обзор:
Физически в файловой системе все снимки находятся в директории /timeshift. Здесь есть каталоги, как с уже созданными снимками, так и пустые, для запланированных. Подкаталог snapshots содержит снимки, созданные вручную. Лучше скопировать снимок на USB флешку, другой диск или загрузить на один из облачных сервисов, на случай если диск будет поврежден, и вам нужно будет откатить обновления Ubuntu.
Все настройки, которые мы задавали с помощью мастера при первом запуске программы можно найти кликнув по кнопке Настройки:
Для того чтобы выполнить откат системы Ubuntu просто выберите нужный снимок и нажмите кнопку Восстановить:
В открывшимся окне вы можете выбрать устройство, на которое нужно восстановить систему. Вы можете выбрать то же самое устройство или же развернуть систему на другом диске, таким образом, это будет не откат системы ubuntu, а установка системы на другой диск. Если навести указатель мыши на устройство, можно посмотреть более подробную информацию о нем.
Выберите устройство для восстановления корневой файловой системы Если вы считаете, что загрузчик тоже был повреждён, то нажмите кнопку Дополнительные параметры загрузчика, и выберите устройство для его восстановления:
После завершения настроек нажмите кнопку Далее чтобы отменить изменения Ubuntu. Программа покажет файлы, которые были изменены, подтвердите, что надо откатить изменения:
Затем система перезагрузится:
После этого вы вернетесь в систему, какой она была во время создания снимка, при чём заменены будут только системные файлы, пользовательские файлы останутся на месте.
Если ваша система повреждена, то скорее всего у вас нет доступа к графическому интерфейсу. Но у timeshift есть возможность работать и через терминал. Для просмотра доступных снимков выполните:
Далее вы можете восстановить нужный вам снимок такой командой:
sudo timeshift —restore —snapshot —target /dev/sda
После этого утилита спросит нужно ли устанавливать загрузчик, и если да, то на какой диск:
Затем попросит подтверждения восстановления и после этого компьютер перезагрузится.
Выводы
TimeShift это очень полезный инструмент, если вы любите экспериментировать с обновлениями системы. Он очень пригодится если что-то пойдет не так. Также, как и в Windows, вы можете просто выполнить откат системы Ubuntu к предыдущему состоянию и дальше экспериментировать не переустанавливая систему. Вы даже можете откатить ubuntu до первоначального состояния, просто создав снимок сразу после установки.
Обнаружили ошибку в тексте? Сообщите мне об этом. Выделите текст с ошибкой и нажмите Ctrl+Enter.