Как работает менеджер загрузки и как он работает по-разному на машинах с BIOS и UEFI?

Как работает менеджер загрузки и как он работает по-разному на машинах с BIOS и UEFI?

После прочтения большого количества информации в Интернете я начинаю все больше и больше путаться в том, как работает менеджер загрузки. Я понял, что менеджер загрузки, такой как rEFInd, не является обновлением или чем-то связанным с прошивкой (поправьте меня, если я не прав). Теперь у меня есть следующее понимание:

Для машины с BIOS можно было бы ожидать, что прошивка BIOS распознает все диски, имеющиеся в компьютере (она не распознает разделы ни на одном диске). Допустим, у машины есть внутренний жесткий диск и подключенный к нему внешний CD. Затем BIOS позволяет вам выбрать один из них и прочитать загрузчик в MBR жесткого диска или CD. Теперь предположим, что на жестком диске установлены и Windows, и Linux. А вот здесь начинается часть, в которой я не совсем уверен: если вы установили GRUB, как менеджер загрузки, так и загрузчик, означает ли это, что после того, как вы выбрали загрузку с жесткого диска, загрузчик GRUB считывается и выполняется, что вызывает менеджер загрузки GRUB? Затем менеджер загрузки GRUB распознает различные системы, которые есть на вашем компьютере, и вызывает загрузчик для Windows или загрузчик для Linux, который все еще является частью GRUB?

Для машины UEFI, похоже, прошивка уже является менеджером загрузки, поскольку она распознает таблицу разделов и все диски, подключенные к компьютеру. Поэтому все, что вам нужно, это записать загрузчик в системный раздел EFI, и прошивка позволит вам выбрать, какой загрузчик вы хотите использовать во время загрузки. Это верно? Однако я заметил, что для машины UEFI все еще доступен менеджер загрузки, такой как rEFInd, для чего он тогда нужен, если прошивка уже действует как менеджер загрузки. Более того, считается ли rEFInd прошивкой или просто приложением, установленным на системном разделе EFI определенного диска?

решение1

Любой код, который выполняется до запуска основной операционной системы и участвует в запуске других программ, является загрузчиком. Большинство компьютеров, даже большинство встроенных устройств, имеют цепочку загрузчиков: код в ПЗУ или флэш-памяти, который загружает другой фрагмент кода из флэш-памяти или диска, который загружает другой фрагмент кода и т. д. BIOS является загрузчиком (и он мог им быть), reFInd является загрузчиком, Grub является загрузчиком и т. д.

Некоторые загрузчики не делают ничего, кроме загрузки другого фрагмента кода и перехода к нему, но большинство выполняют дополнительные задачи, такие как чтение данных конфигурации, обнаружение подключенных периферийных устройств, тестирование оборудования, инициализация устройств, перечисление устройств хранения и сетевых устройств для определения того, что следует загрузить следующим, отображение сообщений на экране, прослушивание пользовательского ввода, чтобы позволить пользователю влиять на процесс загрузки и т. д.

Менеджер загрузки — это особый тип загрузчика, который включает способ для пользователя выбирать между несколькими операционными системами. Загрузчик Grub на самом деле не «вызывает» менеджер загрузки Grub, функциональность менеджера загрузки — это один из аспектов Grub.

Некоторые устаревшие BIOS ПК имеют грубые возможности менеджера загрузки, которые позволяют пользователю выбирать между несколькими устройствами; это ограничено, поскольку устаревший BIOS может загружать только первые 512 байт диска и выполнять код там. UEFI имеет более мощный менеджер загрузки, который позволяет пользователю выбирать между файлами на разделе FAT.

Считать ли загрузчики прошивкой, зависит от того, как именно вы определяете прошивку. По определению «поставляется с оборудованием компьютера, а не устанавливается на устройстве хранения», BIOS и UEFI являются прошивками, а reFInd и Grub — нет. По определению «независимы от операционной системы», reFInd и Grub являются прошивками.

Связанный контент