OSDev

для всех
Текущее время: 24 авг 2025, 08:16

Часовой пояс: UTC + 3 часа




Начать новую тему Ответить на тему  [ Сообщений: 353 ]  На страницу Пред.  1 ... 8, 9, 10, 11, 12, 13, 14 ... 36  След.
Автор Сообщение
 Заголовок сообщения: Re: OS Boot Tools
СообщениеДобавлено: 20 окт 2012, 21:45 
Аватара пользователя

Зарегистрирован: 14 мар 2011, 12:31
Сообщения: 977
Откуда: Дагоба
phantom-84 писал(а):
Но у тебя-то уже есть "обычный загрузчик NTFS".

Правильно. Поэтому сейчас у меня нет препятствий для осуществления задуманного. Просто я уже давно хотел сделать такой загрузчик и собирал материалы по нему.

phantom-84 писал(а):
Сделай дополнительную точку входа для ntldr, чтобы копировать дополнительную часть загрузчика на свое обычное место и обходить процедуру дозагрузки дополнительных секторов.

Да-да-да. Подготовительные моменты уже есть в текущих загрузчиках в плане проверки наличия уже загруженного расширения.

phantom-84 писал(а):
Единственное, что меня пока немного смущает - это специфичность точки входа от версии - я видел древние, вроде бы оригинальные, исходники первичного загрузчика NTFS, в которых смещение точки входа было отличным от 256h. Нужно немного покопать в этом направлении или наложить требование использовать подходящую версию ntldr.

Если найдёшь что-то интересное, дай знать, пожалуйста. В принципе, не проблема сделать две или больше точек входа, - сколько потребуется.

phantom-84 писал(а):
Что касается инсталлятора, то пользователю в общем будет не сложно разместить файл с загрузчиком в нужном месте и подкорректировать boot.ini вручную. Большую проблему для него будет представлять совмещение кода твоего загрузчика и оригинальных данных из BPB+ соответствующего раздела в одном файле. Может, отдельную утилиту для этого сделать?

Пока вопрос открытый. Я посмотрю, может быть возможно вообще обойтись без модификации бинарника, тогда надо будет только вписать строчку в boot.ini.

phantom-84 писал(а):
Цитата:
Да я и сам планирую их обойти.

Что так?

А вот именно для того, чтобы грузить, что ни попадя :).
А то меня достали уже глюки инсталлятора GRUB, который "не смог прописаться в указанное место".

_________________
Yet Other Developer of Architecture.
The mistery of Yoda’s speech uncovered is:
Just an old Forth programmer Yoda was.

<<< OS Boot Tools. >>>


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: OS Boot Tools
СообщениеДобавлено: 21 окт 2012, 08:30 

Зарегистрирован: 10 май 2007, 11:33
Сообщения: 1209
Yoda писал(а):
Да-да-да. Подготовительные моменты уже есть в текущих загрузчиках в плане проверки наличия уже загруженного расширения.
Да, это не помешает. Кстати я заметил, что ntldr даже в случае файла меньшего размера, чем 8 кб, загружает его по адресу 0D000h, хотя и передает управление по адресу 7C00h. Полагаться на это конечно крайне ненадежно, но если есть хорошая проверка наличия уже загруженного расширения, то можно этим воспользоваться. Кроме того, в исходном виде образ твоего NTFS-загрузчика пока не дотягивает до 8 кб, поэтому тебе его нужно либо сразу делать большим, либо получать больший путем конвертации (расширения до нужного размера), либо как-то проверять наличие расширения в памяти при получении управления в основной точке входа (7C00h).

Цитата:
Если найдёшь что-то интересное, дай знать, пожалуйста. В принципе, не проблема сделать две или больше точек входа, - сколько потребуется.
Ну, в принципе у меня есть исходники, о которых я говорил. Еще я глянул на grldr - они там отлавливают точку входа nop'ами, как до смещения 256h, так и после.

Цитата:
Пока вопрос открытый. Я посмотрю, может быть возможно вообще обойтись без модификации бинарника, тогда надо будет только вписать строчку в boot.ini.
Я об этом думал, но это уже будет существенное усложнение обычного NTFS-загрузчика. Как я понимаю, с невалидными данными BPB+ в файловом образе ты вообще не получаешь информации о том, с каким разделом тебе нужно работать. Т.е. в этом случае твой NTFS-загрузчик становится больше похож на вторичный загрузчик небольшого размера, который практически ничего не знает о том, откуда он загружен.

