Yoda писал(а):
Я поизучал и понял, что всё-таки можно сделать один файл исходника, который будет нормально компилироваться в любом из трёх режимов. Раньше мне казалось, что для получения двухсекторного универсального варианта придётся завести отдельный исходник, чего делать очень не хотелось.
У меня тоже есть нечто подобное. Можно собирать загрузчики, использующие новые/старые функции или только новые. Только старые нельзя. У меня есть один загрузчик только со старыми функциями специально для флоппика, но я его писал очень давно (еще в школе) и с тех пор практически не менял (в нем и без того много устаревших решений, одни жестко закодированные параметры геометрии и ФС чего стоят).
Цитата:
В отдельную ячейку вписывать не хочется, это будет несовместимое нарушение стандарта
Естественно, ни о каком стандарте речь не идет. Но параметр практически неизменный (Resizing тома и др. подобные издевательства в расчет не беру) - можно вписать один раз при установке загрузчика или даже при форматировании и забыть.
Цитата:
перечитывать оригинальный бут-сектор, как показывает практика, тоже не панацея.
Серьезно? Ты проверял? Я не думал, что разработчики BIOS докатились до такого идиотизма, чтобы портить данное поле при выполнении обычной операции чтения этого сектора. Что-то я сильно сомневаюсь, что это действительно так.
Цитата:
Мне кажется, это не принципиальный момент. Мои соображения были следующими:
- Пользователь ручками туда вбивать скорей всего, ничего не будет.
Понятно, что не принципиальный. Но по-моему это немного неестественно и как-то резко выбивается из общей более-менее гладкой картинки. Когда я писал пред. пост, я уже понимал указанное соображение, но все-таки.
Цитата:
- Цифра 5 означает какое-то знание а-приори со стороны EBR о том, что количество основных разделов 4. Однако, это может быть совсем не так. Варианты разбиения на разделы очень разнообразны и в ряде схем используется количество основных разделов, отличное от 4. Например, бывает 6 или 8.
Не, ну ты же не учитываешь в своем коде различные "нестандартные" расширения таблицы разделов. Подход вполне простой: используется географическая (геометрическая) нумерация разделов и традиционное разбиение диска на разделы. Ты же в EBR-коде придерживаешься именно этого способа нумерации и наверняка пересчитываешь 1 в 5, 2 в 6 для передачи номера дальше по цепочки. Видно, что ты придерживаешься не только этого подхода, как единственно возможного, что также совпадает и с моими взглядами, т.к. присутствует и другая нумерация/разметка (GPT). Сделаешь EBR-код, основанный на другом подходе, можешь и доп. разделы нумеровать не с 5, а к примеру с 7.
Цитата:
- Начало отсчёта с 5 означает, что значения 1-4 не валидны и надо вводить доп. проверку.
По-моему, это мелочь. Я сохраняемые в EBR значения 1-4 по смыслу приравнял к нулю и обхожусь по-прежнему одной проверкой.
Цитата:
- Также, начало отсчёта с 5 уменьшает суммарное количество логических дисков, с которых может производится альтернативная загрузка.
Когда я в пред. посте писал про облачные преимущества, я подразумевал именно указанное соображение.
Цитата:
- Всё же, есть какая-то нелогичность в цифре 5. Вот мы передали управление коду EBR. С этого момента для него не существует ничего (из внешнего мира), кроме логических дисков внутри него. С его собственной точки зрения вполне нормально считать с 1, а не с какого-то другого значения.
Не, ну ты же все равно пересчитываешь 1 в 5 и т.д., о чем я говорил выше, или я ошибаюсь?
Цитата:
Не понял. А какой смысл в альтернативном разделе, если он совпадает с активным? Или ты имеешь ввиду логические диски расширенного раздела? Да, одновременно могут быть разные активный и альтернативный логические диски.
Все, я сообразил. Просто прежде прикинул на свой лад и забыл, что ты "активный" доп. раздел маркируешь флагом активности. Получается, что по смещению 445 в EBR ты хранишь номер альтернативного загрузочного раздела? А как ты тогда определяешь в EBR-коде, с какого загрузочного раздела грузиться, активного или альтернативного?
У меня в EBR по смещению 445 хранится номер активного доп. раздела, а номер альтернативного доп. раздела передается MBR-загрузчиком. Флаг активности для доп. разделов не используется вообще.
Цитата:
Я не в курсе этой проблемы. А как она проявляется? В чём её источник?
На нек. компах, особенно ноутбуках, недостаточно однократного тестирования клавиатурных флагов BIOS для отлавливания факта удерживания клавиши. Момент не постоянный или короткий, а предварительное нажатие и удерживание видимо не отражается на состоянии флагов. Жалко, что wasm прикрыли, я там это проблему описывал. Может, в каких-нибудь кэшах осталось. Тема вроде бы называлась "Загрузка первого байта первого сектора".