как отличить mbr от BR

Тема в разделе "WASM.OS.DEVEL", создана пользователем abcd008, 23 мар 2011.

  1. abcd008

    abcd008 New Member

    Публикаций:
    0
    Регистрация:
    8 фев 2009
    Сообщения:
    616
    проверь без него она виснет. иногда доходит до заставки и зависает. проверино.
    я сначала тоже не передавал это, пока не понял что винда не грузится именно из за этого) XP точно 100%
     
  2. MisHel64

    MisHel64 Member

    Публикаций:
    0
    Регистрация:
    9 мар 2011
    Сообщения:
    182
    А зря не понял. Ответив на тему в этом абзаце, ты бы понял, где не прав вот тут:
    Тебе уже сказали. 0x01...0x7F это ошибка. Загрузочный раздел может быть только один.
    Иначе ты зароешь грабли. Выбирать тебе. Спорить бесполезно. К единому мнению уже пришли.

    Код в MBR для MS-DOS писали ребята из интела. Поищи исходники MS-DOS 6.20, их еще можно найти.

    Фантом не авторитет, и говорит, что его ОС это проглотит, что не означает, что и другие, намного более распространенные ОС это проглотят. Делая более одного загрузочного раздела, делая коды отличные от 0x80 и 0x00, ты зарываешь грабли. Если ты пишешь только для себя, то зарывай сколько хочешь, а вот если на продажу, тогда слушайся, и учись.

    Не верю. (С)
     
  3. abcd008

    abcd008 New Member

    Публикаций:
    0
    Регистрация:
    8 фев 2009
    Сообщения:
    616
    это намек на то что я должен просканировать на наличие файловых систем первые сектора)
    и если их нет то это mbr.

    я согласен. но не надо забывать что ФС много и все я не знаю. и дрова точно все не напишу. так что тоже не вариант)
     
  4. MisHel64

    MisHel64 Member

    Публикаций:
    0
    Регистрация:
    9 мар 2011
    Сообщения:
    182
    Именно.

    Вот, то что меня смущает, я жирным выделил. Противоречия я тут нахожу.

    Вот из того что под рукой:
    Флешка 256MB - с MBR
    Флешка 8Гб - без МБР
    Винт без МБР, но и не BIG FDD.

    Так что думай сам.
     
  5. MisHel64

    MisHel64 Member

    Публикаций:
    0
    Регистрация:
    9 мар 2011
    Сообщения:
    182
    Посмотрел в код бот сектора, и увидел, что DS:SI трется раньше, чем используется.
    На второй машине посмотрел, там вообще не описан загрузочный раздел винды в PT.
    Что не мешает обоим спокойно грузить винду.
     
  6. abcd008

    abcd008 New Member

    Публикаций:
    0
    Регистрация:
    8 фев 2009
    Сообщения:
    616
    Тебе уже сказали. 0x01...0x7F это ошибка. Загрузочный раздел может быть только один.
    Иначе ты зароешь грабли. Выбирать тебе. Спорить бесполезно. К единому мнению уже пришли.

    -я сначало про это и говорил. а вы превели исходники где видно что винда тоже глотает значения отличные от 0 и 80. и где ей пофиг сколько активных разделов, она тупо грузится из первого.
    в моем mbr(нынешнем) все проверки есть в отличии от MS. и на наличие только одного активного. и на наличие иных значений в флаге активного. даже несколько попыток чтения и проверка на допустимое значение CHS)))
    я с этого и начинал. а вы то в одну сторону то в другую.



    Код в MBR для MS-DOS писали ребята из интела. Поищи исходники MS-DOS 6.20, их еще можно найти.
    -то есть люди которые придумывают стандарты и спецификации. и железо на котором работает MS тупее их???
    скорее они лучше знают.



    Фантом не авторитет, и говорит, что его ОС это проглотит, что не означает, что и другие, намного более распространенные ОС это проглотят. Делая более одного загрузочного раздела, делая коды отличные от 0x80 и 0x00, ты зарываешь грабли. Если ты пишешь только для себя, то зарывай сколько хочешь, а вот если на продажу, тогда слушайся, и учись.

    -сам говорил что по флагу (бит 80) на что больше похоже в винде. она глатает отличные значения. хотя я тоже за 0 и 80. так проще детект на mbr сделать)


    Не верю. (С)
    -поверь. или проверь) я не один пробовал. у меня брат программистом работает) точно поумнее многих будет.
    я не говорю про все но XP точно. и эти поля я уже писал описаны в спецификациях.
    ВЫ опять противоречите себе. то придерживайся всех , то забей это ерунда. ЭТО не даром пишут м открытых спецификациях. чтоб не мудрили. тогда и работать все будет везде одинаково.




    я например в своей системе собираюсь сделать выбор режима. совместимость, или опытный пользователь(сис админ)
    который сам решит сколько чего создавать. а система проглотит. но по умолчанию будет стандарт.
     
  7. MisHel64

    MisHel64 Member

    Публикаций:
    0
    Регистрация:
    9 мар 2011
    Сообщения:
    182
    1) Ссылку на "boot bios спецификации" и точное место, где это описано.
    2) Дизасемлированный код BOOT сектора от ХРюши, и адрес где используется переданный указатель.

    Блин, не хотел прибегать к этим тролиным приемам, но видно придется.

    Ты сам себе противоречишь.

    Ты не прав. Как работают *NIX загрузчики ты не знаешь, даже в теории.
    Возми код, и посмотри, а потом теории строй.
     
  8. abcd008

    abcd008 New Member

    Публикаций:
    0
    Регистрация:
    8 фев 2009
    Сообщения:
    616
    чем грузишь grub?
     
  9. MisHel64

    MisHel64 Member

    Публикаций:
    0
    Регистрация:
    9 мар 2011
    Сообщения:
    182
    Тебя не правильно информировали. И убеждает меня в этом код в БС сидящий в загрузочном разделе.
     
  10. abcd008

    abcd008 New Member

    Публикаций:
    0
    Регистрация:
    8 фев 2009
    Сообщения:
    616
    а как их bios показывает и винда определяет?

    посмотри здесь поле s_magic
    http://www.nongnu.org/ext2-doc/ext2.html#S-MAGIC
     
  11. MisHel64

    MisHel64 Member

    Публикаций:
    0
    Регистрация:
    9 мар 2011
    Сообщения:
    182
    Нет, это намек, что нужно изучить систему взаимодействия. А потом ответ для твоей задачи станет очевидным.
     
  12. abcd008

    abcd008 New Member

    Публикаций:
    0
    Регистрация:
    8 фев 2009
    Сообщения:
    616
    я знаю multiboot спецификацию которой они придерживаются и призывают
     
  13. abcd008

    abcd008 New Member

    Публикаций:
    0
    Регистрация:
    8 фев 2009
    Сообщения:
    616
    ты сначало разберись а потом говори. твоя фраза правда)
    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
     
  14. Phantom_84

    Phantom_84 New Member

    Публикаций:
    0
    Регистрация:
    6 июн 2007
    Сообщения:
    820
    Видимо, мой сарказм остался незамеченным. У меня универсальные первичные загрузчики - они могут устанавливаться и на цельное устройство, и в раздел.


    У меня номера разделов внутри расширенного начинаются с 5 (т.е. > 4). Я просто последовательно ищу нужный раздел внутри расширенного по номеру, что совершенно не уступает по производительности твоему варианту и в отличии от него не требует отметки таких разделов активными, что вообще-то противоречит общепринятым правилам.

    Я когда-то тебе отвечал на этот вопрос. Я не хочу, чтобы некритичные ошибки в разметке диска приводили к невозможности загрузки и инициализации моей системы.


    Я могу только не соглашаться с откровенными неточностями и полным пренебрежением устоявшихся правил, путь даже и не вполне официальных. Я использую сильно отличающийся от линуха порядок загрузки. Немного похожа только нумерация разделов. Кстати GRUB использует нумерацию разделов не 1-255, а 0-254.
     
  15. MisHel64

    MisHel64 Member

    Публикаций:
    0
    Регистрация:
    9 мар 2011
    Сообщения:
    182
    Если винда их глотает, это не означает, что граблей нет. И глотает она только 0x00, 0x80..0xFF

    Я говорил? Или кто? Номер поста и цитату. Вот то, что фантом говорил, что его ос плюет на это, я помню. Что и Win7 выкинули эту проверку, я вроде помню. Но, то что это правильное и штатное поведение, не говорил никто и никогда.

    А вот на это, после появления Win7 нужно забить, и забыть.

    Ты эту траву больше не кури.

    А я тебе сейчас пишу с машины, под управлением XP SP3, загрузочный сектор которой не использует DS:SI, и загруженной с не активного раздела. И еще раз. ГДЕ КОД BOOT сектора?

    Это не доказывает, что ты умнее многих. История знает много примеров, когда у гениальных людей были братья идиоты.
    Или ты намекаешь, что твой брат компетентней нас? Так вот пусть он тебе и рассказывает, как и что. Что ты нас то пытаешь.

    Ссылка где?

    Не передергивай. Учись читать и думать. Тогда поймешь, почему на одно можно забить, на второе нужно забить, а третье обязательно нужно делать.

    Ссылка где? Если там все пишут, то спецификации в руки, и делай по ним.

    БА!, да тут Бил Гейтс яще одна штука. Вот Билли, бери брата, бери спецификации, и ДЕЛАЙ, и не парь мозг тем, кто разбирается в вопросе, и тратит свое личное время, пытаясь тебе что-то объяснить.
     
  16. MisHel64

    MisHel64 Member

    Публикаций:
    0
    Регистрация:
    9 мар 2011
    Сообщения:
    182
    Ничем. Нет его у меня.
     
  17. Phantom_84

    Phantom_84 New Member

    Публикаций:
    0
    Регистрация:
    6 июн 2007
    Сообщения:
    820
    Если я заведу хэпэшку, специально затерев этот указатель, мой авторитет повысится? )))
     
  18. MisHel64

    MisHel64 Member

    Публикаций:
    0
    Регистрация:
    9 мар 2011
    Сообщения:
    182
    В выделенном жирным, тебя ничего не смущает?
     
  19. Phantom_84

    Phantom_84 New Member

    Публикаций:
    0
    Регистрация:
    6 июн 2007
    Сообщения:
    820
    А я GRUB GRUB'ом гружу, это ничего? )))
     
  20. abcd008

    abcd008 New Member

    Публикаций:
    0
    Регистрация:
    8 фев 2009
    Сообщения:
    616
    Видимо, мой сарказм остался незамеченным. У меня универсальные первичные загрузчики - они могут устанавливаться и на цельное устройство, и в раздел.
    -мои тоже. но ты же пишешь например в fat тип диска? и ты знаешь что если ch<>0 то его передали, а кто MBR наверно)


    У меня номера разделов внутри расширенного начинаются с 5 (т.е. > 4). Я просто последовательно ищу нужный раздел внутри расширенного по номеру, что совершенно не уступает по производительности твоему варианту и в отличии от него не требует отметки таких разделов активными, что вообще-то противоречит общепринятым правилам.
    -я понял. и про нумерацию с 1 а не 0 тоже понял.
    только я не про то как твоя система ищет напримар раздел 7.
    я про то как тебе его преподает mbr.
    как она определяет что там в расширенном 7 есть система. и надо грезить ее и передать в dh=7??


    Я когда-то тебе отвечал на этот вопрос. Я не хочу, чтобы некритичные ошибки в разметке диска приводили к невозможности загрузки и инициализации моей системы.
    -она запустится и повиснит.
    например у тебя два активных.
    твой второй. винда первый.
    пока твой mbr работает в режиме обычного все норм. грузится винда. но при нажатии alt грузится алтернативный второй-твой. и тут вопрос как твоя система поймет что ты это 2 а не первый активный раздел.
    ведь mbr проглатила такой несущественный свиду баг.


    Я могу только не соглашаться с откровенными неточностями и полным пренебрежением устоявшихся правил, путь даже и не вполне официальных. Я использую сильно отличающийся от линуха порядок загрузки. Немного похожа только нумерация разделов. Кстати GRUB использует нумерацию разделов не 1-255, а 0-254.
    -я здесь именно про систему передачи раздела, а не загрузку в целом.
    я сам хотел пользоваться multiboot спецификацией, пока не увидил что сама линух не совсем по ней грузится.