Цитата:
А вот именно для того, чтобы грузить, что ни попадя :).
А то меня достали уже глюки инсталлятора GRUB, который "не смог прописаться в указанное место".
Я тебе уже говорил, что у меня таких проблем практически нет. Кстати я запаковал модифицированный GRUB в твой формат ядра и толком не смог его проверить в эмуляторе - не захотели работать твои загрузчики ни для FAT12 (я использовал образ флоппика, т.к. у тебя даже в одном примере показано, что это делать можно), ни для FAT16. CDFS-загрузчик смог загрузить, но только после того, как я в cdimage указал параметр "-y1" (включить использование номера версии в именах файлов), правда, сам GRUB не смог прочитать menu.lst (одна наиболее старая версия GRUB'а даже CDFS не смогла обнаружить), но это у меня и раньше было - я загрузку GRUB'а с CD/DVD еще не прорабатывал.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: OS Boot Tools
СообщениеДобавлено: 21 окт 2012, 13:52 
Аватара пользователя

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

Сделать больше - не проблема. Меньше - проблема. :D
Кроме того, он в любом случае будет больше, чем чистый код для NTFS, т.к. я планирую сделать его универсальным - NTFS/FAT (т.е. всё, что поддерживает сам ntldr) и добавить к нему заглушку-селектор. Сначала управление передаётся этому селектору, а он уже в зависимости от того, что за файловая система, компонует по адресу 7C00h нужный загрузочный сектор и передаёт ему управление.

phantom-84 писал(а):
Ну, в принципе у меня есть исходники, о которых я говорил. Еще я глянул на grldr - они там отлавливают точку входа nop'ами, как до смещения 256h, так и после.

Надо будет собрать полную коллекцию виндовых лоадеров для натурных экспериментов.

phantom-84 писал(а):
Я об этом думал, но это уже будет существенное усложнение обычного NTFS-загрузчика.

Это как раз не проблема. Как я понимаю, принципиальных ограничений по размеру (в бОльшую сторону) нет. По крайней мере в 8 килобайт можно упихнуть всё, что душе угодно, хоть вторичный загрузчик.

phantom-84 писал(а):
Как я понимаю, с невалидными данными BPB+ в файловом образе ты вообще не получаешь информации о том, с каким разделом тебе нужно работать. Т.е. в этом случае твой NTFS-загрузчик становится больше похож на вторичный загрузчик небольшого размера, который практически ничего не знает о том, откуда он загружен.

Я надеюсь, что виндовый загрузчик передаёт какие-то параметры, это можно будет выяснить экспериментально.

phantom-84 писал(а):
Я тебе уже говорил, что у меня таких проблем практически нет. Кстати я запаковал модифицированный GRUB в твой формат ядра и толком не смог его проверить в эмуляторе - не захотели работать твои загрузчики ни для FAT12 (я использовал образ флоппика, т.к. у тебя даже в одном примере показано, что это делать можно), ни для FAT16.

Это из-за отсутствия геометрического номера раздела, которое уже обсуждали раньше? Или есть какое-то иное важное ограничение?

_________________
Yet Other Developer of Architecture.
The mistery of Yoda’s speech uncovered is:
Just an old Forth programmer Yoda was.

<<< OS Boot Tools. >>>


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: OS Boot Tools
СообщениеДобавлено: 21 окт 2012, 16:49 

Зарегистрирован: 10 май 2007, 11:33
Сообщения: 1209
Yoda писал(а):
Кроме того, он в любом случае будет больше, чем чистый код для NTFS, т.к. я планирую сделать его универсальным - NTFS/FAT (т.е. всё, что поддерживает сам ntldr) и добавить к нему заглушку-селектор. Сначала управление передаётся этому селектору, а он уже в зависимости от того, что за файловая система, компонует по адресу 7C00h нужный загрузочный сектор и передаёт ему управление.
В этом случае можно просто загружать то, что должен загружать этот "загрузочный сектор". По-моему, тогда проще сразу начинать делать полноценный вторичный загрузчик/бутменеджер, не ограниченный размером 8 кб и "непонятным" окружением. Я не стану делать из загрузочной записи NTFS что-либо большее чем загрузочную запись, просто хочу, чтобы ntldr мог загружать образ моей загрузочной записи также, как загружает образы загрузочных записей для виндовых загрузчиков. Вдруг пользователь сделает бэкап моей загрузочной записи и попытается подсунуть его ntldr'у! Насчет загрузчика FAT32 у меня тоже возникла идея сделать детект наличия второго сектора в памяти, но это уже паранойя.

Цитата:
Надо будет собрать полную коллекцию виндовых лоадеров для натурных экспериментов.
Ну, у меня есть готовые бинарники только для экспишки и семерки плюс те древние исходники, о которых я говорил.

Цитата:
Я надеюсь, что виндовый загрузчик передаёт какие-то параметры, это можно будет выяснить экспериментально.
Вполне возможно. Я ради интереса проверил значение dx при запуске через доп. точку входа. Это конечно нигде не декларировалось, но я подумал, что может там будет такое же значение, как и при запуске через основную точку входа. Оказалось, что там 1. Вполне возможно, что это мусор - сам ntldr и виндовые первичные загрузчики NTFS я не смотрел. В других загрузчиках, которые способны загружаться ntldr'ом, как загрузочная запись NTFS, в доп. точке входа в качестве номера диска обычно берется соотв. значение из BPB+ или константа 80h.

Цитата:
Это из-за отсутствия геометрического номера раздела, которое уже обсуждали раньше? Или есть какое-то иное важное ограничение?
Не, я сейчас не про это (как уже сказал, при необходимости номер раздела я могу вшить во второй байт kernel.sys, а для флоппика вообще подходит изначально хранящееся в этом байте нулевое значение). Они банально не выполняют своих прямых обязанностей по загрузке бинарника, а вешаются, по крайней мере в боксе 2.6. Загрузчик для FAT32, я не проверял - мне хватило первых двух :mrgreen:


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: OS Boot Tools
СообщениеДобавлено: 22 окт 2012, 11:28 
Аватара пользователя

Зарегистрирован: 14 мар 2011, 12:31
Сообщения: 977
Откуда: Дагоба
phantom-84 писал(а):
В этом случае можно просто загружать то, что должен загружать этот "загрузочный сектор". По-моему, тогда проще сразу начинать делать полноценный вторичный загрузчик/бутменеджер, не ограниченный размером 8 кб и "непонятным" окружением. Я не стану делать из загрузочной записи NTFS что-либо большее чем загрузочную запись...

Да нет, полноценный вторичный загрузчик - это очень большая работа. Единственно, что я хочу в данном случае, это обойтись без патченья BPB в файле и сделать файл одинаково пригодным для всех сред, в которых работает сама винда.
По поводу комплекта секторов внутри этого загрузчика - так технически проще. Мне не надо будет писать раздельно код поддержки файловой системы в двух разных загрузчиках. А задача формирования работающего сектора по 7C00h в общем-то очень простая.

phantom-84 писал(а):
Не, я сейчас не про это ... Они банально не выполняют своих прямых обязанностей по загрузке бинарника, а вешаются, по крайней мере в боксе 2.6.

Да ладно!! Кинь мне пожалуйста образ (можно в личку), который не грузится в боксе, я посмотрю. Не может такого быть, я же всё в первую очередь писал и отлаживал именно в боксе, а затем проверял на большом кол-ве реальных машин.
А, ладно, не надо пока кидать, надо будет с третьей версией проверить, там много изменений.

_________________
Yet Other Developer of Architecture.
The mistery of Yoda’s speech uncovered is:
Just an old Forth programmer Yoda was.

<<< OS Boot Tools. >>>


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: OS Boot Tools
СообщениеДобавлено: 22 окт 2012, 13:07 

Зарегистрирован: 10 май 2007, 11:33
Сообщения: 1209
Yoda писал(а):
Да нет, полноценный вторичный загрузчик - это очень большая работа. Единственно, что я хочу в данном случае, это обойтись без патченья BPB в файле и сделать файл одинаково пригодным для всех сред, в которых работает сама винда.
Я пока даже предположить не могу, как ты будешь искать загрузочный раздел. От поиска по флагу активности я давно отошел, т.к. это примитивно (вот уж действительно возврат во времена DOS) и не позволяет загружаться с неактивного раздела. Те же винды спокойно грузятся с неактивного раздела. Можно оставлять какую-то метку на разделе (например, спец. файл), но это по сути то же самое (а в добавок нужно будет еще контролировать наличие этих меток на других разделах) - флаг активности ты обойдешь, но не обойдешь возможность выбора загрузочного раздела динамически. Поэтому варианта только два: либо надеяться на то, что ntldr передает какой-либо идентификатор раздела, либо патчить этот загрузчик при установке в раздел (не обязательно BPB+ целиком, можно прописывать смещение раздела на диске или числовой идентификатор, аналогичный моему; можно использовать и лэйбльный идентификатор, но о его недостатках я кажись в этой теме уже говорил).

Цитата:
По поводу комплекта секторов внутри этого загрузчика - так технически проще. Мне не надо будет писать раздельно код поддержки файловой системы в двух разных загрузчиках. А задача формирования работающего сектора по 7C00h в общем-то очень простая.
Ну да, пока у тебя все отличные от NTFS- загрузчики размещаются в одном секторе, так может быть проще. Я так свой FAT32-загрузчик уже не распакую, пока не сделаю в нем детект наличия второго сектора в памяти (см. выше про паранойю). FAT1x тоже, если расширение будет находиться в памяти или не в файле на диске.

Цитата:
Да ладно!! Кинь мне пожалуйста образ (можно в личку), который не грузится в боксе, я посмотрю. Не может такого быть, я же всё в первую очередь писал и отлаживал именно в боксе, а затем проверял на большом кол-ве реальных машин.
Естественно, я сначала подумал, что сам дурак. Все закончилось тем, что я стал делать образы и вносить в них изменения сторонними утилитами (в том числе форматировал образы и копировал ядро соотв. утилитами непосредственно в эмуляторе), а в качестве файла ядра брал бинарник размером 100-200 кб с инструкцией "jmp $" в самом его начале. Для начала ты можешь проделать (еще раз) то же самое, и если у тебя все будет работать нормально, то я скину тебе образ(ы).

Цитата:
А, ладно, не надо пока кидать, надо будет с третьей версией проверить, там много изменений.
Все равно разобраться нужно. Тебе в первую очередь. А если дело все-таки не в загрузчиках, то я хотел бы понять, что я делал не так или что не так в софте, который я использовал.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: OS Boot Tools
СообщениеДобавлено: 22 окт 2012, 14:45 

Зарегистрирован: 18 окт 2012, 21:03
Сообщения: 54
Yoda писал(а):
Я чувствую, у вас есть некоторое недопонимание процесса загрузки. Мне думается, что вы путаете MBR и загрузочную запись раздела.

Я просто считал что ваша утилита boot всегда пишет парно и MBR (Master Boot Records) и PBR (Partition Boot Records). Поэтому видя что MBR не изменился думал что вообще нечего не изменилось. По моему логично предполагать что вы полностью пишете всегда свой пакет загрузчиков, а оказывается при указании просто буквы диска "H" boot пишет только PBR, хотя где то в вашей документации говорилось что указание именно буквы хорошая идея. Из за моих экспериментов видно получилось что мой текущий MBR по каким то причинам не совместим с вашей PBR FAT32. Кроме того увеличение размера загрузчика имелось в виду для партиций PBR не 512 а чтоб вместить все доступные файловые системы. Надеюсь теперь корректно сформировал свои мысли, мне до вашего уровня далеко )).

