OSDev
http://osdev.su/

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

Автор:  Yoda [ 30 янв 2012, 15:14 ]
Заголовок сообщения:  Re: OS Boot Tools

phantom-84 писал(а):
Например, у меня есть jumbo (выбор любого раздела по введенному номеру при нажатом Alt'е, загрузка из дополнительных разделов внутри расширенного) и alter (выбор альтернативного загрузочного раздела при нажатом Alt'е). Есть идея объединить основные функции этих загрузчиков в одном. Можем обсудить.

А что, - вполне можно. )

phantom-84 писал(а):
Существуют BIOS'ы, которые не сбрасывают номер диска в 80h для второго и последующих жестких дисков в загрузочной цепочке, которые используют для флешки (трактуемой как USB-HDD) отличный от 80h номер, даже если она находится первой в загрузочной цепочке.

Трах-тибидох! И что, будет 81h, например? Ты с таким сталкивался?

phantom-84 писал(а):
Что касается сброса номера диска в 0, то это возможно, когда у тебя явно задана опция USB-FDD

У меня на работе машина, которая вообще не грузится с флешки, если задана опция USB-FDD. Но грузится с неё, если задана опция USB-HDD, причём BIOS проверяет содержимое загрузочного сектора и в зависимости от того, что он там нашёл, подставляет загрузочный диск либо 0, либо 80h.

phantom-84 писал(а):
Пропатчивания BS_DrvNum в ноль не замечал, может из-за того, что никакого негативного влияния на мою схему загрузки это не оказывает

Три машины проверялись на пропатчивание и ещё два нетбука. ВСЕ патчят, если нашли загрузочный сектор FAT. Мало того, на одной машине я убил кучу времени, пытаясь понять, почему не грузится с флоппи-разметкой флешки в FAT32. Оказалось, что BIOS находит загрузочный сектор, но не распознаёт систему FAT32 и патчит её как FAT16, забивая нулём количество секторов на FAT. Как я ругался, когда нашёл суть проблемы!!
Остальные проверенные BIOSы идентифицируют FAT32 и патчат правильный байт. И, соответственно, автодетектируют тип носителя Floppy/HDD.

Автор:  phantom-84 [ 30 янв 2012, 15:58 ]
Заголовок сообщения:  Re: OS Boot Tools

Yoda писал(а):
А что, - вполне можно. )
ОК. Создам отдельную тему.

Цитата:
Трах-тибидох! И что, будет 81h, например? Ты с таким сталкивался?
Если бы не сталкивался, то не говорил бы. Еще не мешает проверить, как ведут себя различные BIOS'ы в режиме эмуляции HDD на CD/DVD, т.е. какой номер будет иметь реальный жесткий диск, если MBR-загрузчик на CD/DVD выполнит int 18h.

Цитата:
У меня на работе машина, которая вообще не грузится с флешки, если задана опция USB-FDD. Но грузится с неё, если задана опция USB-HDD, причём BIOS проверяет содержимое загрузочного сектора и в зависимости от того, что он там нашёл, подставляет загрузочный диск либо 0, либо 80h.
Это зависит от содержимого флешки. Нормальные биосы при наличии опции USB-FDD обычно просто выставляют геометрию флоппика 2x80x18 (или используют дополнительные опции для выбора формата), не обращяясь к BPB. "Продвинутые" же пытаются вычитать из BPB значения Heads и SPT, чтобы выбрать нужный формат. И как они поступают, если флешка не содержит BPB (или не содержит нужных значений в указанных полях BPB), это их личное дело, наверно могут и не выполнять загрузку или пытаться трактовать флешку, как USB-HDD и искать параметры геометрии в другом месте или даже использовать стандартные параметры для LBA-трансляции.

Цитата:
Три машины проверялись на пропатчивание и ещё два нетбука. ВСЕ патчят, если нашли загрузочный сектор FAT. Мало того, на одной машине я убил кучу времени, пытаясь понять, почему не грузится с флоппи-разметкой флешки в FAT32. Оказалось, что BIOS находит загрузочный сектор, но не распознаёт систему FAT32 и патчит её как FAT16, забивая нулём количество секторов на FAT. Как я ругался, когда нашёл суть проблемы!!
Остальные проверенные BIOSы идентифицируют FAT32 и патчат правильный байт. И, соответственно, автодетектируют тип носителя Floppy/HDD.
Стало интересно, проверю. Видимо я с этим не сталкивался, потому что всегда размечаю флешки, как жесткие диски (с MBR).

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

