отсутствует grubx64.efi

Вы не должны пытаться это сделать, по ряду причин (, подробно описанных в других ответах ):/foo/oldPath, может быть точкой монтирования, или может присутствовать оверлейная файловая система, препятствующая перемещению файлов. Вы даже можете столкнуться с монтированием привязки для отдельных файлов, что также вызовет проблемы при переименовании файлов.

Вместо того, чтобы пытаться заранее определить, можно ли переименовать файлы, следует попытаться переименовать их и устранить ошибки.renameвернет -1, если произойдет ошибка, а errnoбудет установлено на EXDEV, если переименование невозможно из-за проблем с перекрестным -монтированием. Затем вы можете действовать другим способом (скопировать и удалить ).

В общем случае, чтобы определить, находятся ли два объекта файловой системы в одной и той же файловой системе, следует запустить для нихstatи посмотреть идентификатор устройства (в поле st_devвstruct stat). Два объекта файловой системы в одной и той же файловой системе будут иметь одинаковый идентификатор устройства.

1
17.05.2020, 03:48
2 ответа

Это иногда происходит в системах, которые неправильно сохраняют переменные EFI. (В частности, я часто видел это с CentOS на VirtualBox. )Я использую обходной путьcp redhat/grubx64.efi BOOT/BOOTX64.EFI(после создания BOOT/, если он еще не существует ). Если вы не используете одну загрузочную систему -, которую вы всегда хотите загружать в GRUB, вам придется правильно исправить ее с помощью efibootmgr, но обратите внимание, что если ваш EFI не работает, это исправление не будет последний либо.

1
28.04.2021, 23:16

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

  1. Войдите в режим восстановления с помощью загрузочного диска RHEL.

  2. Смонтируйте разделы вашей системы root, bootи EFIво временное дерево каталогов, такое как /tmp, /tmp/bootи /tmp/boot/efiсоответственно, а затем chrootтуда (, например chroot /tmp).

  3. Убедитесь, что вы подключены к Интернету. Если нет, подключитесь с помощью nmtuiили аналогичного инструмента.

  4. Установите пакеты grub2-efiи shim[Ссылка ].

  5. Восстановить grubпутем ввода grub2-mkconfig -o /boot/efi/EFI/redhat/grub.cfg[Ссылки ].

Перезагрузите систему. Убедитесь, что RHEL или диск с разделом EFI выбран в качестве варианта загрузки в BIOS, а затем попробуйте загрузить свою ОС.

Это должно сработать.

1
28.04.2021, 23:16

Теги

Похожие вопросы