Цитата:
- Как у вас отформатирована флешка, как HDD или как superfloppy?

Когда я пишу что не грузит тогда подразумеваю что пробовал отформатировать во все доступные форматы флеш в виде флопика, zip, и HDD c одной партишен, мульти партишен не использую на флешке , по моему перебор наверняка проблем с BIOS будет только больше. Кроме того и сам формат меняю с разным размером кластера для FAT32, в общем никогда не напишу что "не грузит" просто при случайно не получившейся загрузки.

Еще Сергей про утилиту для инстала MBR и PBR ее не надо писать есть очень хорошая BOOTICE от китайца Pauly, имеет английский gui а так же поддерживает cli, представляет из себя единственный exe модуль 184k и при перезаписи MBR и PBR сама сохраняет текущие данные о разбиении дисков, кроме того дает установить все стандартные NT,GRUB,SYSLINUX,PLOP MBR парой кликов, есть встроенный простенький формат. Вот ссылка К стати там же у Pauly есть и его загрузчик XORBOOT, правда я не смог его настроить описания нет, а на сайте не дает стянуть единственный кем то выложенный конфигурационный файл, упомянул потому как возможно вы отслеживаете приемы идеи других загрузчиков.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: OS Boot Tools
СообщениеДобавлено: 22 окт 2012, 16:21 

