реклама на сайте
подробности

 
 
> Разбивка HDD, Как ОС определяет кол-во логических головок на винте?
GetSmart
сообщение Jul 30 2011, 10:26
Сообщение #1


.
******

Группа: Участник
Сообщений: 4 005
Регистрация: 3-05-06
Из: Россия
Пользователь №: 16 753



Собсно два вопроса. Первый вопрос:
Как ОС (MS-DOS or Windows) определяет кол-во логических головок на винте?
В первом секторе винта находится MBR с разметкой разделов.
Не знаю как в новых, больших винтах, но в старых используется CHS адресация в первых 8 байтах описания раздела. Во вторых 8 байтах идёт описание только в логических секторах. При работе через прерывание 13h необходимо задавать логическую головку. Причём это не те головки, что физически присутствуют на винте, или даже логически используются в интерфейсе ATA.


Второй вопрос:
При таком логическом переразделении винта в CHS формат прерывания 13h в конце винта отбрасывается небольшая часть свободного места из-за округления в меньшую сторону по кол-ву цилиндров. Почему нельзя округлять раздел в большую сторону, а уже в описании логического диска остаток раздела, которого физически не существует на винте просто не использовать, ограничив число секторов раздела уже внутри логического диска? Тогда было бы почти 100% использование винта, за исключением последнего неполного кластера.


--------------------
Заблуждаться - Ваше законное право :-)
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
zltigo
сообщение Jul 30 2011, 10:46
Сообщение #2


Гуру
******

Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244



QUOTE (GetSmart @ Jul 30 2011, 12:26) *
Как ОС (MS-DOS or Windows) определяет кол-во логических головок на винте?

В данных BIOS смотрят. Win, если в BIOS данные отсутствуют, сам читает 512 байтовый блок данных из HDD и разбирается с кем имеет дело.
QUOTE
Не знаю как в новых, больших винтах, но в старых используется CHS адресация

Это уже не в старых, а безумно старых, ну или сейчас разве только в мелких CF.


--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post
GetSmart
сообщение Jul 30 2011, 11:29
Сообщение #3


.
******

Группа: Участник
Сообщений: 4 005
Регистрация: 3-05-06
Из: Россия
Пользователь №: 16 753



Цитата(zltigo @ Jul 30 2011, 15:46) *
В данных BIOS смотрят. Win, если в BIOS данные отсутствуют, сам читает 512 байтовый блок данных из HDD и разбирается с кем имеет дело.

У меня в стареньком ноуте в BIOS стоит автоопределение и оно показывает логические CHS уровня ATA, а не уровня BIOS Int 13h.

Цитата(zltigo @ Jul 30 2011, 15:46) *
Это уже не в старых, а безумно старых, ну или сейчас разве только в мелких CF.

А в HDD средней "старости", которые от 8 ГБ до 2 ТБ, у них нет в конце диска неиспользуемого места из-за округления по кол-ву цилиндров/головок?

Сообщение отредактировал GetSmart - Jul 30 2011, 11:32


--------------------
Заблуждаться - Ваше законное право :-)
Go to the top of the page
 
+Quote Post
zltigo
сообщение Jul 30 2011, 11:35
Сообщение #4


Гуру
******

Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244



QUOTE (GetSmart @ Jul 30 2011, 13:18) *
оно показывает логические CHS уровня ATA, а не уровня BIOS Int 13h.

BIOS может пользоваться и пользуется (если умеет) только данными полученными с ATA. Другое дело, что он по Вашему приказу, может на них наплевать и/или воспользоваться, например, древней таблицей "стандарных" HDD. HDD это все равно, если в размер укладывается. Единственно, что может рухнуть файловая система из-за изменения размеров разделов.


QUOTE (GetSmart @ Jul 30 2011, 13:29) *
А в HDD средней "старости", которые от 8 ГБ до 2 ТБ, у них нет в конце диска неиспользуемого места из-за округления по кол-ву цилиндров/головок?

Они вообще не могут адресоваться CHS - размеры далеко уходят за возможности CHS адресации.


--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post
GetSmart
сообщение Jul 30 2011, 11:37
Сообщение #5


.
******

Группа: Участник
Сообщений: 4 005
Регистрация: 3-05-06
Из: Россия
Пользователь №: 16 753



Цитата(zltigo @ Jul 30 2011, 16:33) *
BIOS может пользоваться и пользуется (если умеет) только данными полученными с ATA.

