Некоторый контекст:

Ранее сегодня я попытался переустановить Kali Linux на моей машине (двойная загрузка с Windows). Для этого я загрузил ISO-образ и поместил его на USB-накопитель Easy2Boot. Для того чтобы мой ноутбук загрузился с флешки Easy2Boot, мне нужно было зайти в свой BIOS и:

  • Отключить PTT
  • Включить Legacy Option ROM
  • Переключиться в режим Legacy

Это связано с тем, что Easy2Boot не поддерживает UEFI, и поэтому карта не появится, если я не сделаю этого.

У меня не было проблем во время установки, а точнее после. Я прекрасно загружался в систему, но если я отменил изменения, внесенные в BIOS, и вернулся в режим UEFI, вместо Kali я получил приглашение GRUB Rescue. Кроме того, хотя эти параметры BIOS все еще были установлены, GRUB не смог обнаружить мою установку Windows. В конечном счете, я использовал Rufus для установки Kali с «Схема разбиения: GPT» и «Целевая система: UEFI (не CSM)». После этого я вошел в процесс установки. Примечательно, что установщик казался другим. Мало того, что это отличалось по внешнему виду, но у начального меню были другие варианты.

Мой вопрос:

Почему переключение между режимами Legacy и UEFI вызвало эти проблемы? Насколько я понимаю, единственное участие MBR / GPT в загрузке состояло в том, чтобы предоставить исходный код для загрузки.

  • Поскольку GRUB мог загружаться в режиме UEFI, почему он оказался в режиме восстановления, а не продолжил загрузку Kali просто из-за этого изменения?

  • Почему между установщиками, которые я видел в режиме Legacy vs UEFI, была разница?

  • Почему в режиме Legacy GRUB не смог обнаружить Windows? Я бы подумал, что, поскольку BIOS уже выполнил свою работу по загрузке GRUB, у него не возникло бы проблем, учитывая, что я знаю, что у GRUB нет проблем с обнаружением Windows при установке в режиме UEFI.

2 ответа2

3

Насколько я понимаю, единственное участие MBR / GPT в загрузке состояло в том, чтобы предоставить исходный код для загрузки.

И начальное меню на самом деле является частью этого кода. Это не предоставляется ОС; это показывает загрузчик (который также выполняет работу «менеджера загрузки»).

Загрузчик по своей природе специфичен для одного типа прошивки. (Даже GRUB2 имеет отдельные ядра для BIOS и UEFI, и его модули должны быть скомпилированы по-разному для любого типа.)

Поэтому вполне возможно, что на одном и том же установочном диске будут использоваться совершенно разные загрузчики для систем BIOS и UEFI (например, syslinux для BIOS, но systemd-boot для UEFI; или GRUB2 для BIOS, но rEFInd для UEFI). Если они предоставляют меню загрузки, они все делают это по-своему, со своим внешним видом и темами.

(Также может быть так, что исходный ISO не имеет загрузчиков для обоих типов прошивок - в некоторых ситуациях Rufus вставляет свою собственную конфигурацию загрузчика (syslinux) в смесь.)

Наконец, даже если это тот же GRUB2 с той же базовой конфигурацией, он может не иметь одинакового графического режима, доступного в обоих случаях. Опции меню могут отсутствовать из-за различий в самих прошивках: например, "Загрузка существующей ОС" выполняется совершенно по-разному между BIOS и UEFI; и "Тест памяти" (memtest86) - это отдельная программа, которая сама должна быть в вариантах BIOS и UEFI ...

Поскольку GRUB мог загружаться в режиме UEFI, почему он оказался в режиме восстановления, а не продолжил загрузку Kali просто из-за этого изменения?

Невозможно ответить на этот вопрос, не увидев точную ошибку GRUB. Возможно, ваш раздел EFI содержит файлы ядра GRUB, но в нем отсутствуют модули или файл grub.cfg.

Опять же, помните, что BIOS GRUB и UEFI GRUB действуют как две отдельные части программного обеспечения. Несмотря на то, что они используют большую часть исходного кода, они скомпилированы в разные форматы, они установлены в разных местах системы и по-разному запускаются микропрограммами.

Почему в режиме Legacy GRUB не смог обнаружить Windows? Я бы подумал, что, поскольку BIOS уже выполнил свою работу по загрузке GRUB, у него не возникло бы проблем, учитывая, что я знаю, что у GRUB нет проблем с обнаружением Windows при установке в режиме UEFI.

Похоже, ваша система Windows настроена на загрузку в режиме UEFI, что означает, что на ней установлен только UEFI-совместимый загрузчик.

Однако когда система находится в режиме BIOS, она не может запускать программы UEFI - потому что они зависят от присутствия ядра UEFI и предоставления определенных услуг. (Так же, как MS-DOS не может запускать программы для Windows ...)

В конце концов, весь смысл «Legacy mode» заключается в том, что ОС будет видеть прошивку только так, как если бы это была традиционная BIOS для ПК; любые сервисы UEFI будут невидимы.

(Точно так же я не уверен, возможно ли, чтобы приложение UEFI "понизило" систему до 16-битного режима для загрузки по цепочке в BIOS-совместимый загрузочный код.)

2

Вы написали:

Я скачал ISO и положил его на мою флешку Easy2Boot. Для того чтобы мой ноутбук загрузился с флешки Easy2Boot, мне нужно было зайти в свой BIOS и:

Отключить PTT Включить Legacy Option ROM Переключиться в устаревший режим Это связано с тем, что Easy2Boot не поддерживает UEFI, и поэтому карта памяти не появится, если я не сделаю этого.

Easy2Boot может не поддерживать UEFI, но Руфус поддерживает. Если вы используете Rufus для создания загрузочного USB-накопителя, вы можете настроить его на поддержку UEFI, и он будет работать.

Обратите внимание, что вам действительно нужно выбрать правильные настройки, чтобы это работало. Вам нужно установить схему разбиения на GPT, затем выбрать UEFI (не CSM) в качестве целевой системы. Обратите внимание, что новейшая версия Rufus выполняет большинство этих настроек автоматически, потому что в прошлом это сбивало с толку людей, почему они не работали.

Это то, что я использую для создания пользовательских установщиков Windows 10 с поддержкой UEFI.

Так как другой ответ объяснил, почему он не работал, но на самом деле не вдавался в подробности о том, как правильно решить проблему, я решил опубликовать этот ответ, потому что, хотя другой ответ технически корректен, я думаю, что это ответ Ваш актуальный вопрос лучше: как лучше установить Linux на мой компьютер.

Пожалуйста, поймите, это не пост для продвижения Rufus. Есть и другие инструменты, которые работают, у меня просто есть опыт работы с Rufus, поэтому я могу гарантировать, что он будет работать. Если вы находите другую программу более благоприятной, которая также поддерживает UEFI, не стесняйтесь использовать ее.

Тем не менее, на веб-сайте Easy2Boot я вижу, что они должны поддерживать режим UEFI, выполняя некоторые преобразования и прочее. Rufus все еще намного проще, на мой взгляд, но Easy2Boot, программное обеспечение, которое у вас уже есть, должно быть возможно.

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