1

Я использую Thinkpad T440p с одним жестким диском, он установлен в режим только UEFI (безопасная загрузка отключена). Каждый раз, когда я устанавливал ОС, соответствующие записи появлялись в UEFI для загрузки этих ОС.

На этот раз, когда я установил Debian 9 и Windows 10, никаких записей не было. Я все еще могу загрузить обе системы, скопировав grub в /EFI/Boot/bootx64.efi в разделе EFI, а затем указав UEFI для загрузки жесткого диска.

Как я могу заставить UEFI снова показывать записи для /EFI/debian/grubx64.efi и /EFI/Microsoft/Boot/bootmgfw.efi?

Сброс UEFI ничего не изменил. Использование efibootmgr в Linux для ручного добавления записей создает записи, которые отображаются в efibootmgr (помечены как активные) при перезагрузках, но не отображаются в реальном UEFI и поэтому не могут использоваться.

Какой механик стоит за этим? Предполагается, что установщик ОС добавляет запись в UEFI или UEFI должен автоматически находить новые файлы .efi в разделе EFI?

1 ответ1

2

Сначала ответим на последний вопрос: когда ОС устанавливается на компьютер на базе EFI, она должна зарегистрировать свой загрузчик в EFI, который хранит указатель на этот загрузчик в NVRAM. В дистрибутивах Linux для этого используется инструмент efibootmgr , но в других ОС есть и другие инструменты с аналогичными функциями. (Например, Microsoft расширила инструмент bcdedit , чтобы зарегистрировать загрузчик в EFI.) По крайней мере, одна ОС (FreeBSD) этого не делает; он сохраняет свой загрузчик, используя запасное имя файла (EFI/BOOT/bootx64.efi), что IMHO - плохой выбор - но если у них нет эквивалента efibootmgr , это может быть их единственный вариант. Я не знаю ни одного EFI, который активно сканирует загрузчики с произвольными именами, хотя они загружаются с резервным именем файла, если ничего не присутствует. Некоторые также рассматривают менеджер загрузки Microsoft (EFI/Microsoft/Boot/bootmgfw.efi) как запасное имя файла.

Звучит так, как будто ваш EFI и его записи NVRAM испорчены. Обычно я бы рекомендовал сбросить прошивку до значений по умолчанию в надежде, что это действие решит проблему, но вы уже сделали это. Возможно, вам следует удалить посторонние записи с помощью efibootmgr или чего-то подобного, а затем попытаться сбросить NVRAM. (Не удаляйте все, хотя; Я видел, что EFI ведут себя очень странно после удаления всех загрузочных записей. Записи ОС, как и для Debian и Windows, должны быть безопасно удалены, но оставляйте записи, которые явно зависят от оборудования, например записи, которые относятся к моделям жесткого диска или опциям загрузки PXE.) Удаление этих записей может привести к тому, что компьютер не сможет загрузиться, поэтому может пригодиться наличие моего менеджера загрузки rEFInd на флэш-накопителе USB или CD-R; вы должны иметь возможность загрузки с него, а затем rEFInd должен позволить вам загрузить любую обнаруженную ОС, которую вы затем сможете использовать для повторного создания рабочих загрузочных записей.

Пара дополнительных подходов включает в себя:

  • Удалите все жесткие диски и загрузите компьютер. Это может "пнуть его в штаны" и заставить его решить проблему с загрузкой.
  • Обновите свою прошивку. Даже "обновление" до той же самой версии может помочь (хотя утилита обновления может отказаться от обновления без обновления). Обновление может исправить ошибку, вызывающую проблему, но не менее важно, что оно может сбросить некоторые переменные или место для хранения, которое даже не затрагивает операция сброса по умолчанию.

Обе эти меры отчаяния с небольшим шансом на успех, так что не надейтесь. Тем не менее, им обоим стоит попробовать, ИМХО. Будьте готовы с аварийным диском rEFInd, так как любой из них может стереть все рабочие загрузочные записи, которые у вас уже есть.

Если ваша система полностью зарезервирована и не может быть исправлена, вы можете попробовать поместить предпочитаемый вами менеджер загрузки на диск как EFI/BOOT/bootx64.efi и настроить его для предоставления параметров загрузки для других ваших ОС. Существуют компьютеры с сильно поврежденными EFI, которые требуют такого подхода даже тогда, когда они являются совершенно новыми, и я не удивлюсь, узнав, что EFI могут сломаться, чтобы потребовать этот обходной путь, несмотря на то, что в прошлом все работало нормально.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .