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

 
 
> Разбивка 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
4 страниц V  « < 2 3 4  
Start new topic
Ответов (45 - 56)
zltigo
сообщение Jul 31 2011, 20:36
Сообщение #46


Гуру
******

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



QUOTE (vvs157 @ Jul 31 2011, 22:32) *
округляете в большую сторону

до любого числа вплоть до 255.


--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post
vvs157
сообщение Jul 31 2011, 20:39
Сообщение #47


Профессионал
*****

Группа: Свой
Сообщений: 1 526
Регистрация: 8-04-05
Пользователь №: 3 960



Цитата(GetSmart @ Aug 1 2011, 00:22) *
То есть в современных разметках дисков (< 2TB) разделы могут быть размером кратно 1 или 63 или 63*Heads, которые (Heads) якобы не используются?
Вообще-то обычно принято раздел начинать с нового цилиндра.

Цитата(zltigo @ Aug 1 2011, 00:36) *
до любого числа вплоть до 255.
rolleyes.gif Естественно. Но BIOS'ы одного производителя деляют это одинаковым способом. Если нужна определенность.
Go to the top of the page
 
+Quote Post
GetSmart
сообщение Jul 31 2011, 20:45
Сообщение #48


.
******

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



Цитата(vvs157 @ Aug 1 2011, 01:39) *
Вообще-то обычно принято раздел начинать с нового цилиндра.

Ещё одна забавная неоднозначная формулировка sm.gif
С нового цилиндра винта в формате АТА или в формате ОС? Но ведь ОС не использует CHS для больших винтов. Там нет цилиндров. Или есть?


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


Гуру
******

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



QUOTE (vvs157 @ Jul 31 2011, 22:39) *
rolleyes.gif Естественно. Но BIOS'ы одного производителя деляют это одинаковым способом. Если нужна определенность.

Кто это делает в посте №42. В результате полная определенность для файловой системы стоящей на диске/разделе.


--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post
vvs157
сообщение Jul 31 2011, 20:58
Сообщение #50


Профессионал
*****

Группа: Свой
Сообщений: 1 526
Регистрация: 8-04-05
Пользователь №: 3 960



Цитата(GetSmart @ Aug 1 2011, 00:45) *
Ещё одна забавная неоднозначная формулировка sm.gif
С нового цилиндра винта в формате АТА или в формате ОС? Но ведь ОС не использует CHS для больших винтов. Там нет цилиндров. Или есть?
Цилиндров там конечно нет. Но так как раньше они были, то выравнивание делается по старым традициям - для совместимости PT MBR в части записи CHS.
Go to the top of the page
 
+Quote Post
GetSmart
сообщение Jul 31 2011, 21:31
Сообщение #51


.
******

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



Цитата(vvs157 @ Aug 1 2011, 01:58) *
Цилиндров там конечно нет. Но так как раньше они были, то выравнивание делается по старым традициям - для совместимости PT MBR в части записи HS.

Значит ли это, что объём диска ограничивается усечением последнего неполного цилиндра? (с учётом, вероятно, 255 головок)

И сразу же второй вопрос. Если я на голом диске создам первый раздел с Heads=16, то можно ли будет "отхватить" от винта больше места, т.к. остаток на неполном цилиндре будет в районе 1..15 головок.

Цитата(vvs157 @ Aug 1 2011, 01:58) *
... то выравнивание делается по старым традициям - для совместимости PT MBR в части записи CHS.

С этим ещё один прикол был связан. Я сделал копию 1 гигового винта на другой, большой. При изменении размеров разделов Acronis Partition-ом у меня начало разделов менялись кратно 255 головкам. Хотя в MBR и старого и нового винта стояло кол-во головок = 32. Точнее, в новом/большом стояло сразу после копирования один-в-один. После работы с Acronis оно поменялось на 255.

Цитата(vvs157 @ Aug 1 2011, 01:35) *
Да как-то никогда надобности в ней не было. Ее легко отреверсить. Берете LBAmax , делите на 63*1024, округляете в большую сторону - получите фиктивное число головок.

