Устраняем kernel panic после обновления ядра в CentOS

Устраняем kernel panic после обновления ядра в CentOS

Roman Bogachev VMware Specialist | Drone Pilot | Traveler

Система не загружается с ошибкой Kernel Panic - not syncing: VFS: Unable to mount root fs

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

В примере будет рассмотрен вариант с kernel-3.10.0-693.17.1.el7

Находим установленные пакеты:

1
2
3
4
5
6
7
# rpm -qa |grep "693.17.1"
kernel-tools-3.10.0-693.17.1.el7.x86_64
kernel-tools-libs-3.10.0-693.17.1.el7.x86_64
kernel-devel-3.10.0-693.17.1.el7.x86_64
python-perf-3.10.0-693.17.1.el7.x86_64
kernel-headers-3.10.0-693.17.1.el7.x86_64
kernel-3.10.0-693.17.1.el7.x86_64

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

1
2
3
4
5
6
yum reinstall kernel-tools-3.10.0-693.17.1.el7.x86_64
yum reinstall kernel-tools-libs-3.10.0-693.17.1.el7.x86_64
yum reinstall kernel-headers-3.10.0-693.17.1.el7.x86_64
yum reinstall python-perf-3.10.0-693.17.1.el7.x86_64
yum reinstall kernel-devel-3.10.0-693.17.1.el7.x86_64
yum reinstall kernel-3.10.0-693.17.1.el7.x86_64

Одной командой это можно выполнить так:

1
yum reinstall kernel-tools-3.10.0-693.17.1.el7.x86_64 kernel-tools-libs-3.10.0-693.17.1.el7.x86_64 kernel-headers-3.10.0-693.17.1.el7.x86_64 python-perf-3.10.0-693.17.1.el7.x86_64 kernel-devel-3.10.0-693.17.1.el7.x86_64 kernel-3.10.0-693.17.1.el7.x86_64

Находим все доступные ядра в системе:

1
awk -F\' '$1=="menuentry " {print i++ " : " $2}' /etc/grub2.cfg
1
2
3
4
5
6
0 : CentOS Linux (3.10.0-693.17.1.el7.x86_64) 7 (Core)
1 : CentOS Linux (3.10.0-693.5.2.el7.x86_64) 7 (Core)
2 : CentOS Linux (3.10.0-693.2.2.el7.x86_64) 7 (Core)
3 : CentOS Linux (3.10.0-514.16.1.el7.x86_64) 7 (Core)
4 : CentOS Linux (3.10.0-514.el7.x86_64) 7 (Core)
5 : CentOS Linux (0-rescue-46c550f369dc44009c606f234f9c2895) 7 (Core)

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

1
grub2-set-default 0

Генерируем конфигурационный файл grub:

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

Перезагружаемся и проверяем версию ядра в системе.

1
2
# uname -r
3.10.0-693.17.1.el7.x86_64
On this page