проверь без него она виснет. иногда доходит до заставки и зависает. проверино. я сначала тоже не передавал это, пока не понял что винда не грузится именно из за этого) XP точно 100%
А зря не понял. Ответив на тему в этом абзаце, ты бы понял, где не прав вот тут: Тебе уже сказали. 0x01...0x7F это ошибка. Загрузочный раздел может быть только один. Иначе ты зароешь грабли. Выбирать тебе. Спорить бесполезно. К единому мнению уже пришли. Код в MBR для MS-DOS писали ребята из интела. Поищи исходники MS-DOS 6.20, их еще можно найти. Фантом не авторитет, и говорит, что его ОС это проглотит, что не означает, что и другие, намного более распространенные ОС это проглотят. Делая более одного загрузочного раздела, делая коды отличные от 0x80 и 0x00, ты зарываешь грабли. Если ты пишешь только для себя, то зарывай сколько хочешь, а вот если на продажу, тогда слушайся, и учись. Не верю. (С)
это намек на то что я должен просканировать на наличие файловых систем первые сектора) и если их нет то это mbr. я согласен. но не надо забывать что ФС много и все я не знаю. и дрова точно все не напишу. так что тоже не вариант)
Именно. Вот, то что меня смущает, я жирным выделил. Противоречия я тут нахожу. Вот из того что под рукой: Флешка 256MB - с MBR Флешка 8Гб - без МБР Винт без МБР, но и не BIG FDD. Так что думай сам.
Посмотрел в код бот сектора, и увидел, что DS:SI трется раньше, чем используется. На второй машине посмотрел, там вообще не описан загрузочный раздел винды в PT. Что не мешает обоим спокойно грузить винду.
Тебе уже сказали. 0x01...0x7F это ошибка. Загрузочный раздел может быть только один. Иначе ты зароешь грабли. Выбирать тебе. Спорить бесполезно. К единому мнению уже пришли. -я сначало про это и говорил. а вы превели исходники где видно что винда тоже глотает значения отличные от 0 и 80. и где ей пофиг сколько активных разделов, она тупо грузится из первого. в моем mbr(нынешнем) все проверки есть в отличии от MS. и на наличие только одного активного. и на наличие иных значений в флаге активного. даже несколько попыток чтения и проверка на допустимое значение CHS))) я с этого и начинал. а вы то в одну сторону то в другую. Код в MBR для MS-DOS писали ребята из интела. Поищи исходники MS-DOS 6.20, их еще можно найти. -то есть люди которые придумывают стандарты и спецификации. и железо на котором работает MS тупее их??? скорее они лучше знают. Фантом не авторитет, и говорит, что его ОС это проглотит, что не означает, что и другие, намного более распространенные ОС это проглотят. Делая более одного загрузочного раздела, делая коды отличные от 0x80 и 0x00, ты зарываешь грабли. Если ты пишешь только для себя, то зарывай сколько хочешь, а вот если на продажу, тогда слушайся, и учись. -сам говорил что по флагу (бит 80) на что больше похоже в винде. она глатает отличные значения. хотя я тоже за 0 и 80. так проще детект на mbr сделать) Не верю. (С) -поверь. или проверь) я не один пробовал. у меня брат программистом работает) точно поумнее многих будет. я не говорю про все но XP точно. и эти поля я уже писал описаны в спецификациях. ВЫ опять противоречите себе. то придерживайся всех , то забей это ерунда. ЭТО не даром пишут м открытых спецификациях. чтоб не мудрили. тогда и работать все будет везде одинаково. я например в своей системе собираюсь сделать выбор режима. совместимость, или опытный пользователь(сис админ) который сам решит сколько чего создавать. а система проглотит. но по умолчанию будет стандарт.
1) Ссылку на "boot bios спецификации" и точное место, где это описано. 2) Дизасемлированный код BOOT сектора от ХРюши, и адрес где используется переданный указатель. Блин, не хотел прибегать к этим тролиным приемам, но видно придется. Ты сам себе противоречишь. Ты не прав. Как работают *NIX загрузчики ты не знаешь, даже в теории. Возми код, и посмотри, а потом теории строй.
а как их bios показывает и винда определяет? посмотри здесь поле s_magic http://www.nongnu.org/ext2-doc/ext2.html#S-MAGIC
Нет, это намек, что нужно изучить систему взаимодействия. А потом ответ для твоей задачи станет очевидным.
ты сначало разберись а потом говори. твоя фраза правда) ds:si не биос передает их в начале нет. их mbr должен передать. вот исходник MBR XP http://mirror.href.com/thestarman/asm/mbr/Win2kmbr.htm смотри это: 0694 8BFC MOV DI,SP ; STACK Pointer is still 7C00. 0696 1E PUSH DS ; DS is 0000 at this time. ЗДЕСЬ 0697 57 PUSH DI ; SP --> DI (now 7C00). 0698 8BF5 MOV SI,BP ; BP (still 07BE) -> SI for ЗДЕСЬ не обязательно 7be(7ce,7de,7ee) а можно гдето в памяти)) ; use by OS Boot Record. 069A CB RETF ; Jumps to VBR at 0000:7C00
Видимо, мой сарказм остался незамеченным. У меня универсальные первичные загрузчики - они могут устанавливаться и на цельное устройство, и в раздел. У меня номера разделов внутри расширенного начинаются с 5 (т.е. > 4). Я просто последовательно ищу нужный раздел внутри расширенного по номеру, что совершенно не уступает по производительности твоему варианту и в отличии от него не требует отметки таких разделов активными, что вообще-то противоречит общепринятым правилам. Я когда-то тебе отвечал на этот вопрос. Я не хочу, чтобы некритичные ошибки в разметке диска приводили к невозможности загрузки и инициализации моей системы. Я могу только не соглашаться с откровенными неточностями и полным пренебрежением устоявшихся правил, путь даже и не вполне официальных. Я использую сильно отличающийся от линуха порядок загрузки. Немного похожа только нумерация разделов. Кстати GRUB использует нумерацию разделов не 1-255, а 0-254.
Если винда их глотает, это не означает, что граблей нет. И глотает она только 0x00, 0x80..0xFF Я говорил? Или кто? Номер поста и цитату. Вот то, что фантом говорил, что его ос плюет на это, я помню. Что и Win7 выкинули эту проверку, я вроде помню. Но, то что это правильное и штатное поведение, не говорил никто и никогда. А вот на это, после появления Win7 нужно забить, и забыть. Ты эту траву больше не кури. А я тебе сейчас пишу с машины, под управлением XP SP3, загрузочный сектор которой не использует DS:SI, и загруженной с не активного раздела. И еще раз. ГДЕ КОД BOOT сектора? Это не доказывает, что ты умнее многих. История знает много примеров, когда у гениальных людей были братья идиоты. Или ты намекаешь, что твой брат компетентней нас? Так вот пусть он тебе и рассказывает, как и что. Что ты нас то пытаешь. Ссылка где? Не передергивай. Учись читать и думать. Тогда поймешь, почему на одно можно забить, на второе нужно забить, а третье обязательно нужно делать. Ссылка где? Если там все пишут, то спецификации в руки, и делай по ним. БА!, да тут Бил Гейтс яще одна штука. Вот Билли, бери брата, бери спецификации, и ДЕЛАЙ, и не парь мозг тем, кто разбирается в вопросе, и тратит свое личное время, пытаясь тебе что-то объяснить.
Видимо, мой сарказм остался незамеченным. У меня универсальные первичные загрузчики - они могут устанавливаться и на цельное устройство, и в раздел. -мои тоже. но ты же пишешь например в fat тип диска? и ты знаешь что если ch<>0 то его передали, а кто MBR наверно) У меня номера разделов внутри расширенного начинаются с 5 (т.е. > 4). Я просто последовательно ищу нужный раздел внутри расширенного по номеру, что совершенно не уступает по производительности твоему варианту и в отличии от него не требует отметки таких разделов активными, что вообще-то противоречит общепринятым правилам. -я понял. и про нумерацию с 1 а не 0 тоже понял. только я не про то как твоя система ищет напримар раздел 7. я про то как тебе его преподает mbr. как она определяет что там в расширенном 7 есть система. и надо грезить ее и передать в dh=7?? Я когда-то тебе отвечал на этот вопрос. Я не хочу, чтобы некритичные ошибки в разметке диска приводили к невозможности загрузки и инициализации моей системы. -она запустится и повиснит. например у тебя два активных. твой второй. винда первый. пока твой mbr работает в режиме обычного все норм. грузится винда. но при нажатии alt грузится алтернативный второй-твой. и тут вопрос как твоя система поймет что ты это 2 а не первый активный раздел. ведь mbr проглатила такой несущественный свиду баг. Я могу только не соглашаться с откровенными неточностями и полным пренебрежением устоявшихся правил, путь даже и не вполне официальных. Я использую сильно отличающийся от линуха порядок загрузки. Немного похожа только нумерация разделов. Кстати GRUB использует нумерацию разделов не 1-255, а 0-254. -я здесь именно про систему передачи раздела, а не загрузку в целом. я сам хотел пользоваться multiboot спецификацией, пока не увидил что сама линух не совсем по ней грузится.