Я нахожусь в процессе написания простого загрузчика ОС (сначала загрузка в устаревшем режиме). После понимания процесса загрузки (MBR, загрузка VBR и т.д.) Я начал изучать спецификации для разных файловых систем, чтобы понять, как они справляются с этим старым стилем загрузки.
Это необходимо, поскольку загрузочная запись тома (VBR) по своей конструкции расположена на диске в первом секторе "активного" раздела. Другими словами, байты первого сектора (обычно 512 байтов) на самом деле представляют собой не структуры данных файловой системы, а загрузочный код операционной системы.
Сначала я посмотрел на FAT за его простоту. К своему удивлению я обнаружил ссылки на « загрузочный сектор », встроенный прямо в спецификацию. В частности, когда вы форматируете диск с файловой системой FAT, вначале можно "зарезервировать" некоторое количество секторов в начале для специальных блоков кода, таких как VBR. В этом случае все структуры данных файловой системы смещаются на это количество зарезервированных блоков. Большой! Это именно то, что я искал.
Однако я не смог найти что-то похожее в других файловых системах (в частности, ext). Эти другие файловые системы должны поддерживать "унаследованный" стиль загрузки (например, пространство для VBR для начальной загрузки ОС), поскольку они были доступны задолго до спецификации загрузки UEFI.