Чёрт, наступил на грабли в Боксе. INT 13h функция 2 (чтение диска) нагло виснет при чтении секторов с большими номерами головок. Вот я с ним тоже уже намаялся. :(
Надо багтрек запостить, что ли...

phantom-84 писал(а):
Еще не мешает проверить, как ведут себя различные BIOS'ы в режиме эмуляции HDD на CD/DVD, т.е. какой номер будет иметь реальный жесткий диск, если MBR-загрузчик на CD/DVD выполнит int 18h.

Да не, эмуляция HDD на самом деле неинтересна. Тем более, что по отзывам многие BIOSы её не поддерживают или работают некорректно. Интересен только режим No-emulation, который вроде бы работает везде.

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

No emulation малоинтересен, потому что в этом случае BIOS не использует номер 80h для CD/DVD. А вот в режиме эмуляции харда для него как раз-таки используется номер 80h, а номера реальных жестких дисков смещаются. Вопрос в том, будет ли int 18h, выполняемый в коде на эмулируемом харде, сбрасывать номер диска или реальный жесткий будет иметь номер 81h. Вполне возможно, что это тоже вариативно.

Автор:  SII [ 31 янв 2012, 03:50 ]
Заголовок сообщения:  Re: OS Boot Tools

Народ, вы б всё ж посматривали в сторону UEFI. Стандарт, конечно, тот ещё, но, во-первых, он стандарт, а во-вторых, похоже, поддерживается уже всеми современными матерями. Так что, ИМХО, ковырять его как бы уже пора...

Автор:  pavia [ 31 янв 2012, 05:23 ]
Заголовок сообщения:  Re: OS Boot Tools

SII, UEFI использует раздел FAT(не помню точно размерность) для загрузки, грузит файл. Так что ничего интересного, всё уже сделано за нас. Шучу конечно, разбираться надо.

На самом деле в виду того, что биосы привередливы к FAT сделать небольшой раздельчик FAT16 грузить оттуда файл. А тот уже пусть разбирает структуры, как надо.

То что все материи поддерживают UEFI вопрос спорный. В любом случае для тестирования можно DUET записать на диск. И будет вам UEFI.

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

Как бы посмотрели. Кстати там как раз используется FAT, а гибридный MBR-загрузчик с поддержкой GPT в моих ближайших планах (так может и до EFI доберусь, хотя можно было начинать и с классической схемы разметки диска). Однако EFI - это все-таки пока не полноценная замена, а альтернатива. В плане оборудования и смежных технологий у меня по-любому отставание, так что поддержка EFI не на первом месте.

Edited: pavia, там вроде бы и FAT32 поддерживается, если тебе нужен раздел покрупнее. Хотя часто и FAT16 (причем с маленьким размером кластера) хватает, т.к. обычно на этом разделе хранятся только основные системные файлы, необходимые для загрузки.

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

SII писал(а):
Народ, вы б всё ж посматривали в сторону UEFI.

В каком смысле посматривать? Как я понимаю, к начальной загрузке с винта это имеет весьма малое отношение, – UEFI должно делать всё само. Т.е. это скорей требования к загружаемой системе, а не к начальному загрузчику. Хотя, надо будет зарегистрироваться, скачать последние спецификации UEFI, может, там что дельное есть.

SII писал(а):
а во-вторых, похоже, поддерживается уже всеми современными матерями.

Практика показывает, что плохо он поддерживается и уж никак не всеми матерями. Надо ещё попотеть, разыскивая такую мать.
http://www.thg.ru/mainboard/uefi/index.html

Автор:  SII [ 31 янв 2012, 18:44 ]
Заголовок сообщения:  Re: OS Boot Tools

Этой статье больше 2 лет, и она, мягко говоря, устарела.

Автор:  pavia [ 31 янв 2012, 18:45 ]
Заголовок сообщения:  Re: OS Boot Tools

SII, сегодня на работе проверил. Из 2 новых копов UEFI поддерживает только 1.

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