загрузчики grub в / boot / efi / EFI не могут загружать окна, /boot/efi/EFI/ubuntu/grubx64.efi может, grub устанавливает тот, который не может

1368
littlenoodles

Я использую Ubuntu 18.04 (kubuntu, но кто рассчитывает) в системе с двойной загрузкой. Его меню grub всегда могло загружать Windows 7, но внезапно вход в grub больше не работает. Когда я выбираю окна в меню grub, экран становится черным и ничего не происходит. Я все еще могу загружать окна прямо из меню загрузки моей системы, если я достаточно быстр, чтобы вызвать это. Но что-то случилось с моей настройкой Grub.

Я попытался запустить sudo update-grub, который, казалось, успешно перезапустил зонд, но поведение остается тем же.

У меня не включена безопасная загрузка (я даже не вижу ее в своем BIOS), и я полностью отключил Windows 7 (без режима гибернации или спящего режима).

Больше информации:

У меня также есть менеджер загрузки refind, установленный на этой машине, и если я переключу его на первый в порядке загрузки, он сможет загрузить Windows 7 или grub. Но меню Refind показывает несколько записей для Ubuntu, и первая из них показывает EFI / Boot / fbx64.efi, а вторая - EFI / Boot / bootx64.efi. Ни один из них не может загрузить Windows. Фактически, когда я выбираю один из них и запускаю оттуда Ubuntu, он возвращает Ubuntu на первую позицию в порядке загрузки моего BIOS - и я возвращаюсь к тому, с чего начал.

Но если я указываю стрелку в Refind на запись ubuntu для /ubuntu/Boot/grubx64.efi, то не только в том, что можно загружать Ubuntu или Windows 7, он также оставляет Refind на месте в верхней части моего порядка загрузки. Таким образом, эта проблема, кажется, вызвана тем, что новые модули efi были помещены в / EFI / Boot и стали загрузчиком grub по умолчанию. Я не знаю, что такое fbx64, но должен ли он быть основным загрузчиком grub? Если нет, как мне сделать grubx64.efi по умолчанию? Это просто вопрос копирования модуля grubx64.efi в / EFI / Boot? Это безопасно - мне нужно переименовать его в bootx64.efi, чтобы соответствовать тому, что там?

Вот что находится в моем / boot / efi (кажется, что все материалы по Ubuntu датированы 13 сентября 09:39 - предположительно в последний раз, когда Ubuntu обновлял grub). Bootx64 соответствует размеру shimx64 - мне не нужен загрузчик shim. Могло ли обновление Ubuntu по ошибке скопировать это?

/boot/efi/EFI/Boot -rwx------ 1 root root 1334816 Sep 13 09:39 bootx64.efi -rwx------ 1 root root 1213032 Sep 13 09:39 fbx64.efi  /boot/efi/EFI/ubuntu -rwx------ 1 root root 108 Sep 13 09:39 BOOTX64.CSV drwx------ 2 root root 1024 Jan 30 2017 fw -rwx------ 1 root root 71400 May 22 10:48 fwupx64.efi -rwx------ 1 root root 126 Sep 13 09:39 grub.cfg -rwx------ 1 root root 1116024 Sep 13 09:39 grubx64.efi -rwx------ 1 root root 1269496 Sep 13 09:39 mmx64.efi -rwx------ 1 root root 1334816 Sep 13 09:39 shimx64.efi 
0
Вот еще одна морщина. Этот файл BOOTX64.CSV называет shimx64.efi как «загрузочную запись для ubuntu»: ** shimx64.efi, ubuntu ,, Это загрузочная запись для ubuntu ** И я убедился, что Boot / bootx64.efi - это тот же файл, что и убунту / shimx64. Опять же, у меня не включена безопасная загрузка, и я не должен использовать загрузчик shim - но в любом случае Ubuntu установил его как мой по умолчанию. Он не делал этого при первоначальной установке - только при любом обновлении grub, которое произошло 13 сентября. littlenoodles 5 лет назад 0
I just got another update to grub2 today (Oct 11, 2018), and it once again installed shimx64.efi as my default bootloader. I verified this prior to booting this time, so i was able to patch the BOOTX64.CSV file before it caused any problems. But this seems to be a ubuntu bug. Wonder why it's not affecting more people. littlenoodles 5 лет назад 0

2 ответа на вопрос

0
Meowcat McMeow XVIII

Я имел дело с такими проблемами раньше. Мне всегда приходилось загружаться с Ubuntu Live USB, устанавливать пакет с названием Boot-Repair (или что-то в этом роде, моя память отстой) и использовать его для «обновления» списка вещей, которые видит GRUB.

Подробнее о пакете Boot-Repair: https://help.ubuntu.com/community/Boot-Repair (обратите внимание, что, поскольку он работает с загрузчиком, вам нужно быть пользователем root, чтобы установить и запустить эту программу.)

Убедитесь, что вы полностью прочитали вышеуказанную веб-страницу, так как она объяснит процесс значительно лучше, чем я. Пожалуйста, дайте мне знать, если это поможет.

Я не знаю. Восстановление при загрузке, кажется, решает проблему загрузки MBR, и моя система использует EFI. Grub в моей системе работает - просто есть куча загрузчиков EFI, и неправильный запускается по умолчанию, когда я сначала делаю 'ubuntu' в порядке загрузки моего BIOS. Пока я просто использую refind, который позволяет мне выбрать работающий загрузчик grub64.efi. Это раздражает, когда загрузчик ubuntu работал. Я надеялся, что кто-нибудь скажет мне, безопасно ли копировать «хороший» загрузчик в папку «по умолчанию», и прокомментировать, почему обновление grub вообще изменило бы мои настройки загрузки. littlenoodles 5 лет назад 0
0
littlenoodles

Нашел ответ (или хотя бы объяснение происходящего). BOOTX64.CSV используется загрузчиком EFI 'fallback', когда запись EFI VRAM была повреждена. А резервный загрузчик перенаправляет запись EFI VRAM на любые имена файлов CSV в качестве загрузчика по умолчанию - в моем случае shimx64.efi. Вот почему всякий раз, когда я позволяю системе EFI запускать фиктивную запись «ubuntu», она переустанавливается в начале списка.

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

http://www.rodsbooks.com/efi-bootloaders/fallback.html