OSDev http://osdev.su/ |
|
INT 13h, AH=42h - extended read sectors http://osdev.su/viewtopic.php?f=6&t=506 |
Страница 2 из 4 |
Автор: | Станислав [ 10 мар 2012, 05:22 ] |
Заголовок сообщения: | Re: INT 13h, AH=42h - extended read sectors |
28 бита это 268 435 455*512=137 438 952 960 байт сейчас винты на 500 000 000 000 считаются стандартными. в магазин за 2Тб я не пойду, мне ни к чему |
Автор: | phantom-84 [ 10 мар 2012, 17:08 ] |
Заголовок сообщения: | Re: INT 13h, AH=42h - extended read sectors |
Yoda, меня давно интересовал вопрос, можно ли использовать двойное слово по смещению 20h в NTFS Boot Rec. для хранения старших 32 бит номера начального сектора раздела. Просто, если этого не делать, то тебе по-любому будет нужен GPT(гибридный MBR)-загрузчик (если конечно не "вшивать" номер начального сектора раздела прямо в MBR для последующей его передачи загрузчику раздела, что будет выглядеть весьма криво, прям как в GRUB'е). P.S. Ну что ответы на буржуйском форуме вселили в тебя уверенность использовать 64-разрядную адресацию или по-прежнему сильно сомневаешься, делать это или нет? |
Автор: | Yoda [ 10 мар 2012, 19:16 ] |
Заголовок сообщения: | Re: INT 13h, AH=42h - extended read sectors |
phantom-84 писал(а): Yoda, меня давно интересовал вопрос, можно ли использовать двойное слово по смещению 20h в NTFS Boot Rec. для хранения старших 32 бит номера начального сектора раздела. На этот вопрос могут ответить только Билл Гейтс и его приспешники :) Но не станут отвечать, т.к. им Билл Гейтс запретил :) phantom-84 писал(а): Просто, если этого не делать, то тебе по-любому будет нужен GPT(гибридный MBR)-загрузчик Дык, он уже сделан :) phantom-84 писал(а): P.S. Ну что ответы на буржуйском форуме вселили в тебя уверенность использовать 64-разрядную адресацию или по-прежнему сильно сомневаешься, делать это или нет? Уверенности быть не может, пока на практике не попробуешь. Это как 2*2=4, все говорят, что так должно быть, но пока сам не проверишь, гложет червяк сомнения. Но для себя я уже так и решил, как там советуют. Сделаю, если не заработает - вините BIOS, у меня всё в соответствии со спецификациями. |
Автор: | phantom-84 [ 10 мар 2012, 22:15 ] |
Заголовок сообщения: | Re: INT 13h, AH=42h - extended read sectors |
Yoda писал(а): На этот вопрос могут ответить только Билл Гейтс и его приспешники :) Опять-таки было бы интересно посмотреть на значение этого поля для раздела, лежащего выше отметки 2 тб.Но не станут отвечать, т.к. им Билл Гейтс запретил :) Цитата: Дык, он уже сделан :) А что не выкладываешь? Поддерживается интерфейс, описанный в EDD Spec.? Определяешь загрузочный раздел по флагу или по гуиду? Используешь резервную таблицу разделов? ...Я тоже планирую написать.Цитата: Сделаю, если не заработает - вините BIOS, у меня всё в соответствии со спецификациями. ...О чем я и говорил.
|
Автор: | Yoda [ 11 мар 2012, 10:17 ] |
Заголовок сообщения: | Re: INT 13h, AH=42h - extended read sectors |
phantom-84 писал(а): Опять-таки было бы интересно посмотреть на значение этого поля для раздела, лежащего выше отметки 2 тб. Я уверен, там будет 0. Во-первых, ни для чего, кроме начальной загрузки это поле не нужно, а даже родной бут не поддерживает загрузку с разделов за пределами 2Тб. Во-вторых, там полное количество секторов FAT-32. Т.е. конфликт с другой ФС и с возможным детектированием типа ФС как NTFS. phantom-84 писал(а): А что не выкладываешь? Поддерживается интерфейс, описанный в EDD Spec.? Определяешь загрузочный раздел по флагу или по гуиду? Используешь резервную таблицу разделов? ...Я тоже планирую написать. Я в своей теме отвечу. Вроде там обсуждать логичней. phantom-84 писал(а): Цитата: Сделаю, если не заработает - вините BIOS, у меня всё в соответствии со спецификациями. ...О чем я и говорил.Но червяк сомнения всё равно будет глодать – может где допустил простой ляп, а в реальных условиях не обкатал. |
Автор: | phantom-84 [ 11 мар 2012, 11:47 ] |
Заголовок сообщения: | Re: INT 13h, AH=42h - extended read sectors |
Yoda писал(а): Я уверен, там будет 0. Во-первых, ни для чего, кроме начальной загрузки это поле не нужно, а даже родной бут не поддерживает загрузку с разделов за пределами 2Тб. Во-вторых, там полное количество секторов FAT-32. Т.е. конфликт с другой ФС и с возможным детектированием типа ФС как NTFS. Да, я проверил, и экспишка, и семерка ругаются при обращении к NTFS-разделу с ненулевым значением этого поля. Т.е. это поле все-таки используется для детекта. Что касается "родного бута", то не следует забывать, что для другой ОС/ФС первичные загрузчики разделов для MBR-разметки и GPT-разметки могут отличаться. К примеру в своем загрузчике для NTFS ты можешь использовать 32-разрядную адресацию, оговорившись, что этот загрузчик предназначен для MBR-разметки. Хотя лично мне кажется, что лучше сразу делать универсальный загрузчик. Если обнаружены параметры от GPT-загрузчика, использовать 64-разрядный номер начального сектора раздела, иначе - 32-разрядный (который в случае чего можно взять и непосредственно из Boot Rec.).
|
Автор: | Yoda [ 11 мар 2012, 11:58 ] |
Заголовок сообщения: | Re: INT 13h, AH=42h - extended read sectors |
Я именно универсальный и делаю. Так проще. Спеки напишу сразу по публикации. |
Автор: | phantom-84 [ 11 мар 2012, 13:06 ] |
Заголовок сообщения: | Re: INT 13h, AH=42h - extended read sectors |
Yoda писал(а): Я именно универсальный и делаю. Так проще. Спеки напишу сразу по публикации. Я писал(а): иначе - 32-разрядный (который в случае чего можно взять и непосредственно из Boot Rec.). Кстати, мне сейчас пришла идея даже в этом случае не явно обнулять старшие 32 бита, а добавить к Boot Rec. дополнительное поле для хранения старших 32 бит (изначально обнуленное) - будет еще универсальнее.
|
Автор: | Himik [ 11 мар 2012, 14:03 ] |
Заголовок сообщения: | Re: INT 13h, AH=42h - extended read sectors |
Может быть и ничего не получится, но для проверки можно попробовать сделать виртуальный диск в каком-нибудь эмуляторе PC (Bochs, VMware и т.п.). А чтобы образ диска уместился на небольшом физическом диске, нужно использовать атрибут "сжатия" на ФС, а также поблочный рост файла (есть в VMware). |
Автор: | Yoda [ 11 мар 2012, 14:12 ] |
Заголовок сообщения: | Re: INT 13h, AH=42h - extended read sectors |
NTFS поддерживает разрежённые (sparse) файлы, в них пустые сектора (заполненные нулями), не хранятся физически на диске. Т.о. в NTFS формально можно сделать пустой или почти пустой файл любого размера. Надо будет проверить. |
Страница 2 из 4 | Часовой пояс: UTC + 3 часа |
Powered by phpBB® Forum Software © phpBB Group http://www.phpbb.com/ |