Зарегистрирован: 18 окт 2012, 21:03
Сообщения: 54
P.S. Что то не могу подобрать рабочую версию с вашим boot для FAT32, вы бы глянули, по моему в версии 2.01 и boot.exe 1.1 что то неладно. Первоначально получилось но что там за MBR стоял когда получилось не могу понять, уж слишком много их у меня и экспериментов тоже. Так уточняю, конечно я имею ввиду что на бажном компе не грузит, на нормальных BIOS получается сделать загрузку FAT32 но первоначально грузило везде и на нормальном и на бажном компе. Да встречаются комбинации MBR разные + PBR ваша = нигде не грузит, даже на хорошем BIOS .
P.P.S. Забыл упомянуть, BOOTICE = Freeware


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: OS Boot Tools
СообщениеДобавлено: 22 окт 2012, 16:47 
Аватара пользователя

Зарегистрирован: 14 мар 2011, 12:31
Сообщения: 977
Откуда: Дагоба
phantom-84 писал(а):
Я пока даже предположить не могу, как ты будешь искать загрузочный раздел.

Я тоже пока не могу :D.
Я же говорю, посмотрю, может быть виндовый загрузчик что-то передаёт. Если нет, то придётся патчить файл.

phantom-84 писал(а):
Все равно разобраться нужно. Тебе в первую очередь. А если дело все-таки не в загрузчиках, то я хотел бы понять, что я делал не так или что не так в софте, который я использовал.

