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

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

Сначала посмотрим текущую версию (у меня отобразилось 4.15.0-46-generic):

uname -a
uname -r

Для теста я взял Ubuntu Server 18.04, система была на виртуальном стенде и как раз давно не обновлялась, специально выполнил обновление:

sudo apt update
sudo apt upgrade

Перезапустим систему чтобы она загрузилась с новой версии ядра и потом снова посмотрим версию (у меня уже отобразилась версия новее — 4.15.0-47-generic):

sudo reboot
uname -r

Логи установки обновлений если что можно посмотреть в /var/log/dpkg.log и /var/log/apt/.

Если есть прямой доступ к серверу, то можно при запуске системы в grub меню выбрать «Advanced options for Ubuntu» и потом выбрать нужное ядро, однако после перезапуска системы все равно потом запустится самое новое.

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

sudo nano /etc/default/grub

И вместо «GRUB_DEFAULT=0» укажем (в редакторе nano для выхода нажмем Ctrl+X и «y» для сохранения изменений):

#GRUB_DEFAULT=0
GRUB_DEFAULT="1>2"

Так как нумерация меню grub идет с 0, 0 — это обычная загрузка системы, то в первом меню «Advanced options for Ubuntu» будет под номером 1, а во втором меню где нужно выбрать ядро «4.15.0-46-generic» будет под номером 2. Посмотреть меню можно в файле /boot/grub/menu.lst.

Установленные ядра находятся в директории /boot/, можно также посмотреть командой:

sudo dpkg -l | grep linux-image
ls /boot/

Обновим grub чтобы применить изменения:

sudo update-grub

Перезапустим систему и снова проверим версию ядра (в моем случае система загрузилась со старого ядра 4.15.0-46-generic):

sudo reboot
uname -r

Также можно найти и установить другую версию ядра (смотрите чтобы хватало памяти в директории /boot/, если она находится на отдельном разделе):

sudo apt-cache policy linux-image-4.15.0-45
sudo apt install linux-image-4.15.0-45-generic

Это ядро будет в меню скорее всего под номером 4, по этому укажем его в файле /etc/default/grub и потом перезапустим систему:

GRUB_DEFAULT="1>4"

Также можно оставить «GRUB_DEFAULT=0» и удалить новое ядро, после чего предыдущее станет основным, но лучше так не делать:

sudo apt remove linux-image-4.15.0-47-generic

Смотрите также мою статью:
Обновление Ubuntu 14.04 до 16.04

Оставьте комментарий

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