Эта формула мне не внушает доверия. Т.к. мне почему-то попадались кол-во головок 32,64 и 255. Возможно ещё существуют 16 и 128. Про остальные значения я не уверен, что они разрешены. Но и не отрицаю. До сих пор ясной картины нету.

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


--------------------
Заблуждаться - Ваше законное право :-)
Go to the top of the page
 
+Quote Post
vvs157
сообщение Aug 1 2011, 09:03
Сообщение #52


Профессионал
*****

Группа: Свой
Сообщений: 1 526
Регистрация: 8-04-05
Пользователь №: 3 960



Цитата(GetSmart @ Aug 1 2011, 01:31) *
Значит ли это, что объём диска ограничивается усечением последнего неполного цилиндра? (с учётом, вероятно, 255 головок)
Нет, конечно. Руками Вы можете до разметки выставить, все, что угодно, главное кратно размеру кластера.

Цитата(GetSmart @ Aug 1 2011, 01:31) *
С этим ещё один прикол был связан. Я сделал копию 1 гигового винта на другой, большой. При изменении размеров разделов Acronis Partition-ом у меня начало разделов менялись кратно 255 головкам. Хотя в MBR и старого и нового винта стояло кол-во головок = 32. Точнее, в новом/большом стояло сразу после копирования один-в-один. После работы с Acronis оно поменялось на 255.
Правильно, для систем с LBA CHS не имеет принципиального значения.
Мне не совсем понятен практический аспект Вашего интереса к этому вопросу.
Go to the top of the page
 
+Quote Post
GetSmart
сообщение Aug 1 2011, 10:05
Сообщение #53


.
******

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



Цитата(vvs157 @ Aug 1 2011, 14:03) *
Правильно, для систем с LBA CHS не имеет принципиального значения.
Мне не совсем понятен практический аспект Вашего интереса к этому вопросу.

Один из главных вопросов - совместимость вверх-вниз.
В частности, взятие старого винта от старой системы, переразбивка или другие работы с ним под виндой и установка этого же винта обратно в старую систему. Далее, почти то же самое, но с копированием малого винта на больший, опять же с обратной установкой. Т.к. доставать старые малые рабочие винты сейчас большая проблема, то проще и дешевле достать винт большего объёма. При этом возникают вопросы - а как поведёт себя старая система, на которой не используется LBA функции Int 13. Например MS-DOS 6.x или WIN95 в режиме DOS.

Цитата(vvs157 @ Aug 1 2011, 14:03) *
Нет, конечно. Руками Вы можете до разметки выставить, все, что угодно, главное кратно размеру кластера.

Имелось ввиду не размер логического диска, а общий размер всех разделов на винте. Я, например, заметил усечение последнего цилиндра в последнем разделе. Поэтому подумал, что если в этот раздел включить последний неполный цилиндр, а в логическом диске сделать всё корректно, не вылезая за общий размер винта, то как поведёт себя система?

Последний неполный цилиндр явно указывается на винтах <8Gb. Но и на винтах < 2TB он косвенно присутствует, если поделить общее число секторов всех разделов на 63 и на 255. Поэтому ошибается тот, кто утверждает, что их там нет. Даже Вики. Во всяком случае, без обязательных оговорок. Как и собственно упоминание CHS в вики без оговорок какого уровня эта CHS. Такое разгильдяйство в статьях меня откровенно достало.

Сообщение отредактировал GetSmart - Aug 1 2011, 10:54


--------------------
Заблуждаться - Ваше законное право :-)
Go to the top of the page
 
+Quote Post
vvs157
сообщение Aug 1 2011, 13:39
Сообщение #54


Профессионал
*****

Группа: Свой
Сообщений: 1 526
Регистрация: 8-04-05
Пользователь №: 3 960



Цитата(GetSmart @ Aug 1 2011, 14:05) *
Один из главных вопросов - совместимость вверх-вниз.
В частности, взятие старого винта от старой системы, переразбивка или другие работы с ним под виндой и установка этого же винта обратно в старую систему.
Проблем быть не должно. Очень старые винчестеры не всегда опознаются USB-IDE шнурками.