Ну это явно не так. Int 13 как раз к BIOS относится. Если, конечно, его не перехватывает ОС, что ещё нужно подтвердить.
Int 13 принимает в виде параметров CHS уровня BIOS, а не уровня АТА.

Цитата(zltigo @ Jul 30 2011, 16:35) *
Они вообще не могут адресоваться CHS - размеры далеко уходят за возможности CHS адресации.

Вопрос не в этом. Читайте внимательно.


--------------------
Заблуждаться - Ваше законное право :-)
Go to the top of the page
 
+Quote Post
zltigo
сообщение Jul 30 2011, 11:43
Сообщение #6


Гуру
******

Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244



QUOTE (GetSmart @ Jul 30 2011, 13:37) *
Ну это явно не так. Int 13 как раз к BIOS относится. Если, конечно, его не перехватывает ОС, что ещё нужно подтвердить.
Int 13 принимает в виде параметров CHS уровня BIOS, а не уровня АТА.

Когда сами себе сможете объяснить, что написали, то попробуйте задать вопрос еще раз.


--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post
GetSmart
сообщение Jul 30 2011, 11:50
Сообщение #7


.
******

Группа: Участник
Сообщений: 4 005
Регистрация: 3-05-06
Из: Россия
Пользователь №: 16 753



Цитата(zltigo @ Jul 30 2011, 16:43) *
Когда сами себе сможете объяснить, что написали, то попробуйте задать вопрос еще раз.

Объясняю.
В BIOS у меня написано, что кол-во головок 15. В MBR винта, как и в загр.секторе диска С, указано, что кол-во головок 255. Через Int 13 я могу считывать головки 0-254. То есть не 15, которые в настройках BIOS и передаются через АТА. На каком-то уровне ОС/BIOS происходит конвертация CHS OS (BIOS?) в CHS ATA.

Я конечно же знаю про функции 4x прерывания int 13, использующие линейную одномерную адресацию по логическим секторам, но сейчас не об этом, а о функциях < 10h Int 13h.

Сообщение отредактировал GetSmart - Jul 30 2011, 12:21


--------------------
Заблуждаться - Ваше законное право :-)
Go to the top of the page
 
+Quote Post
zltigo
сообщение Jul 30 2011, 12:08
Сообщение #8


Гуру
******

Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244



QUOTE (GetSmart @ Jul 30 2011, 13:50) *
Объясняю.
В BIOS у меня написано, что кол-во головок 15. В MBR винта, как и в загр.секторе диска С, указано, что кол-во головок 255. Через Int 13 я могу считывать головки 0-254.

Типа INT13h/AH=13h ?
QUOTE
То есть не 15, которые в настройках BIOS и передаются через АТА. На каком-то уровне ОС/BIOS происходит конвертация CHS OS (BIOS?) в CHS ATA.
о функциях < 10h Int 13h.

Ну и какая такая функция AH < 10h Вам возвращает параметры диска?



--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post
GetSmart
сообщение Jul 30 2011, 12:17
Сообщение #9


.
******

Группа: Участник
Сообщений: 4 005
Регистрация: 3-05-06
Из: Россия
Пользователь №: 16 753



Цитата(zltigo @ Jul 30 2011, 17:08) *
Ну и какая такая функция AH < 10h Вам возвращает параметры диска?

Никакая не возвращает. По крайней мере я не знаю какая и это не важно в моих вопросах.
Взять к примеру функции 02h и 03h. Они не возвращают, а принимают в качестве параметров CHS уровня OS/BIOS. Точнее, я не знаю кому принадлежит этот уровень. Проще называть уровня Int 13h func < 40h. Эти параметры 100% отличаются от уровня CHS ATA. Мне непонятно, откуда Int 13 узнаёт сколько на этом уровне будет головок и как их конвертировать в CHS ATA.

Сообщение отредактировал GetSmart - Jul 30 2011, 12:20


--------------------
Заблуждаться - Ваше законное право :-)
Go to the top of the page
 
+Quote Post
zltigo
сообщение Jul 30 2011, 12:24
Сообщение #10


Гуру
******

Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244



QUOTE (GetSmart @ Jul 30 2011, 14:17) *
Никакая не возвращает. По крайней мере я не знаю какая и это не важно в моих вопросах.
Взять к примеру функции 02h и 03h. Они не возвращают, а принимают в качестве параметров CHS уровня OS/BIOS. Эти параметры 100% отличаются от уровня CHS ATA.

