OSDev

для всех
Текущее время: 05 июл 2025, 14:10

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




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

Зарегистрирован: 14 мар 2011, 12:31
Сообщения: 976
Откуда: Дагоба
phantom-84 писал(а):
Естественно, MBR.

Да вот может быть и не совсем естественно. Всё зависит от порядка детектирования ФС в ОС. Windows, например, сначала пытается распознать таблицу разделов, а затем файловую систему. Соотв., для винды это будет HDD-формат. Как поступает линукс, я не знаю, но вполне допускаю, что две разные ОСи будут видеть накопитель по-разному. Теоретически даже допускаю, что вмешательство одной ОСи (изменение каких-то параметров ФС) может обрушить ФС для другой ОСи. Хотя бы даже на уровне флага монтирования/размонтирования системы.

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

Ну это не так уж очевидно. Если делать сначала джамп на код и всё время оставлять мусор в рассчёте на то, что там BPB, то в большинстве случаев там будет именно мусор, хотя могли бы быть доп. функции. Более разумным выходом было бы сохранение "сплава" только в том случае, если он есть и написать для него отдельный упрощённый код. В конце концов, в "сплаве" всегда только один раздел и по определению активный, поэтому парсить таблицу не надо.

phantom-84 писал(а):
Свое назначение этот формат оправдывает. Даже если его применение помогает не в 100% случаев, все равно польза определенная есть. Меня например раздражает, когда из-за неправильно выбранной опции в BIOS Setup и последовавших за этим вредоносных действий BIOS начинает глючить или ругаться вполне нормальный MBR-загрузчик.

Дык, избавляясь от одних (потенциальных) глюков, мы порождаем другие проблемы. Единственно, на что влияет опция BIOS Setup, это номер загрузочного диска в DL. Ещё у меня есть один глючный BIOS, который патчит номер диска в BPB, не зная про файловую систему FAT32, поэтому на нём не грузится superfloppy FAT32. Правильно написанный 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
СообщениеДобавлено: 28 окт 2012, 15:19 

Зарегистрирован: 10 май 2007, 11:33
Сообщения: 1209
Yoda писал(а):
Да вот может быть и не совсем естественно. Всё зависит от порядка детектирования ФС в ОС. Windows, например, сначала пытается распознать таблицу разделов, а затем файловую систему. Соотв., для винды это будет HDD-формат. Как поступает линукс, я не знаю, но вполне допускаю, что две разные ОСи будут видеть накопитель по-разному. Теоретически даже допускаю, что вмешательство одной ОСи (изменение каких-то параметров ФС) может обрушить ФС для другой ОСи. Хотя бы даже на уровне флага монтирования/размонтирования системы.
Детект практически всегда и во всех ОС начинается с таблицы разделов (хотя в общем ты прав, например, у меня порядок детекта зависит о порядка запуска драйверов). Видеть будут по-разному. Радует, что хотя бы будут видеть одни и те же файлы. Мне в этом плане помогает, что у меня нулевым номером может обозначаться и цельное устройство и активный раздел на нем (который как раз и используется ядром для поиска загрузочного вирт. устройства). А символические геометрические имена будут отличаться (hda/hda1). В тех ОС, где для определения загрузочного устройства используются подобные имена и возможен произвольный порядок детекта MBR и разделов/VBR и ФС, будут большие проблемы.

Цитата:
Ну это не так уж очевидно. Если делать сначала джамп на код и всё время оставлять мусор в рассчёте на то, что там BPB, то в большинстве случаев там будет именно мусор, хотя могли бы быть доп. функции. Более разумным выходом было бы сохранение "сплава" только в том случае, если он есть и написать для него отдельный упрощённый код. В конце концов, в "сплаве" всегда только один раздел и по определению активный, поэтому парсить таблицу не надо.
Это так, но мне ничего не мешает при помощи кода MBR-загрузчика в режиме super floppy по таблице разделов найти настоящий первичный загрузчик и передать ему управление. Не хочу порождать лишние сущности. Просто отключаю дополнительный функционал Alter'а для гибридного формата и все (у меня это можно сделать в инсталляторе без перекомпиляции самого загрузчика). А остановился я именно на второй версии, потому что это самая последняя стабильная версия и места там было достаточно для BPB+. Кстати при текущем объеме кода в версии 3 места под BPB+ уже не остается. К тому же она еще сильно сырая, чтобы говорить о ней серьезно. Здесь есть другая проблема, связанная с пред. вопросом. Alter всегда передает отличный от нуля номер загрузочного раздела (хотя спецификация допускает передачу нулевого номера в случае загрузки с активного раздела). И т.к. он диктует первичным загрузчикам использовать именно этот номер для передачи ядру, они не смогут воспользоваться обычно вшитым в них (непосредственно в код или в байт перед загрузочной сигнатурой бутсектора) нулевым значением. Т.е. чтобы отказаться от диктата Alter'а (в дистре системы я обычно использую др. загрузчик, но работает он также, как Alter) мне нужно взять какой-нибудь левый загрузчик или написать самый простой свой. Можно и не писать, а патчить в установщике. Есть такой код:
Код:
        mov ax,8855h
        xchg ax,[7DFEh]
        cmp ax,0AA55h
        jne short err_bs
Если 88h заменить на 0AAh, то первичные загрузчики перестанут узнавать Alter и соответственно смогут использовать вшитый в них номер загрузочного раздела.

Цитата:
Единственно, на что влияет опция BIOS Setup, это номер загрузочного диска в DL. Ещё у меня есть один глючный BIOS, который патчит номер диска в BPB, не зная про файловую систему FAT32, поэтому на нём не грузится superfloppy FAT32.
Во-во, а еще патчит или наоборот пытается вычитать SPT/Heads из MBR. Короче разработчики BIOS из потенциально самого удобного носителя (флешки) умудрились сделать самый неудобный.


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

