phantom-84 писал(а):
в исходном виде образ твоего NTFS-загрузчика пока не дотягивает до 8 кб, поэтому тебе его нужно либо сразу делать большим, либо получать больший путем конвертации (расширения до нужного размера), либо как-то проверять наличие расширения в памяти при получении управления в основной точке входа (7C00h).
Сделать больше - не проблема. Меньше - проблема.

Кроме того, он в любом случае будет больше, чем чистый код для NTFS, т.к. я планирую сделать его универсальным - NTFS/FAT (т.е. всё, что поддерживает сам ntldr) и добавить к нему заглушку-селектор. Сначала управление передаётся этому селектору, а он уже в зависимости от того, что за файловая система, компонует по адресу 7C00h нужный загрузочный сектор и передаёт ему управление.
phantom-84 писал(а):
Ну, в принципе у меня есть исходники, о которых я говорил. Еще я глянул на grldr - они там отлавливают точку входа nop'ами, как до смещения 256h, так и после.
Надо будет собрать полную коллекцию виндовых лоадеров для натурных экспериментов.
phantom-84 писал(а):
Я об этом думал, но это уже будет существенное усложнение обычного NTFS-загрузчика.
Это как раз не проблема. Как я понимаю, принципиальных ограничений по размеру (в бОльшую сторону) нет. По крайней мере в 8 килобайт можно упихнуть всё, что душе угодно, хоть вторичный загрузчик.
phantom-84 писал(а):
Как я понимаю, с невалидными данными BPB+ в файловом образе ты вообще не получаешь информации о том, с каким разделом тебе нужно работать. Т.е. в этом случае твой NTFS-загрузчик становится больше похож на вторичный загрузчик небольшого размера, который практически ничего не знает о том, откуда он загружен.
Я надеюсь, что виндовый загрузчик передаёт какие-то параметры, это можно будет выяснить экспериментально.
phantom-84 писал(а):
Я тебе уже говорил, что у меня таких проблем практически нет. Кстати я запаковал модифицированный GRUB в твой формат ядра и толком не смог его проверить в эмуляторе - не захотели работать твои загрузчики ни для FAT12 (я использовал образ флоппика, т.к. у тебя даже в одном примере показано, что это делать можно), ни для FAT16.
Это из-за отсутствия геометрического номера раздела, которое уже обсуждали раньше? Или есть какое-то иное важное ограничение?