Прежде, чем обратиться, Вы должны спросить параметры. Это 13h функция. Начиная с MSDOS 5.0 это ДОСОВСКАЯ, а не BOIS функция. Соответственно она все ретранслирует. Для обращения так-же производится ретрансляция. Иначе ~500 мегабайт был предел.


--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post
GetSmart
сообщение Jul 30 2011, 12:30
Сообщение #11


.
******

Группа: Участник
Сообщений: 4 005
Регистрация: 3-05-06
Из: Россия
Пользователь №: 16 753



Цитата(zltigo @ Jul 30 2011, 17:24) *
Прежде, чем обратиться, Вы должны спросить параметры. Это 13h функция. Начиная с MSDOS 5.0 это ДОСОВСКАЯ, а не BOIS функция. Соответственно она все ретранслирует. Для обращения так-же производится ретрансляция.

ОК. А DOS откуда узнаёт, ведь это какой-то виртуальный уровень?
DOS это выясняет из MBR или загрузочного сектора логического диска?

Кроме того, ещё до запуска DOS, то бишь во время запуска загрузочного сектора используется Int 13h для загрузки IO.SYS и Int 13h передаются в виде параметров CHS уже этого виртуального уровня, якобы неизвестного BIOS.

Сообщение отредактировал GetSmart - Jul 30 2011, 12:32


--------------------
Заблуждаться - Ваше законное право :-)
Go to the top of the page
 
+Quote Post
zltigo
сообщение Jul 30 2011, 12:33
Сообщение #12


Гуру
******

Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244



QUOTE (GetSmart @ Jul 30 2011, 14:30) *
ОК. А DOS откуда узнаёт, ведь это какой-то виртуальный уровень?
DOS это выясняет из MBR или загрузочного сектора логического диска?

Уже писал, из области данных BIOS. BIOS считывает идентификатор IDE. Только пересчет тех CHS которые и видите в BIOS ведется под максимальные 255 головок и 63 сектора.


--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post
GetSmart
сообщение Jul 30 2011, 12:38
Сообщение #13


.
******

Группа: Участник
Сообщений: 4 005
Регистрация: 3-05-06
Из: Россия
Пользователь №: 16 753



Цитата(zltigo @ Jul 30 2011, 17:33) *
Только пересчет тех CHS которые и видите в BIOS ведется под максимальные 255 головок и 63 сектора.

А вот и нет!
Пересчёт может быть под разные варианты. Как минимум мне попадались 255, 64,32,16. Не суть важно что там возвращает INT13h/AH=13h. Важно откуда Int 13 узнаёт это магическое число головок.