Зарегистрирован: 18 окт 2012, 21:03
Сообщения: 54
Yoda писал(а):
В моём наборе можно обойтись без LBA в одном-единственном случае. Если отформатировать флеш в формат superfloppy и записать загрузочную запись по номеру устройства, а не по букве диска. В таком случае инсталлятор распознаёт, что доступ ко всему диску возможен посредством CHS-доступа и пишет соответствующую версию загрузчика.

Попробовал, superfloppy с установленным boot -d2 не грузит вообще ни на одном компе. На нормальном BIOS дает ответ "DISK error" а на бажном просто зависает да еще как потом фиг выключишь приходится принудительно выдерживать 6сек power.

По поводу "размечен в гибридном формате" я не совсем понял что там и куда растянули но знаю одно что разметка в HDD формате с MBR и PBR при этом область первого логического не занимает весь размер флешки в конце остается не размеченным область в 15 мегов. Это прием такой он описан в syslinux или GRUB а может и там и там, заключается в том чтоб некоторые кривые BIOS однозначно определяли USB как хард делают разметку не на всю область носителя а на большую часть оставляя не размеченной кусочек чтоб BIOS это дело видел как мульти-партишен что может быть только на харде. Еще одна уловка использовать 64 головки и 32 сектора как на zip drive, но вроде с мультипартишен больший результат на разных BIOS.

phantom-84 результат эксперимента вашей диагностики послал в личку.


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

Зарегистрирован: 14 мар 2011, 12:31
Сообщения: 976
Откуда: Дагоба
jarilo писал(а):
На нормальном BIOS дает ответ "DISK error"...

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

_________________
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
СообщениеДобавлено: 29 окт 2012, 10:24 

Зарегистрирован: 10 май 2007, 11:33
Сообщения: 1209
jarilo писал(а):
phantom-84 результат эксперимента вашей диагностики послал в личку.
Да, спасибо. Мои предположения подтвердились. FlashBoot действительно перехватывает обращения к дисковому сервису BIOS (int 13h), чтобы осуществить трансляцию.


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

Зарегистрирован: 18 окт 2012, 21:03
Сообщения: 54
Yoda писал(а):
Это пишет не мой загрузчик. Похоже, он не устанавливается. В третьей версии установка будет работать надёжней.

Точно не писалось, boot не ругалась и я думал что все записалось. На самом деле там стандарт от NT5 стоял. Попробовал boot -d2 -dh и получилось она создала PBR на superfloppy. Результат - на нормальном BIOS грузит ваше тест ядро, на бажном пишет "Error loading OS...".


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

Зарегистрирован: 14 мар 2011, 12:31
Сообщения: 976
Откуда: Дагоба
Я же говорю, проблема в том, что при записи с доступом к физическому диску не удаётся блокировать нужный диапазон секторов и он впоследствии перезаписывается системой. Сейчас сходная ситуация - после записи в логический диск записалась LBA-версия загрузчика. А при записи в физический диск CHS-версии - всё равно не может. Остаётся LBA.
Подождите третью версию, там проблема записи полностью решена.

_________________
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
СообщениеДобавлено: 29 окт 2012, 15:25 

Зарегистрирован: 18 окт 2012, 21:03
Сообщения: 54
Yoda писал(а):
А при записи в физический диск CHS-версии - всё равно не может. Остаётся LBA.

Уж не знаю что он пишет но рапортует следующее:
"
Physical device 2:
FAT32 CHS.
Logical device H:
FAT32 CHS.
"
Если при этом он пишет LBA версию то как минимум это странно.
P.S. За неимением более новой версии тестирую то что есть 2.01 ))


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

Зарегистрирован: 10 май 2007, 11:33
Сообщения: 1209
Я разобрался, почему у меня модифицированный GRUB не мог найти свой конфиг и др. файлы на CD/DVD. Вероятно он читает только Rock Ridge. Правда, в одной из старых версий GRUB'а ошибка продолжает проявляться, но зато в двух более новых все нормально работает, причем без применения каких-либо усовершенствований. После упаковки в формате kernel.sys тоже нормально работает (естественно, будучи загруженным своим родным загрузчиком "iso9660.bin").

Образы с корректно работающим модифицированным GRUB'ом получал так:
Цитата:
mkisofs -R -b iso9660.bin -no-emul-boot -hide iso9660.bin -hide boot.catalog -o cdrom.iso content
В cdimage/oscdimg подходящей опции не нашел. Нужно еще в UltraISO посмотреть.


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

Зарегистрирован: 14 мар 2011, 12:31
Сообщения: 976
Откуда: Дагоба
phantom-84 писал(а):
Я разобрался, почему у меня модифицированный GRUB не мог найти свой конфиг и др. файлы на CD/DVD. Вероятно он читает только Rock Ridge.

Что, в общем-то, следует ожидать. Извечная война между двумя системами. Joliet - майкрософтовское расширение и *никсы на него не особенно расчитывают. А RockRidge - как раз *никсовое расширение.

phantom-84 писал(а):
В cdimage/oscdimg подходящей опции не нашел. Нужно еще в UltraISO посмотреть.

Что, в общем-то, тоже логично. cdimage/oscdimg - майкрософтовские продукты и на проблемы *никсов им покласть. mkisofs в данном случае - самый универсальный подход. Кроссплатформенная утилита и создаёт образы под обе платформы.

_________________
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 ... 11, 12, 13, 14, 15, 16, 17 ... 36  След.

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


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

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


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

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