OSDev http://osdev.su/ |
|
INT 13h, AH=42h - extended read sectors http://osdev.su/viewtopic.php?f=6&t=506 |
Страница 3 из 4 |
Автор: | phantom-84 [ 11 мар 2012, 14:28 ] |
Заголовок сообщения: | Re: INT 13h, AH=42h - extended read sectors |
А эмулятор справится с таким образом? Ведь для него он будет выглядеть, как огромный файл. |
Автор: | Himik [ 11 мар 2012, 14:29 ] |
Заголовок сообщения: | Re: INT 13h, AH=42h - extended read sectors |
Я имел ввиду атрибут "Compress", который есть в диалоге "Свойства". А Sparse это где? Сам я не пробовал такой большой диск. Для VMware образ не выглядит как большой файл, если использовать режим поблочного роста, там начальный размер файла 2ГБ. |
Автор: | phantom-84 [ 11 мар 2012, 14:36 ] |
Заголовок сообщения: | Re: INT 13h, AH=42h - extended read sectors |
Himik писал(а): А Sparse это где? В самой NTFS такая возможность есть.
|
Автор: | Yoda [ 11 мар 2012, 16:35 ] |
Заголовок сообщения: | Re: INT 13h, AH=42h - extended read sectors |
phantom-84 писал(а): А эмулятор справится с таким образом? Вот уж не знаю. Пока не проверишь - не поймёшь. Himik писал(а): А Sparse это где? Sparse-файлы получаются автоматически. При записи на диск ОС проверяет, что пишешь, и если видит большое количество нулевых секторов, их на диск не пишет, а в размещении файла (data run list) помещает соответствующие идентификаторы пустых блоков. |
Автор: | Yoda [ 25 апр 2012, 11:23 ] |
Заголовок сообщения: | Re: INT 13h, AH=42h - extended read sectors |
Отчитываюсь. Большинство БИОСов не работает с LBA48! Старшие 32 бита просто игнорируются. Из протестированных только одна мамка (самая свежая, которая закуплена в комплект к тому же винчестеру) действительно работает с запросами LBA48. Но т.к. большинство протестированных мамок достаточно старые, я думаю, что ситуация не так плоха. Вполне возможно, что многие из последних мамок будут работать с запросами INT13 LBA48. |
Автор: | grindars [ 25 апр 2012, 13:09 ] |
Заголовок сообщения: | Re: INT 13h, AH=42h - extended read sectors |
Я вас не обрадую. Моя новейшая мать на X79 тоже не поддерживает. |
Автор: | SII [ 25 апр 2012, 13:44 ] |
Заголовок сообщения: | Re: INT 13h, AH=42h - extended read sectors |
Забили в связи с внедрением UEFI? |
Автор: | phantom-84 [ 25 апр 2012, 15:09 ] |
Заголовок сообщения: | Re: INT 13h, AH=42h - extended read sectors |
Да, просто забили в связи с неактуальностью (в свое время), да так и не переписали. Хотя, если я не ошибаюсь, где-то проскакивало требование к системному разделу EFI, чтобы он не располагался "слишком высоко". Yoda, то что такие случаи точно будут, я почти не сомневался. Вопрос в том, как BIOS'ы реагируют на появление большого номера. Если ругаются, то это еще ничего, а если молча проглатывают, обнуляя старшие 32 бита, то это уже хуже. В последнем случае, как вариант, можно делать что-то такое: "Загружаемый файл/каталог частично или полностью лежит за пределами пространства 2 тб. Продолжить (Y/N)?" Еще можно попробовать проверять количество секторов на устройстве, возвращаемое функцией 48h (кстати интересно, какое значение возвращают в этом поле BIOS'ы для больших дисков). |
Автор: | grindars [ 25 апр 2012, 15:32 ] |
Заголовок сообщения: | Re: INT 13h, AH=42h - extended read sectors |
Я думаю, стоит рассчитывать на худший случай и предполагать, что биос отбрасывает старшие 32 бита. |
Автор: | Yoda [ 25 апр 2012, 23:26 ] |
Заголовок сообщения: | Re: INT 13h, AH=42h - extended read sectors |
phantom-84 писал(а): Вопрос в том, как BIOS'ы реагируют на появление большого номера. Если ругаются, то это еще ничего, а если молча проглатывают, обнуляя старшие 32 бита, то это уже хуже. Все БИОСы, которые отказались работать с LBA48, ведут себя по наихудшему сценарию: просто игнорируют старшие 32 бита (обнуляют). Bochs выдаёт ошибку (и это правильно!), правда я пока не пробовал работать внутри Бокса с дисками больше 2 TiB, но в Боксе это и не актуально. phantom-84 писал(а): можно делать что-то такое: "Загружаемый файл/каталог частично или полностью лежит за пределами пространства 2 тб. Продолжить (Y/N)?" Еще можно попробовать проверять количество секторов на устройстве, возвращаемое функцией 48h (кстати интересно, какое значение возвращают в этом поле BIOS'ы для больших дисков). Функцию 48h не проверял. Да и по большому счёту чем она поможет? Варианта два - либо int13 LBA48 работает, тогда legacy загрузка с диска возможна, либо не работает, тогда упс. Я думаю, возможна определённая корреляция - UEFI-системы могут поддерживать также и LBA48 доступ по INT13. grindars, а ваша мамка UEFI поддерживает? |
Страница 3 из 4 | Часовой пояс: UTC + 3 часа |
Powered by phpBB® Forum Software © phpBB Group http://www.phpbb.com/ |