Как BIOS считывает данные с диска?

Как BIOS считывает данные с диска?

А именно, все ли загрузчики одинаковы, так что любой BIOS всегда может их прочитать и передать управление диску, так что FAT32, NTFS, ext4, btrfs и т. д. не должны пониматься BIOS?

решение1

Да.

До появления GPT ответ заключался в том, что BIOS проверял, является ли диск загрузочным (путем поиска определенной «магической сигнатуры» в 511-м и 512-м байтах диска), и если эти байты устанавливались в ожидаемое значение, BIOS мог запустить код, начиная с нулевого байта на диске.

BIOS обычно не понимает форматы файловых систем, такие как FAT32 или NTFS или ext4. BIOS даже не понимает разделы. Возможность распознавать разделы — это концепция, которая втиснута в байты кода, которые хранятся в начале диска.

Затем этот загрузочный код обычно находит дополнительный код, который может быть другим загрузчиком или «загрузчиком второй ступени» (OpenBSD делает это), который часто понимает файловую систему немного лучше (достаточно, чтобы иметь возможность начать поиск ядра и его запуск).

С GPT («таблица разделов GUID») процесс немного сложнее. (U)EFI смотрит на некоторые другие детали. Однако есть и сходства: конкретные детали, которые ищет (U)EFI, не зависят от файловой системы, и GPT запускает код (например, «загрузчик») в этом месте.

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