OSDev
http://osdev.su/

OS Boot Tools
http://osdev.su/viewtopic.php?f=4&t=485
Страница 30 из 36

Автор:  maisvendoo [ 20 сен 2013, 08:04 ]
Заголовок сообщения:  Re: OS Boot Tools

phantom-84 писал(а):
По exFAT есть открытые спеки?

Беглый поиск дал только это, так наверное это ты уже видел

Автор:  phantom-84 [ 20 сен 2013, 11:27 ]
Заголовок сообщения:  Re: OS Boot Tools

Нет, я не искал. exFAT вроде была закрытой ФС. Yoda сделал поддержку, вот я и спросил, открыли спеки или нет. Но за ссылку в любом случае спасибо.

Автор:  phantom-84 [ 20 сен 2013, 12:01 ]
Заголовок сообщения:  Re: OS Boot Tools

Код:
(alternative)
Прикольно. Как определяется альтернативный раздел? По байтику со смещением 445 в MBR?

Автор:  Yoda [ 20 сен 2013, 12:42 ]
Заголовок сообщения:  Re: OS Boot Tools

phantom-84 писал(а):
Какой именно "старый загрузочный сектор" нужен?

Да ладно, уже не нужен. Я (наивно) полагал, что винда при установке сохраняет не просто загрузочный сектор, а пишет к нему свой довесок в точку входа. Однако, это оказалось не так. Она тупо сохраняет загрузочный сектор, объём сохранённого кода зависит от файловой системы.

phantom-84 писал(а):
Что там было с конвертированием ntldr'а?

Как я уже говорил – что-то до боли простое. Так и оказалось. С конвертированием было всё в порядке, просто виндовому загрузчику не нравился формат дискеты, на который я его впоследствии записывал.

phantom-84 писал(а):
Скорее всего ntldr догрузил себя сам.

Да, стартовый код виндового загрузчика догружает сам себя с файловых систем FATxx. Однако, даже для загрузки первого сектора в FAT32 нужен разбор, который MS в один сектор не уместили. Загрузочный сектор ищет продолжение загрузчика в первых секторах раздела. Скорей всего, это расширение совместимо от разных версий ОС.

phantom-84 писал(а):
По exFAT есть открытые спеки?

Неа. Это закрытая ФС, лицензирование которой стоит бешеных денег (300k$ только за право её использовать). Я частично пользовался исходниками ГРУБа, а частично ковырял самостоятельно, т.к. в ГРУБе работа с этой ФС серьёзно недоделана. Прямо скажем, что в большинстве ситуаций ГРУБ с exFAT не загрузится.

maisvendoo,
Интересная ссылка. Нет, эту статью я не видел, спасибо!

phantom-84 писал(а):
Код:
(alternative)
Прикольно. Как определяется альтернативный раздел? По байтику со смещением 445 в MBR?

Это ты кого спрашиваешь?

Автор:  phantom-84 [ 20 сен 2013, 14:52 ]
Заголовок сообщения:  Re: OS Boot Tools

Yoda писал(а):
Да, стартовый код виндового загрузчика догружает сам себя с файловых систем FATxx. Однако, даже для загрузки первого сектора в FAT32 нужен разбор, который MS в один сектор не уместили. Загрузочный сектор ищет продолжение загрузчика в первых секторах раздела. Скорей всего, это расширение совместимо от разных версий ОС.
Я так и думал, но говорю, что утилита bootsect (из семерки, но писал я с параметром /nt52, чтобы установить первичный загрузчик ntldr'а) не стала писать доп. сектор, а ntldr все равно загрузился.

phantom-84 писал(а):
Это ты кого спрашиваешь?
Автора boot'а ;) Я уже немного подзабыл, используешь ли ты такой же способ хранения номера альтернативного раздела, что и я, или нет, а тут смотрю boot мне правильно сообщает альтернативный раздел при том, что на диске установлен мой MBR-загрузчик.

Автор:  maisvendoo [ 20 сен 2013, 15:10 ]
Заголовок сообщения:  Re: OS Boot Tools

phantom-84 писал(а):
exFAT вроде была закрытой ФС

Она и есть закрытая - это же Редмонд, чтоб его... А данный документ - это полухакерское исследование данной ФС, там написано "реверсинг". Ссылка, кстати, из википедии :)

Автор:  phantom-84 [ 20 сен 2013, 16:21 ]
Заголовок сообщения:  Re: OS Boot Tools

Код:
(alternative)
О, эта фишка была и в пред. версии, не замечал. Раньше, насколько помню, ты просто детектил родные первичные загрузчики на разделах.

maisvendoo писал(а):
Она и есть закрытая - это же Редмонд, чтоб его...
FAT открытая. Я подумал, что может и exFAT открыли, чтобы народ лишний раз не пытался реверсить их софт.

Автор:  Yoda [ 20 сен 2013, 18:13 ]
Заголовок сообщения:  Re: OS Boot Tools

phantom-84 писал(а):
Я уже немного подзабыл, используешь ли ты такой же способ хранения номера альтернативного раздела, что и я, или нет, а тут смотрю boot мне правильно сообщает альтернативный раздел при том, что на диске установлен мой MBR-загрузчик.

Да, мы этот вопрос уже обсуждали, – способ такой же.

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

Да, загрузка с альтернативного раздела (и, соответственно, индикация) появилась в предыдущей версии.

Автор:  phantom-84 [ 21 сен 2013, 17:02 ]
Заголовок сообщения:  Re: OS Boot Tools

Пробовал загрузить упомянутую выше WinPE на каком-то древнем ноутбуке. Пишет, что нет NTLDR'а. Видимо, всплыла проблема битой BIOS'ом загрузочной записи FAT32. После конвертирования имеющегося на флешке ntldr'а в sys-формат в процессе загрузки происходит зависание. Интересно, это виснет ntldr или первичный загрузчик. Нужно будет подменить сконвертированный ntldr какой-нибудь заглушкой и посметреть, запустится ли она. Я что-то сразу не догадался это сделать, теперь у меня будет шанс увидеть этот ноут только в середине след. недели. Если виновником все-таки окажется первичный загрузчик, сообщу. Yoda, а можно как-нибудь указать, какой вариант FAT32-загрузчика нужно ставить?

Автор:  phantom-84 [ 22 сен 2013, 17:32 ]
Заголовок сообщения:  Re: OS Boot Tools

Я писал(а):
Yoda писал(а):
Да, стартовый код виндового загрузчика догружает сам себя с файловых систем FATxx. Однако, даже для загрузки первого сектора в FAT32 нужен разбор, который MS в один сектор не уместили. Загрузочный сектор ищет продолжение загрузчика в первых секторах раздела. Скорей всего, это расширение совместимо от разных версий ОС.
Я так и думал, но говорю, что утилита bootsect (из семерки, но писал я с параметром /nt52, чтобы установить первичный загрузчик ntldr'а) не стала писать доп. сектор, а ntldr все равно загрузился.
Все-таки наши представления были верными. Как оказалось, bootsect записал доп. сектор кода не во второй сектор раздела, а в 12-ый. Я это обнаружил лишь после того, как увидел в стартовом коде вот это:
Код:
  mov eax,[bp+1Ch]
  add eax,0Ch
Идиоты :)

Баг в bootsect'е я все равно нашел: стартовый код пишется в бутсектор, начиная со смещения, которое определяется из команды jmp, расположенной в начале бутсектора на диске. Идиоты :D

Страница 30 из 36 Часовой пояс: UTC + 3 часа
Powered by phpBB® Forum Software © phpBB Group
http://www.phpbb.com/