Почему может произойти Kernel panic в Linux?

«Почему может произойти Kernel panic в Linux?» — вопрос из категории Linux, который задают на 23% собеседований Devops Инженер. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Kernel panic — это критическая ошибка ядра Linux, при которой система не может безопасно продолжить работу и принудительно останавливается. Основные причины с точки зрения DevOps-инженера:

  1. Аппаратные сбои — проблемы с оперативной памятью (RAM), процессором (CPU), дисками или другими компонентами. Часто возникает в облачных или виртуальных средах из-за проблем с гипервизором или выделенными ресурсами.
  2. Повреждение файловой системы — особенно критично для корневого раздела (/). Может быть вызвано некорректным завершением работы, сбоем диска или ошибками в работе приложений.
  3. Ошибки в драйверах или модулях ядра — некорректные, несовместимые или самописные драйверы, особенно для сетевых карт или специализированного оборудования.
  4. Ошибки конфигурации или обновления ядра — проблемы при обновлении ядра, несовместимость параметров загрузки (grub) или использование нестабильных сборок.
  5. Перегрев или проблемы с питанием — срабатывание аппаратной защиты.

Пример лога Kernel panic:

Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(0,0)

Диагностика и профилактика в DevOps-практике:

  • Анализ логов: dmesg, journalctl -k, файлы в /var/log/kern.log.
  • Мониторинг железа: использование инструментов вроде smartctl для дисков, memtest86+ для памяти, мониторинг температуры датчиков.
  • Управление ядрами: использование стабильных LTS-версий ядра, тестирование обновлений на staging-среде, наличие отката (old kernel) в загрузчике.
  • Проверка целостности: автоматический запуск fsck при загрузке после некорректного выключения.
  • Конфигурация: проверка параметров ядра (/etc/sysctl.conf) и корректности initramfs.