Как стартовый / 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 также может быть сконфигурирован с использованием переменных, которые хранятся в энергонезависимой памяти на материнской плате.

  • Windows похож на Linux / Unix
  • VirtualBox Не удалось создать объект COM VirtualBox
  • Возможно, разбился раздел из-за изменения таблицы разделов Windows, вредоносного программного обеспечения или ...?
  • Нет свободного места на устройстве, без 320 ГБ
  • Как удалить ubuntu в системе двойной загрузки?
  • Нет звука в Linux Mint после двойной загрузки Windows 8
  • Можно ли замаскировать файл другим?
  • Запустить программное обеспечение Cygwin на Linux
  • Установлено CentOS, теперь нет параметров Windows 8 при перезагрузке
  • «Доступ запрещен» при входе в виртуальную машину Solaris с использованием ssh
  • Может ли загрузчик grub2 заменить раздел загрузчика Windows?
  • Interesting Posts

    Почему мои SSD находятся в / dev / hdx вместо / dev / sdx на CentOS 5.9?

    Как создать фальшивое событие inotify на debian?

    Как я могу получить список попыток входа в систему с помощью журналаctctl?

    Есть ли способ уменьшить размер для всех виджетов, включая кнопку, меню / пункт меню и т. Д. В Gnome 3.20 или выше?

    Как получить root внутри vi?

    нужно понимать использование «/» в команде sed

    Все, что есть _not_ символическая ссылка

    Как я могу добавить nohup в набор команд bash?

    Скорость движения мыши установлена ​​на максимальную, но все же медленную

    Двойной загрузочный загрузчик Opensuse13.2 и windows8.1

    Предотвратите отключение питания жесткого диска USB после неактивности

    Запустить приложение GTK3 без настраиваемых настроек gtk?

    Проблема Бодхи с Наутилусом как SU

    Нужно ли останавливать процессы, такие как mysql или apache, перед «перезагрузкой»?

    Безопасно ли переопределять незашифрованный массив mdadm с помощью LUKS?

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