Intereting Posts
Как я могу сгладить два шаблона из одного файла и направить строки на разные выходные файлы в зависимости от того, какая совпадение соответствует? xkb: назначить новый уровень сдвига для функциональных клавиш Поиск в определенном столбце для шаблона и вывода всей строки Как создать и подписать RPM-пакет с RedHat 4, который работает с YUM? Как я могу перейти вверх или вниз в tmux с помощью Terminal.app? Ubuntu – папка My / var / wiki пропала без вести. Это проблема Linux? u-boot отключает запросы DHCP с setenv Получить файлы с именем, содержащим значение даты, меньшее или равное заданной дате ввода Ищете внешнюю команду, которая может делать то же самое, что и echo Разрешение запрещено в файлах sysfs Параметры компилятора GCC Linux Bash – настройка среды vars из строки вызова bash Как работает опция -fuzzy для rsync? kubuntu 16.04 плазменный виджет на панели – значок У меня есть еще один модуль для беспроводных драйверов?

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

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

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

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

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

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