Цитата(GetSmart @ Aug 1 2011, 14:05) *
Далее, почти то же самое, но с копированием малого винта на больший, опять же с обратной установкой. Т.к. доставать старые малые рабочие винты сейчас большая проблема, то проще и дешевле достать винт большего объёма. При этом возникают вопросы - а как поведёт себя старая система, на которой не используется LBA функции Int 13. Например MS-DOS 6.x или WIN95 в режиме DOS.
На очень старых системах винты >8G скорее всего вообще не опознаются - БИОС без EXT - они либо вообще не видятся БИОС'ом, либо показываются несуразные значения. Если БИОС правильно определил размер - то все будет работать.

Цитата(GetSmart @ Aug 1 2011, 14:05) *
на которой не используется LBA функции Int 13. Например MS-DOS 6.x или WIN95 в режиме DOS.
DOS (тот, что в WIN95 OSR2) c LBA работать умеет, так как там есть уже FAT32. Про Win95 без OSR2 - не знаю, так как не было на чем испытывать, но так там и FAT16, и никаких "толстых" дисков.
Go to the top of the page
 
+Quote Post
zltigo
сообщение Aug 1 2011, 14:13
Сообщение #55


Гуру
******

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



QUOTE (vvs157 @ Aug 1 2011, 15:39) *
Про Win95 без OSR2 - не знаю, так как не было на чем испытывать, но так там и FAT16, и никаких "толстых" дисков.

Хоть DOS6 - нималейших проблем - первый раздел многогигабайтового диска делается размером до 2G под FAT16 и вперед с песней.





--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post
GetSmart
сообщение Aug 1 2011, 14:25
Сообщение #56


.
******

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



Цитата(vvs157 @ Aug 1 2011, 18:39) *
Проблем быть не должно. Очень старые винчестеры не всегда опознаются USB-IDE шнурками.

У меня Win XP с IDE на материнке.


Цитата(vvs157 @ Aug 1 2011, 18:39) *
На очень старых системах винты >8G скорее всего вообще не опознаются - БИОС без EXT - они либо вообще не видятся БИОС'ом, либо показываются несуразные значения. Если БИОС правильно определил размер - то все будет работать.

Недавно проверял комп с 80486 у которого биос только 8 гиг видит. Втыкаю винт на 40 гиг, прекрасно работаю с первыми 8-мью от него. Причём винт в биосе определяется как 8 гиговый sm.gif


Цитата(vvs157 @ Aug 1 2011, 18:39) *
DOS (тот, что в WIN95 OSR2) c LBA работать умеет, так как там есть уже FAT32. Про Win95 без OSR2 - не знаю, так как не было на чем испытывать, но так там и FAT16, и никаких "толстых" дисков.

"Толстые" диски там без проблем. Другое дело, что логический диск FAT16 ограничен 2 гигами. А кол-во логических дисков там может быть уйма, друг за дружкой. Даже дос 6.22 может с десяток подряд их видеть в доп.разделе винта. А то и больше.

Сообщение отредактировал GetSmart - Aug 1 2011, 14:28


--------------------
Заблуждаться - Ваше законное право :-)
Go to the top of the page
 
+Quote Post
xemul
сообщение Aug 1 2011, 14:53
Сообщение #57



*****

Группа: Свой
Сообщений: 1 928
Регистрация: 11-07-06
Пользователь №: 18 731



На больших АТА-шных винтах для совместимости с древними системами обычно есть джамперы, ограничивающие ёмкость винта и/или число голов для режима CHS.
Большинство старых АВАРД-овских биосов (4.5х) поддавалось леченью на предмет поддержки винтов до 137 ГБ в LBA моде (см. rom.by). (c биосами АМИ (6.х), когда меня эта тема интересовала, было неоднозначно). После леченья MSDOS 6.22 спокойно работала с винта, стоящего в биосе в LBA моде (ограничения FAT16, естесно, сохранялись).
Для совсем странных комбинаций винтов и биосов можно ограничить эффективную ёмкость винта до поддерживаемой FAT16 утилой от производителя или просто mhdd, задать в биосе CHS и не забыть записать эти CHS на бамажке, приклеенной к винту.
Go to the top of the page
 
+Quote Post

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

 


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


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