В мире современных компьютерных технологий, когда большинство систем перешли на загрузку через UEFI, по-прежнему существует определенная группа пользователей, предпочитающих старый, но надежный путь – загрузку через BIOS. Давайте рассмотрим, что требуется для того, чтобы операционная система успешно загружалась с использованием BIOS, и почему, несмотря на прогресс, этот способ все еще актуален.
Прежде всего, для того чтобы осуществить загрузку через BIOS, в утилите настройки компьютера должна быть активирована работа Compatibility Support Module (CSM) – модуля, обеспечивающего совместимость с устаревшими технологиями. Однако стоит отметить, что при выборе этого варианта, режим SecureBoot становится недоступен, ведь он неприменим в контексте загрузки через BIOS.
Если диск разделен с использованием Master Boot Record (MBR) – вариант «BIOS/CSM + MBR», то не требуется дополнительных действий. Это сочетание является классической конфигурацией для загрузки через BIOS.
Однако, когда используется GUID Partition Table (GPT) – вариант «BIOS/CSM + GPT», возникают некоторые сложности. В частности, неясно, куда поместить код, который ранее размещался в MBR. В GPT первый блок зарезервирован, и хотя в нем присутствует защитная версия таблицы разделов в формате MBR, использование этой защитной таблицы оказывается проблематичным для корректной загрузки.
Дополнительные трудности возникают, когда загрузчик использует секторы первого трека диска для размещения своего кода, как это, например, делает GRUB. В GPT на этом месте уже находятся служебные записи, включая заголовок таблицы разделов и сами записи о разделах.
Для решения обеих проблем используется специальный бинарный раздел BIOS-Boot с типом EF02 или UUID 21686148-6449-6E6F-744E-656564454649. На этот раздел установщик операционной системы может записать весь код, который ранее размещался в MBR, а также на неиспользуемом пространстве за MBR. Важно, чтобы этот раздел имел установленный флаг boot. Размер BIOS-Boot раздела может быть небольшим, так как MBR составляет всего 512 байт, а неиспользуемое пространство за MBR – всего 31Кb или 1023,5Кb. Тем не менее, некоторые современные загрузчики могут требовать раздел BIOS-Boot размером 10-30Мb.
В процессе загрузки CSM модуль, эмулирующий работу BIOS, обнаруживает BIOS-Boot раздел в GPT, загружает первые 512 байт с этого раздела и передает управление загруженному коду. Далее код этого раздела отвечает за дальнейший процесс загрузки, а CSM эмулирует обращение к секторам диска за MBR, подставляя данные из BIOS-Boot раздела.
Таким образом, несмотря на технологический прогресс и популярность UEFI, загрузка через BIOS по-прежнему имеет свои сторонников. Разумеется, выбор между BIOS и UEFI зависит от предпочтений пользователя и требований конкретной системы.