Сначала загружается сектор MBR (512 - 2 - 16*4 = ~446 байт), который загружает тушку загрузчика (stage 1.5), которая считывает файлы конфигурации и затем ядро операционной системы.
Для того, чтобы считать тушку загрузчика, необходимо в принципе выполнять простые действия (считывание секторов, вычисления).
Можно в принципе сделать большую внешнюю программу-компилятор, например на java, которая зная разные настройки собирает версию загрузчика в MBR для конкретных условий (количества дисков и типов файловых систем). Скомпилированный загрузчик содержал бы только необходимые команды и мог бы, например, загружать с RAID (в режиме stripe).
Правильно ли я понимаю, что так не делают, из-за того что такой набор команд не умещается в 446 байт?