Как исправить grub.cfg на Rocky Linux или RedHat (RHEL) 9

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

Проблема в том, что Rocky 9 был установлен на /dev/sdb

Затем была сделана новая установка на зеркале nvme дисков.

В итоге получилось две установки.

Меню grub при загрузке теперь выглядит так:

enter image description here

После входа в экземпляр NVME /dev/sdb был стерт/отформатирован. Как теперь можно обновить grubby?

grub2-mkconfig не изменил ничего.

# grubby --info=ALL
index=0
kernel="/boot/vmlinuz-5.14.0-503.14.1.el9_5.x86_64"
args="ro crashkernel=1G-4G:192M,4G-64G:256M,64G-:512M resume=UUID=xx-xx-xx-xx-xx rd.md.uuid=xx:xx:xx:xx  rd.md.uuid=xx:xx:xx:xx rhgb quiet"
root="UUID=xxx-xx-xx-xx-xxxxxx"
initrd="/boot/initramfs-5.14.0-503.14.1.el9_5.x86_64.img $tuned_initrd"
title="Rocky Linux (5.14.0-503.14.1.el9_5.x86_64) 9.5 (Blue Onyx)"
id="xxxxxxxx-5.14.0-503.14.1.el9_5.x86_64"
index=1
kernel="/boot/vmlinuz-0-rescue-xxxxx"
args="ro crashkernel=1G-4G:192M,4G-64G:256M,64G-:512M resume=UUID=xxx-xx-xx-xx-xxxx rd.md.uuid=xxx:xx:xxx:xx rd.md.uuid=xx:xxx:xx:xx rhgb quiet"
root="UUID=xxx-xxx-xx-xx-xxxx"
initrd="/boot/initramfs-0-rescue-xxxxxxxxxxxxxxx.img"
title="Rocky Linux (0-rescue-xxxxxxxxxxxx) 9.5 (Blue Onyx)"
id="xxxxxxxxxxxxx-0-rescue"

Но grub.cfg не показывает вышеуказанные записи. Вместо этого он отображает записи для /dev/sdb, который больше не существует. (перезагрузка выполнена, grub2-mkconfig выполнен.)

следующие записи все еще существуют, даже после удаления ОС из sdbX:

# grep vmlin grub.cfg
    menuentry 'Rocky Linux 9.5 (Blue Onyx) (on /dev/sdb4)' --class gnu-linux --class gnu --class os $menuentry_id_option 'osprober-gnulinux-/vmlinuz-0-rescue-20f9a6591517409c8be447f93789326b--03cec82b-ca14-49a7-806e-0ad067695091' {
        linux /vmlinuz-0-rescue-20f9a6591517409c8be447f93789326b root=/dev/sdb4
    menuentry 'Rocky Linux 9.5 (Blue Onyx) (on /dev/sdb4)' --class gnu-linux --class gnu --class os $menuentry_id_option 'osprober-gnulinux-/vmlinuz-5.14.0-503.14.1.el9_5.x86_64--03cec82b-ca14-49a7-806e-0ad067695091' {
        linux /vmlinuz-5.14.0-503.14.1.el9_5.x86_64 root=/dev/sdb4

Как это можно исправить?

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

Теория:

GRUB (GRand Unified Bootloader) — это загрузчик, который используется для управления различными операционными системами на компьютере. В Rocky Linux и RedHat Enterprise Linux (RHEL) GRUB отвечает за загрузку ядра операционной системы и инициализацию её работы. Файл конфигурации grub.cfg содержит информацию о параметрах загрузки и расположении операционных систем. Если у вас несколько установок, важно, чтобы этот файл имел актуальную информацию о доступных системах.

Проблема, указанная в описании, связана с тем, что после установки новой системы на NVMe-диске и удаления данных с /dev/sdb, конфигурация GRUB всё ещё содержит ссылки на старое ядро, что может привести к неправильно отображающемуся меню загрузки GRUB.

Пример:

Предположим, что после выполнения команды grubby --info=ALL вы видите только актуальные ядра систем, а команда grub2-mkconfig не обновляет файл grub.cfg, который всё ещё содержит старые ссылки на отформатированный /dev/sdb. Это может свидетельствовать о том, что система сохранения изменений в GRUB не срабатывает из-за конфликта или неправильного поведения инструментария.

Применение:

  1. Идентификация корня проблемы:

    • Убедитесь, что вы загружены с NVMe-диска, используя команду lsblk или fdisk -l, чтобы проверить, где установлен работающий загрузчик.
    • Также, проверьте текущую загрузочную запись (boot entry) с помощью команды efibootmgr (если используется UEFI).
  2. Обновление и восстановление конфигурации GRUB:

    • Попробуйте переустановить загрузчик GRUB на диск, который используется для загрузки:

      # Перезагрузитесь в систему на NVMe-диске.
      grub2-install /dev/nvme0n1  # укажите правильный NVMe-диск
    • Пересоздайте файл конфигурации GRUB:

      grub2-mkconfig -o /boot/grub2/grub.cfg
  3. Проверка и очистка:

    • Проверьте файл /etc/default/grub и директорию /etc/grub.d на наличие неправильных ссылок или скриптов, которые могут добавлять неактуальные записи.
    • Если используется UEFI, выполните также:

      grub2-install --efi-directory=/boot/efi
  4. Ручное редактирование:

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

Следуя этим шагам, вы сможете обновить grub.cfg на вашем установке Rocky Linux или RHEL 9, обеспечив правильное отображение всех актуальных систем в GRUB.

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

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