--------------------
Заблуждаться - Ваше законное право :-)
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- GetSmart   Разбивка HDD   Jul 30 2011, 10:26
|- - zltigo   QUOTE (GetSmart @ Jul 30 2011, 14:38) Пер...   Jul 30 2011, 12:42
|- - GetSmart   Цитата(zltigo @ Jul 30 2011, 17:42) Сомне...   Jul 30 2011, 12:49
|- - zltigo   QUOTE (GetSmart @ Jul 30 2011, 14:49) Всё...   Jul 30 2011, 12:51
|- - GetSmart   Цитата(zltigo @ Jul 30 2011, 17:51) Упуст...   Jul 30 2011, 12:54
|- - zltigo   QUOTE (GetSmart @ Jul 30 2011, 14:54) Пос...   Jul 30 2011, 12:59
|- - GetSmart   Цитата(zltigo @ Jul 30 2011, 17:59) Естес...   Jul 30 2011, 13:08
|- - zltigo   QUOTE (GetSmart @ Jul 30 2011, 15:08) Ваш...   Jul 30 2011, 13:23
|- - GetSmart   Цитата(zltigo @ Jul 30 2011, 18:23) Угу, ...   Jul 30 2011, 13:29
|- - zltigo   QUOTE (GetSmart @ Jul 30 2011, 15:29) Я н...   Jul 30 2011, 13:51
- - GetSmart   Очередная истерика?   Jul 30 2011, 14:11
|- - zltigo   QUOTE (GetSmart @ Jul 30 2011, 16:11) Оче...   Jul 30 2011, 14:16
|- - GetSmart   Цитата(zltigo @ Jul 30 2011, 19:16) Почем...   Jul 30 2011, 14:43
- - follow_me   боже , из вас никто про LBA не слышал ? и про LBA...   Jul 30 2011, 17:17
|- - GetSmart   Цитата(follow_me @ Jul 30 2011, 22:17) Че...   Jul 30 2011, 17:49
|- - GetSmart   Цитата(follow_me @ Jul 30 2011, 22:17) пр...   Jul 31 2011, 14:57
|- - zltigo   QUOTE (GetSmart @ Jul 31 2011, 16:57) zlt...   Jul 31 2011, 18:40
- - Xenia   Если вам не нравятся советы мудрого Zltigo , то мо...   Jul 31 2011, 18:02
|- - GetSmart   Цитата(Xenia @ Jul 31 2011, 23:02) то мож...   Jul 31 2011, 18:53
|- - zltigo   QUOTE (GetSmart @ Jul 31 2011, 20:53) И п...   Jul 31 2011, 19:09
||- - GetSmart   Цитата(zltigo @ Aug 1 2011, 00:09) в блок...   Jul 31 2011, 19:16
||- - zltigo   QUOTE (GetSmart @ Jul 31 2011, 21:16) На ...   Jul 31 2011, 19:30
|- - vvs157   Цитата(GetSmart @ Jul 31 2011, 22:48) Спа...   Jul 31 2011, 19:25
|- - GetSmart   Цитата(vvs157 @ Aug 1 2011, 00:25) Есть с...   Jul 31 2011, 19:42
|- - zltigo   QUOTE (GetSmart @ Jul 31 2011, 21:34) Вот...   Jul 31 2011, 19:48
|- - vvs157   Цитата(GetSmart @ Jul 31 2011, 23:34) Это...   Jul 31 2011, 19:48
|- - GetSmart   Цитата(vvs157 @ Aug 1 2011, 00:48) Главно...   Jul 31 2011, 19:51
||- - zltigo   QUOTE (GetSmart @ Jul 31 2011, 21:51) В т...   Jul 31 2011, 20:01
||- - vvs157   Цитата(GetSmart @ Jul 31 2011, 23:51) В т...   Jul 31 2011, 20:13
||- - GetSmart   Цитата(vvs157 @ Aug 1 2011, 01:13) Они (B...   Jul 31 2011, 20:22
||- - zltigo   QUOTE (GetSmart @ Jul 31 2011, 22:22) А В...   Jul 31 2011, 20:28
||- - vvs157   Цитата(GetSmart @ Aug 1 2011, 00:22) А Вы...   Jul 31 2011, 20:35
|||- - zltigo   QUOTE (vvs157 @ Jul 31 2011, 22:32) округ...   Jul 31 2011, 20:36
||- - vvs157   Цитата(GetSmart @ Aug 1 2011, 00:22) То е...   Jul 31 2011, 20:39
||- - GetSmart   Цитата(vvs157 @ Aug 1 2011, 01:39) Вообще...   Jul 31 2011, 20:45
|||- - vvs157   Цитата(GetSmart @ Aug 1 2011, 00:45) Ещё ...   Jul 31 2011, 20:58
|||- - GetSmart   Цитата(vvs157 @ Aug 1 2011, 01:58) Цилинд...   Jul 31 2011, 21:31
|||- - vvs157   Цитата(GetSmart @ Aug 1 2011, 01:31) Знач...   Aug 1 2011, 09:03
|||- - GetSmart   Цитата(vvs157 @ Aug 1 2011, 14:03) Правил...   Aug 1 2011, 10:05
|||- - vvs157   Цитата(GetSmart @ Aug 1 2011, 14:05) Один...   Aug 1 2011, 13:39
|||- - zltigo   QUOTE (vvs157 @ Aug 1 2011, 15:39) Про Wi...   Aug 1 2011, 14:13
|||- - GetSmart   Цитата(vvs157 @ Aug 1 2011, 18:39) Пробле...   Aug 1 2011, 14:25
||- - zltigo   QUOTE (vvs157 @ Jul 31 2011, 22:39) Есте...   Jul 31 2011, 20:53
|- - zltigo   QUOTE (vvs157 @ Jul 31 2011, 21:48) как B...   Jul 31 2011, 20:22
- - xemul   На больших АТА-шных винтах для совместимости с дре...   Aug 1 2011, 14:53


Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 27th July 2025 - 04:09
Рейтинг@Mail.ru


Страница сгенерированна за 0.01584 секунд с 7
ELECTRONIX ©2004-2016