ошибка grub: сначала необходимо загрузить ядро

Вопрос или проблема

Я устанавливаю Debian 9 на HP ProLiant DL180. Когда я загружаюсь с USB-накопителя, открывается grub2, и когда я ввожу boot, появляется ошибка: you need to load kernel first.

В grub-rescue введите set, затем нажмите Tab, это поможет вам установить первые параметры, например:

set prefix=(hd0,gpt2)/boot/grub
set root=(hd0,gpt2)
insmod normal
normal 

you need to load kernel first

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

insmod linux
linux /vmlinuz root=/dev/sda2
initrd /initrd.img
boot 

Замените /dev/sda2 на ваш корневой раздел, замените gpt2 на msdos, если у вас нет GUID таблицы разделов.

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

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

Команда для проверки статуса безопасной загрузки:

mokutil --sb-state

Вам нужно определить файл ядра и обычно файл initrd, а также командную строку ядра, прежде чем вы сможете выполнить команду boot (см. документацию Grub).

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

Столкнулся с той же ошибкой на рабочей станции с загрузочными разделами на обоих из двух жестких дисков (/dev/sda, /dev/sdb); не смог найти решение здесь или где-либо еще. Описываю свое собственное решение, найденное путем проб и ошибок:

После

grub2-mkconfig -o /boot/grub2/grub.cfg
grub2-install /dev/sda

в меню загрузки GRUB отображались все операционные системы, установленные в различных разделах на /dev/sda и /dev/sdb (Windows, SuSE 15.3 и более ранние). Загрузка записей с /dev/sda работала нормально, выбор из /dev/sdb выдавал ошибку

you need to load the kernel first…

/boot/grub2/grub.cfg показал два жестких диска как “hd0” и “hd1“. F2 при запуске показывает эти записи в BIOS (старый компьютер, нет EFI):

Main:

   SATA Port 0  [ST3500413AS]-(S0)]
   SATA Port 1  [Optiarc DVD RW-(S1)]
   SATA Port 2  None
   SATA Port 3  [ST3500413AS]-(S3)]
   SATA Port 4  None
   SATA Port 5  None

Boot -> Boot priority order:

    1:      SATA CD: Optiarc DVD RW-(S1)
    2:      Bootable Add-in Cards
    3:      SATA 0:  ST3500413AS-(S0)
    4:      SATA 3:  ST3500413AS-(S3)

Интересно, не вызывает ли проблема пустой SATA Port 2?

Мое решение состояло в том, чтобы вручную отредактировать /boot/grub2/grub.cfg (ужасно, явно не рекомендуется в заголовке файла!) и заменить все вхождения “hd1” на “hd2“. Затем снова:

grub2-install /dev/sda


Меню загрузки GRUB осталось таким же, но теперь загрузка работает для всех записей, включая те, что на /dev/sdb.

Спасибо @GAD3R за отличный стартовый совет.

Вот что я должен был сделать, чтобы все исправить после обновления CentOS 7 до CentOS 8:

insmod linux
linux /boot/vmlinuz<нажмите tab здесь> root=/dev/<sda1, vda1, sda2 или другой, выясните, где установлена ваша ОС>
initrd /init<нажмите tab здесь>
boot 

После загрузки обновите GRUB:
Для BIOS:

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

или для UEFI:

grub2-mkconfig -o /boot/efi/EFI/redhat/grub.cfg

https://access.redhat.com/solutions/2515741

Ответ или решение

Ошибка GRUB: «вы должны сначала загрузить ядро» при установке Debian 9 на сервер HP ProLiant DL180 — это проблема, связанная с загрузкой системы. Данная ошибка возникает, когда загрузчик GRUB не может найти или загрузить ядро операционной системы. Рассмотрим возможные решения проблемы и шаги для их устранения.

Анализ проблемы

При загрузке с USB-носителя, вы входите в GRUB2, и при попытке выполнить команду boot возникает указанная ошибка. Это может быть связано с неправильной конфигурацией загрузчика или проблемами с настройками BIOS/UEFI.

Шаги по устранению ошибки

  1. Проверка настроек BIOS/UEFI:

    • Secure Boot: Убедитесь, что Secure Boot выключен. Для этого:
      mokutil --sb-state

      Если Secure Boot активен, отключите его и попробуйте загрузиться вновь.

  2. Настройка загрузки через GRUB:

    • Войдите в режим grub-rescue и установите основные параметры:
      set prefix=(hd0,gpt2)/boot/grub
      set root=(hd0,gpt2)
      insmod normal
      normal
    • После этого, чтобы загрузить ядро Linux, выполните следующие команды:
      insmod linux
      linux /vmlinuz root=/dev/sda2
      initrd /initrd.img
      boot

      Замените /dev/sda2 на соответствующий вашему разделу диск. Если используется таблица разделов msdos, замените gpt2 на соответствующую конфигурацию, например, msdos.

  3. Обновление настроек GRUB:

    • Если вам удалось загрузить систему, необходимо обновить настройки GRUB. Для BIOS-систем выполните:
      grub2-mkconfig -o /boot/grub2/grub.cfg
      grub2-install /dev/sda
    • Если используется UEFI, то обновите конфигурационный файл для UEFI:
      grub2-mkconfig -o /boot/efi/EFI/redhat/grub.cfg

Диагностика аппаратного обеспечения

Если вы столкнулись с многодисковой конфигурацией, как в примере с /dev/sda и /dev/sdb, убедитесь, что BIOS распознает устройства корректно. В случае возникновения конфликтов проверьте идентификацию дисков и, при необходимости, вручную откорректируйте файл /boot/grub2/grub.cfg, обращая внимание на указания hd0, hd1 и их возможные изменения до hd2.

Заключение

Эти шаги должны помочь устранить ошибку «вы должны сначала загрузить ядро» в GRUB при установке Debian 9 на ваш сервер. Всегда сохраняйте резервные копии перед внесением изменений в системные файлы и настройки BIOS.

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


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

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

Капча загружается...