Ну там в утилите очень много изменений. Фактически, она переписана процентов на 80%. Что-то поменялось в самих загрузчиках. Если сразу нормально заработает третья версия, то не вижу причины ковырять прошлое.

jarilo писал(а):
а оказывается при указании просто буквы диска "H" boot пишет только PBR, хотя где то в вашей документации говорилось что указание именно буквы хорошая идея.

При указании буквы нет возможности править MBR, т.к. винда не предоставляет к нему доступ через букву устройства. Буква - это изолированный раздел, только часть диска.
В документации говорилось про обновременное использование и номера и буквы.

jarilo писал(а):
увеличение размера загрузчика имелось в виду для партиций PBR не 512 а чтоб вместить все доступные файловые системы.

Размер загрузочной записи раздела определяется исключительно файловой системой на этом разделе и, за некоторыми исключениями, места там мало. В некоторых файловых системах он может иметь произвольный размер, но только при переформатировании раздела с другими параметрами. А в некоторых ФС он всегда фиксированный. Например, в файловых системах EXT2/3/4 для загрузочного кода всегда отведено 1024 байта.
Все ФС нет смысла поддерживать во всех загрузчиках, т.к. загрузочная запись по определению специфична для той файловой системы, где она прописана.

jarilo писал(а):
про утилиту для инстала MBR и PBR ее не надо писать есть очень хорошая BOOTICE от китайца Pauly, имеет английский gui а так же поддерживает cli, представляет из себя единственный exe модуль 184k и при перезаписи MBR и PBR сама сохраняет текущие данные о разбиении дисков, кроме того дает установить все стандартные NT,GRUB,SYSLINUX,PLOP MBR парой кликов...

Стандартные - да, вероятно. Но мои загрузчики не могут быть корректно установлены этой утилитой. А написать пользовательский интерфейс - это вопрос общей программистской культуры. Интерфейс необходим.

_________________
Yet Other Developer of Architecture.
The mistery of Yoda’s speech uncovered is:
Just an old Forth programmer Yoda was.

<<< OS Boot Tools. >>>


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: OS Boot Tools
СообщениеДобавлено: 22 окт 2012, 16:57 
Аватара пользователя

Зарегистрирован: 14 мар 2011, 12:31
Сообщения: 977
Откуда: Дагоба
jarilo писал(а):
P.S. Что то не могу подобрать рабочую версию с вашим boot для FAT32, вы бы глянули...

Тут действительно сложно что-то сказать заочно. Но я могу предположить следующее. Если у вас сломана работа в режиме LBA в BIOSе, то единственный способ вообще обойтись без этого режима - отформатировать флешку в superfloppy, т.е. удалить все разделы, заполнить MBR нулями, вынуть из компа, затем вставить под виндой и отформатировать. По умолчанию винда чистую флешку форматирует как суперфлоппи, т.е. без разделов.
После этого запустить программу boot с указанием номера диска, а не буквы. В этом случае будет записан загрузочный код с поддержкой режима CHS.
MBR загрузчик в любом случае проверяет наличие поддержки LBA и использует её по возможности.

PS.
Если есть много БИОСов, которые рапортуют о доступе LBA, но при этом он не работает, я могу рассмотреть вариант принудительного использования CHS там, где это позволит размер диска.

_________________
Yet Other Developer of Architecture.
The mistery of Yoda’s speech uncovered is:
Just an old Forth programmer Yoda was.

<<< OS Boot Tools. >>>


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 353 ]  На страницу Пред.  1 ... 8, 9, 10, 11, 12, 13, 14 ... 36  След.

Часовой пояс: UTC + 3 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 0


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
cron
Создано на основе phpBB® Forum Software © phpBB Group
Русская поддержка phpBB