Вопрос или проблема
Проблема в том, что Rocky 9 был установлен на /dev/sdb
Затем была сделана новая установка на зеркале nvme дисков.
В итоге получилось две установки.
Меню grub при загрузке теперь выглядит так:
После входа в экземпляр 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 не срабатывает из-за конфликта или неправильного поведения инструментария.
Применение:
-
Идентификация корня проблемы:
- Убедитесь, что вы загружены с NVMe-диска, используя команду
lsblk
илиfdisk -l
, чтобы проверить, где установлен работающий загрузчик. - Также, проверьте текущую загрузочную запись (boot entry) с помощью команды
efibootmgr
(если используется UEFI).
- Убедитесь, что вы загружены с NVMe-диска, используя команду
-
Обновление и восстановление конфигурации GRUB:
-
Попробуйте переустановить загрузчик GRUB на диск, который используется для загрузки:
# Перезагрузитесь в систему на NVMe-диске. grub2-install /dev/nvme0n1 # укажите правильный NVMe-диск
-
Пересоздайте файл конфигурации GRUB:
grub2-mkconfig -o /boot/grub2/grub.cfg
-
-
Проверка и очистка:
- Проверьте файл
/etc/default/grub
и директорию/etc/grub.d
на наличие неправильных ссылок или скриптов, которые могут добавлять неактуальные записи. -
Если используется UEFI, выполните также:
grub2-install --efi-directory=/boot/efi
- Проверьте файл
-
Ручное редактирование:
- Если автоматические команды не решают проблему, вручную отредактируйте файл
/boot/grub2/grub.cfg
с целью удаления неактуальных записей, но делайте это с осторожностью, чтобы не повредить жизненно важные входы.
- Если автоматические команды не решают проблему, вручную отредактируйте файл
Следуя этим шагам, вы сможете обновить grub.cfg на вашем установке Rocky Linux или RHEL 9, обеспечив правильное отображение всех актуальных систем в GRUB.