Как стартовый / UEFI-загрузчик знает, где найти загрузчик второго этапа?

Большинство систем, с которыми я столкнулся, очень легко форматируют свои диски только с разделами boot и rootfs . У других также есть recovery (например, Windows) и swap , но я стараюсь держать его простым.

Я не читал ни одного стандарта, который указывает, в каком разделе должен стоять загрузчик. Я никогда не читал ничего о том, должен ли быть загрузочный раздел. Разумеется, назначение раздела в качестве boot является спорным; нам просто нужен какой-то раздел, который загружается в память и выполняется загрузчиком одного этапа (legacy / UEFI).

Итак, мой вопрос: как загрузчик на первом этапе находится в качестве второго загрузчика? Имеет ли это:

  • Ожидайте таблицу разделов?

  • Прочитайте таблицу разделов с диска (или любого другого носителя, который вы загружаете) и проверьте каждый из загрузочного файла?

  • Ожидайте, что загрузчик второго этапа будет в первом разделе?

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

One Solution collect form web for “Как стартовый / UEFI-загрузчик знает, где найти загрузчик второго этапа?”

Нам нужно различать устаревшую систему (BIOS) и UEFI, потому что они очень разные. На ПК без UEFI или ПК UEFI, работающем в унаследованном режиме, процесс загрузки выглядит следующим образом: сначала BIOS загружает загрузочный сектор MBR в ОЗУ и начинает выполнение загрузочного кода. Поскольку загрузочный сектор имеет длину всего 512 байт и также содержит таблицу разделов, загрузочный сектор не может содержать код, который понимает внутренности даже простейших файловых систем. GRUB решает это, установив дополнительный код в секторах 1-62 на жестком диске. Эта область диска – это более или менее «ничейная земля» между загрузочным сектором и началом первого раздела. Эта так называемая «Stage 1.5» может читать файлы из файловой системы и загружает GRUB Stage 2 и файлы конфигурации из каталога / boot.

Прошивка во флэш-памяти на материнской плате развилась с первых дней работы BIOS. В то время как BIOS способен читать первый сектор фиксированного набора устройств, более современные системы UEFI понимают файловую систему FAT32 непосредственно в прошивке. Когда система UEFI загружается, она сначала ищет системный раздел EFI. На диске, содержащем системный раздел, должна быть таблица разделов GUID (GPT), а системный раздел распознается по его фиксированному GUID. Системным разделом должен быть раздел FAT32, из которого прошивка считывает и выполняет загрузчик. Альтернативно, первая загружаемая программа также может быть менеджером загрузки, который позволяет пользователю выбирать, какой загрузчик (и, следовательно, какая операционная система) должен быть выполнен. UEFI также может быть сконфигурирован с использованием переменных, которые хранятся в энергонезависимой памяти на материнской плате.

  • GNU GRUB версии 2.02 ~ beta2-36unbuntu3.2 при каждом включении ноутбука. Помогите!
  • Можно ли запустить FreeRDP без отображения для запуска скриптов?
  • uniq показывает повторяющиеся строки
  • По умолчанию Shell для Samba Machine Accounts
  • Как я могу создать резервную копию Win7 перед установкой монетного двора вместе с ним
  • Настройка кроссплатформенной системы VNC
  • не удалось получить доступ к USB в виртуальном боксе
  • Может ли файл быть поврежден путем копирования из NFS в CIFS?
  • Получение «BLInitializeLibrary failed 0xc0000017» при перезагрузке Windows 8 и Fedora 25 с двойной загрузкой
  • Как настроить GRUB для загрузки Windows 7 Install в режиме UEFI
  • GRUB не будет показывать; Linux Mint и Windows 10 на отдельных дисках
  • Interesting Posts

    Дата «1 месяц назад» не работает в AIX

    Как установить emacs с помощью YUM без библиотек X11?

    Linux iptables резервирует количество подключений для данного правила

    Человеческая страница в PDF с groff: без пробелов после заголовков

    sed one-liner для удаления любой строки, которая не содержит строчных букв

    Захват полного верхнего поля COMMAND для кратковременного процесса

    Не удается установить cURL на Linux Mint

    Как разбить /etc/nixos/configuration.nix на отдельные модули?

    Как узнать, что кто-то использует Keylogger на машине, которую я использую?

    Как показать и использовать удаленный рабочий стол Linux, когда SSH или любая другая удаленная служба недоступна?

    Ошибка libGL / swrast при запуске Chrome-браузера над X

    Как установить visudo для использования другого редактора, чем значение по умолчанию для Fedora?

    Почему `minicom` присоединяет символ` 0xOD` к серийному текстовому сообщению?

    Созданная upstart работа, которая работает – система не загружается в CLI, но все работает SSH, RDP и т. Д.

    Использование sudo для доступа к другой учетной записи на одной машине

    Linux и Unix - лучшая ОС в мире.