Как определить количество цилиндров в жестком диске

Обновлено: 06.07.2024

Винчестеры, как и другие магнитные накопители с прямым доступом, имеют дорожковую организацию дисковой памяти. Это означает, что поверхность магнитных дисков разбивается на концентрические кольца разного диаметра – дорожки, начиная с внешнего края. Далее структуру информации на винчестере следует рассматривать отдельно с точки зрения физической и логической структур. Чаще всего путаница возникает при сравнении параметров, относящихся к различным структурам.

Физическая структура

С физической точки зрения обе поверхности всех магнитных дисков в массиве-пакете содержат дорожки. BIOS не определяет, к какому конкретно «блину» относится та или иная дорожка, поэтому все поверхности пронумерованы единой сквозной нумерацией. Каждой рабочей поверхности соответствует своя головка , по которым, собственно говоря, поверхности и нумеруются (параметр heads ). Физически максимально допустимое число головок за всю историю производства винчестеров было равно 11, но в современных накопителях более 6 головок не используется. В используемых ныне магнитных дисках число дорожек равно 80, а число дорожек жесткого диска достигает нескольких тысяч. Дорожки, как и головки, идентифицируются номером (внешняя дорожка и верхняя головка имеет нулевой номер). Количество дорожек на диске определяется поверхностной плотностью записи.

Дорожки, в свою очередь, разбиваются на сектора , являющие минимальными физическими элементами хранения и адресации данных. Чаще всего, сектора на каждой дорожке имеют фиксированный угловой размер, благодаря чему на всех дорожках располагается одинаковое количество секторов. Каждая дорожка дискеты 3,5” содержит 18 секторов. Жесткий диск имеет обычно от 17 до 63 секторов (так считает BIOS ). Реально же на дорожке современного накопителя содержится около 100 секторов, а максимальное их количество равно 256. Размер сектора определен в 512 байт. Нумерация секторов на дорожке начинается с единицы, а не с нуля, в отличие от головок и цилиндров.

Каждый сектор несет не только данные, но и служебную информацию. В начале каждого сектора записывается его заголовок ( prefix ), по которому определяется начало и номер сектора, а в конце – заключение ( suffix ), в котором находится контрольная сумма ( checksum , CRC ), необходимая для проверки целостности данных. Заголовок сектора включает в себя идентификатор ( ID ) сектора, первую CRC (контрольная сумма) и интервал включения записи. Идентификатор содержит информацию о номере цилиндра, головки и сектора. Далее следует интервал включения записи, после которого следует 512 байт данных. За данными располагается вторая CRC и интервал между записями (секторами), необходимый для того, чтобы застраховать следующий сектор от записи на предыдущий. Это может произойти из-за неравномерной скорости вращения диска. Завершает сектор прединдексный интервал, который имеет размер от 693 байт, служит для компенсации неравномерности скорости вращения диска. Таким образом, размер сектора увеличивается до 571 байта, из которых 512 байт составляют данные.

Вся эта информация записывается на заводе при низкоуровневом ( LowLewel ) форматировании, используя специальные программные средства (например, Speed Store или Disk Manager ) или команды DOS . Кроме промежутков между секторами существуют еще и промежутки между самими дорожками. Префиксы, суффиксы и промежутки как раз и составляют то пространство диска, которое теряется при форматировании.

Сектора, находящие друг над другом в пакете дисков, на которые одновременно может быть спозиционирован пакет головок, называется цилиндром . В связи с тем, что накопитель имеет несколько дисков, расположен­ных друг под другом, разбиения дисков идентичны. Поэтому при рассмот­рении жестких дисков чаще говорят о цилиндрах, чем о дорожках.

Адресация дискового пространства в BIOS

Геометрия (ёмкостные параметры) жесткого диска описываются в BIOS следующей формулой:

Общий объем (байт) = C x H x S x 512 (байт),

где С — количество цилиндров; Н – количество головок; S — количество секторов.

Следовательно, вследствие физических ограничений накопителей, BIOS может адресовать («увидеть») накопитель максимальной ёмкостью 128 Гбайт:

65536 x 16 x 256 x 512 = 128 Гбайт.

Однако из-за ограничений работы контроллера винчестера и BIOS эта величина может быть существенно сокращена. Так, до 1995 года использовался стандартный CHS -режим (стандарт ATA -1), в котором физические параметры накопителя соответствовали логическим , передаваемым в BIOS . При стандартной CHS -адресации максимальное количество цилиндров равно 1024, головок — 16, что приводит к ограниче­нию максимальной емкости жесткого диска (504 Мбайт). Кроме того, BIOS «считает», что у любого накопителя на любой дорожке должно быть ровно 63 сектора.

Современные IDE -контроллеры (начиная со стандартом ATA -2, EIDE ) поддерживают универсальный режим транс­ляции, для которого главным параметром является общее количество секторов. В большинстве BIOS появилась функция « Autodetect », которая позволяет считывать и устанавливать паспортные параметры накопителя. При инициализации накопителю переда­ются два параметра: количество головок и секторов; затем накопитель под­страивает свою логическую структуру таким образом, чтобы общая емкость не изменилась, причем коррекция осуществляется за счет цилиндров.

Максимальная емкость накопителей АТА-2 значительно увеличена за счет раз­работки улучшенной BIOS ( Enhanced BIOS ), что позволило преодолеть барьер в 504 Мбайт емкости жесткого диска. Первая модификация стандарта ATA -2 с режимом передачи PIO 3 использовала режим адресации ECHS , благодаря которому в CMOS Setup была введена опция Large и ECHS. Их надо было использовать для дисков, количество цилиндров которых превышает 1024, но к которым нельзя было применить адресацию LBA . Пересчет происходил в 2 этапа: сначала контроллер считал общее количество цилиндров, затем делил его пополам и в два раза увеличивал количество головок. Этот метод позволил адресовать 3-4 Гбайт дискового пространства.

В 1998 году для BIOS материнских плат выпустили обновление, способное решить проблему «8 Гигабайт». Была изменена адресация к прерыванию Int 13h ( DOS ), чем удалось преодолеть барьер 1024 цилиндров. Теперь для физической адресации использовались все 28 бит:

· С – 16 бит (максимум 2 16 = 65536)

· H – 4 бита (максимум 2 4 = 16)

· S – 8 бит (максимум 2 8 = 255).

Таким образом, теперь в интерфейсе ATA -5 теоретически был доступен максимальный объем винчестеров. Но биосописатели в очередной раз ошиблись. Они не учли, что при стандартном пересчете LBA с 16-ю головками и 63-мя секторами у винчестеров объемом более 33,8 Гбайт цилиндров окажется больше 65536, и они не поместятся в 16 бит отведенные под цилиндры. Эта проблема была решена в 1999 году введением простого условия: если число секторов превышает 65536 x 16 x 63 = 66060288, то тогда количество секторов приравнивать к 255. Также для некоторых BIOS существовала ошибка определения винчестеров объемом больше 65 Гбайт, которая, как обычно, решалась обновлением прошивки.

Логическая структура

Кроме того, что накопитель должен быть сконфигурирован в CMOS , его логическую структуру должна понимать операционная система. Для обращения к информации используется кластер ( allocation unit ) – минимальная логическая единица доступа к информации. Каждый кластер состоит из нескольких секторов (8 и более). Каждый кластер пронумерован и может быть либо свободен, либо монопольно занят для хранения определенного файла, даже если не все сектора внутри его заняты. Следовательно, даже файл размером несколько байт требует целого кластера. В результате, на каждом файле теряется около половины кластера. Чем больше размер кластера, тем больше потери. Использование кластеров позволяет ускорить работу, так количество кластеров существенно меньше количества секторов.

Нумерация кластеров не соответствует их порядковому расположению на дисках. При работе используется тот факт, что при записи данных используются все сектора, которые на данный момент находятся под всеми головками, таким образом, заполняется цилиндр. Прежде чем перейти к следующему цилиндру, заполняется текущий чтобы иметь возможность считывать как можно больше информации без перемещения головок.

Для DOS версии 3.0 и выше используется алгоритм следующего свободного кластера размещения файлов на диске. Кластеры устроены так, что каждый из них ссылается на последующий. При работе DOS ищет свободные кластеры не с начала диска, а с места последней записи на диск. DOS устанавливает указатель последнего записанного кластера и ищет свободные кластеры, пользуясь этим указателем. Указатель размещается в RAM и уничтожается при перезарузке. Если DOS дошла до конца диска, то указатель также удаляется, а поиск начинается с начала диска. Таким образом осуществляются операции файлами на диске.

Этот алгоритм позволяет восстанавливать удаленные файлы. При удалении файла в начало его первого кластера ставится знак «?», и все кластеры, связанные с данным считаются свободными. Указатель выставляется на следующий свободный кластер, запись продолжается в идущих далее свободных кластерах. Перезапись кластера, в котором произошло удаление, произойдет только когда указатель в новом цикле дойдет до данного кластера. Даже, если переписывается один файл поверх другого, то запись работает по такой же схеме. А для каждого нового файла используется первая свободная запись.

Файловые системы

Файловая система через использование кластеров позволяет осуществлять доступ к данным. Большинство файловых систем построено на основе таблицы размещения файлов ( file allocation table - FAT ). Наиболее распространены файловые системы FAT 12 (диски менее 16 Мбайт), FAT 16 (или просто FAT) и FAT 32.

FAT подразумевает наличие следующих структур (в порядке расположения их на диске):

· Загрузочные секторы главного и дополнительного разделов

· Загрузочный сектор логического диска

· Таблицы размещения файлов ( FAT )

· Цилиндр диагностических операций

1. Загрузочный сектор главного раздела – Master Boot Record ( MBR , Главная загрузочная запись) или Partition table ( PT , Таблица разделов) – является первым сектором на жестком диске (занимает один или более секторов). Но под этот раздел отдана целиком вся первая дорожка (цилиндр 0, головка 0, сектор 1). Он в себя включает Таблицу главного раздела, которая может содержать только четыре записи, так как больше не поместится в 512 байт. Корневой таблице разделов принадлежат адреса 01BEh-01FDh. Очевидно, что можно создать только 4 раздела, среди которых могут быть Первичные ( Primary ) и Дополнительные ( Extended ) разделы. Поэтому если на диске выделен Дополнительный раздел, то Первичных уже можно создать не более трех.

Первичный может иметь только один логический диск, в то время как количество логических в Дополнительном разделе не ограничено. Общее количество логических дисков (томов) не должно быть более 24 (для DOS ). В первом секторе Дополнительного раздела расположена его Таблица разделов с такой же структурой как и Корневая таблица разделов. В ней описываются адреса начала и конца первого логического диска в этом разделе и его файловая система, а также зоны, занимаемой остальными логическими дисками (если они есть). Все последующие разделы в Дополнительном разделе имеют аналогичную структуру.

MBR создается с помощью стандартной программы fdisk . Правда последняя накладывает некоторые ограничения: первичный раздел может быть создан только один.

Также в Главной загрузочной записи находится главный загрузочный код – небольшая программа, которая выполняется из BIOS . Она передает управление активному (загрузочному) разделу.

2. Загрузочная запись ( Boot Record ) занимает 32 первых сектора каждого логического диска (для первичного раздела – цилиндр 0, головка 1, сектор 1). Загрузочный сектор активного раздела получает управление от MBR . Он выполняет некоторые проверки и запускает с диска первый системный файл io . sys . Формирует загрузочная запись программой format . Напомню, что только Первичный раздел может быть активным. Загрузочная запись, как Корневая таблица разделов должны заканчиваться сигнатурой 55АА. По этой сигнатуре BIOS определяет, успешной ли была загрузка.

3. Таблица размещения файлов ( FAT ) – основная часть файловой системы, давшая ей название. Она представляет собой набор записей с номерами, соответствующих номерам всех кластеров на логическом диске. Каждому кластеру соответствует одно число. Для каждого кластера запись может иметь несколько стандартных значений: кластер свободен, кластер поврежден или кластер является последним кластером файла, или содержать ссылку на следующий кластер в цепочке, относящийся к тому же файлу. Получается, что в таблице хранится информация только о первом кластере цепочки кластеров одного файла.

Каждая ячейка FAT хранит значение длиной 12, 16 или 32 бита. Отсюда и пошли названия FAT 12, FAT 16 и FAT 32. Размер записей в таблице FAT определяет максимальный размер логического тома. Так как в FAT 16 запись представлялась 2-байтовым числом, то на логическом диске не могло быть более 65536 кластеров: 2 16 = 65536. В результате несложных вычислений мы находим, что вся таблица FAT помещается в 1 Мбайте. Этим и пользовались вирусы типа «Чернобыль». В связи этим FAT , начиная с DOS 4.0 ограничивала объем логического диска в 2 Гбайта (ра змер кластера составлял 32 Кбайта): 32 Кб х 65536 = 2 Гб.

Операционные системы Windows 95 OSR 2 и старшие поддерживают 32-разрядную FAT с размером кластера до 64 Кбайт. Таким образом, эта система поддерживает тома размером до 2 Тбайт. А применяется она в дисках объемом от 512 Мбайт.

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

В зависимости от размера логического диска меняется и размер кластера. Для FAT 16 тома до 260 Мбайт используют кластеры размером 2 Кбайта, до 8 Гбайт – 32 Кбайта. Размеры кластеров и записей определяются при форматировании высоко уровня. Для FAT 32 зависимость размера кластера от размера тома приведена в таблице.

Сектор-цилиндр ( CHS ) - это ранний метод присвоения адресов каждому физическому блоку данных на жестком диске .

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

Были представлены адреса CHS вместо простых линейных адресов (от 0 до общего количества блоков на диске - 1), потому что ранние жесткие диски не поставлялись со встроенным контроллером диска , который скрывал бы физическую структуру. Использовалась отдельная универсальная карта контроллера, поэтому операционная система должна была знать точную физическую «геометрию» конкретного диска, подключенного к контроллеру, для правильной адресации блоков данных.

По мере усложнения геометрии (например, с введением зональной записи битов ) и увеличения размеров дисков со временем метод адресации CHS стал ограничивающим. С конца 80-х годов прошлого века жесткие диски начали поставляться со встроенным контроллером диска, который хорошо знал физическую геометрию; однако они будут сообщать компьютеру ложную геометрию, например, о большем количестве головок, чем есть на самом деле, чтобы получить больше адресного пространства. Эти логические значения CHS будут преобразованы контроллером, поэтому адресация CHS больше не соответствует никаким физическим атрибутам диска.

К середине 1990-х интерфейсы жестких дисков заменили схему CHS на логическую адресацию блоков (LBA), но многие инструменты для управления таблицей разделов основной загрузочной записи (MBR) все еще выравнивали разделы по границам цилиндров; таким образом, артефакты адресации CHS все еще наблюдались в программном обеспечении для разбиения на разделы к концу 2000-х годов.

В начале 2010-х годов ограничения размера диска, налагаемые MBR, стали проблематичными, и таблица разделов GUID (GPT) была разработана в качестве замены; современные компьютеры, использующие прошивку UEFI без поддержки MBR, больше не используют никаких понятий из адресации CHS.

СОДЕРЖАНИЕ

Определения

Адресация CHS - это процесс идентификации отдельных секторов (также называемых физическим блоком данных) на диске по их положению на дорожке , где дорожка определяется номерами головки и цилиндра . Термины объясняются снизу вверх, поскольку диск, адресующий сектор, является наименьшей единицей. Контроллеры дисков могут вводить преобразования адресов для сопоставления логических позиций с физическими, например, при записи битов зоны на более коротких (внутренних) дорожках хранится меньшее количество секторов, форматы физических дисков не обязательно являются цилиндрическими, а номера секторов на дорожке могут быть искажены.

Секторов

Дискеты и контроллеры используют размер физических секторов 128, 256, 512 и 1024 байта (например, PC / AX), при этом форматы с 512 байтами на физический сектор стали доминирующими в 1980-х годах.

Наиболее распространенный размер физического сектора для жестких дисков сегодня составляет 512 байтов, но были жесткие диски с 520 байтами на сектор и для машин, не совместимых с IBM. В 2005 году некоторые специальные жесткие диски Seagate использовали размер сектора 1024 байта на сектор. Жесткие диски расширенного формата используют 4096 байт на физический сектор ( 4Kn ) с 2010 года, но также смогут имитировать 512-байтовые сектора ( 512e ) в течение переходного периода.

В магнитооптических приводах используются сектора размером 512 и 1024 байта на 5,25-дюймовых накопителях и 512 и 2048 байтов на 3,5-дюймовых накопителях.

При адресации CHS номера секторов всегда начинаются с 1 , нет сектора 0 , что может привести к путанице, поскольку схемы адресации логических секторов обычно начинают отсчет с 0, например, адресация логических блоков (LBA) или «относительная адресация секторов», используемая в ДОС.

Для геометрии физического диска максимальное количество секторов определяется форматом низкого уровня диска. Однако для доступа к диску с помощью BIOS компьютеров, совместимых с IBM-PC, номер сектора был закодирован шестью битами, что дало максимальное количество 111111 (63) секторов на дорожку. Этот максимум все еще используется для виртуальной геометрии CHS.

Треки

Эти дорожки являются тонкими концентрическими круговыми полосками секторов. Для чтения одной дорожки требуется хотя бы одна голова. Что касается геометрии диска, термины дорожка и цилиндр тесно связаны. Обычным термином является дорожка для односторонних или двусторонних гибких дисков ; и для цилиндров с более чем двумя головками это общий термин. Строго говоря, дорожка - это заданная комбинация, состоящая из секторов, а цилиндр - из секторов. C H SPT SPT×H

Цилиндров

Цилиндр - это разделение данных на диске , используемое в режиме адресации CHS диска с фиксированной блочной архитектурой или режиме адресации записи головки цилиндра (CCHHR) диска CKD .

Идея состоит в том, что концентрические полые цилиндрические срезы проходят через физические диски ( пластины ), собирая соответствующие круглые дорожки, выровненные через стопку пластин. Количество цилиндров в дисководе в точности равно количеству дорожек на одной поверхности в дисководе. Он содержит один и тот же номер дорожки на каждом диске, охватывающий все такие дорожки на каждой поверхности диска, которая может хранить данные (независимо от того, является ли дорожка «плохой»). Цилиндры вертикально образованы гусеницами . Другими словами, дорожка 12 на диске 0 плюс дорожка 12 на диске 1 и т. Д. - это цилиндр 12.

Другие формы устройства хранения с прямым доступом (DASD), такие как барабанные устройства памяти или IBM 2321 Data Cell , могут давать адреса блоков, которые включают адрес цилиндра, хотя адрес цилиндра не выбирает (геометрический) цилиндрический фрагмент устройства. .

Головы

Устройство, называемое головкой, считывает и записывает данные на жесткий диск, манипулируя магнитным носителем, который составляет поверхность соответствующего диска. Естественно, у диска есть 2 стороны и, следовательно, 2 поверхности, на которых можно манипулировать данными; Обычно на тарелку приходится 2 головки, по одной с каждой стороны. (Иногда термин сторона заменяется на головку, поскольку пластины могут быть отделены от их головок, как в случае съемного носителя в дисководе для гибких дисков.)

Адресация поддерживается в IBM-PC совместимых биосов коды используется восемь бит для - теоретически до 256 голов считаются как головка 0 до 255 ( ). Однако ошибка во всех версиях Microsoft DOS / IBM PC DOS до 7.10 включительно приведет к сбою этих операционных систем при загрузке при обнаружении томов с 256 головками. Следовательно, все совместимые BIOS будут использовать сопоставления до 255 голов ( ), в том числе в виртуальной геометрии. C H S FFh 00h..FEh 255×63

Эта историческая странность может повлиять на максимальный размер диска в старом коде BIOS INT 13h, а также в старых DOS ПК или аналогичных операционных системах:

(512 bytes/sector)×(63 sectors/track)×(255 heads (tracks/cylinder))×(1024 cylinders)=8032.5 МБ , но на самом деле 512×63×256×1024=8064 МБ дает так называемое ограничение в 8 ГБ . В этом контексте соответствующее определение 8 ГБ = 8192 МБ является еще одним неправильным пределом, поскольку для этого потребуется CHS 512×64×256 с 64 секторами на дорожку.

Дорожки и цилиндры отсчитываются от 0, т. Е. Дорожка 0 является первой (самой внешней) дорожкой на гибких или других цилиндрических дисках. Старый код BIOS поддерживал десятибитную адресацию CHS с числом цилиндров до 1024 ( ). Добавление шести бит для секторов и восьми бит для голов дает 24 бита, поддерживаемые прерыванием BIOS 13h . Вычитание запрещенного сектора с номером 0 в дорожках соответствует 128 МБ для размера сектора 512 байт ( ); и подтверждает (примерно) ограничение в 8 ГБ . 1024=2 10 1024×256 128 MB=1024×256×(512 byte/sector) 8192-128=8064

Адресация CHS начинается 0/0/1 с максимального значения 1023/255/63 для 24=10+8+6 битов или 1023/254/63 для 24 битов с ограничением до 255 голов . Значения CHS, используемые для задания геометрии диска, должны учитывать цилиндр 0 и головку 0, что дает максимум ( 1024/256/63 или) 1024/255/63 для 24 бит с (256 или) 255 головками. В кортежах CHS, определяющих геометрию, S фактически означает количество секторов на дорожку, и где (виртуальная) геометрия по-прежнему соответствует емкости диска, содержащей C×H×S секторы. По мере того, как стали использоваться жесткие диски большего размера, цилиндр стал также структурой логического диска, стандартизованной на 16 065 секторов ( 16065=255×63 ).

Адресация CHS с 28 битами ( EIDE и ATA-2 ) разрешает восемь бит для секторов, все еще начинающихся с 1, то есть секторов 1 . 255, четыре бита для головок 0 . 15 и шестнадцать бит для цилиндров 0 . 65535. Это приводит к ограничению примерно в 128 ГБ ; Фактически 65536×16×255=267386880 секторы соответствуют 130560 МБ для размера сектора 512 байт. Эти 28=16+4+8 биты в ATA-2 спецификации, также охватывается списком прерываний Ральфа Брауна , и старый рабочий проект этого в настоящее время выдыхаемого стандарта был опубликован.

При старом ограничении BIOS в 1024 цилиндра и ограничении ATA в 16 головок объединенным эффектом были 1024×16×63=1032192 секторы, т. Е. Ограничение в 504 МБ для размера сектора 512. Схемы преобразования BIOS , известные как ECHS, и пересмотренный ECHS смягчили это ограничение, используя вместо него 128 или 240 из 16 головок, одновременно уменьшая количество цилиндров и секторов для размещения 1024/128/63 (ограничение ECHS: 4032 МБ ) или 1024/240/63 (пересмотренное ограничение ECHS: 7560 МБ ) для заданного общего количества секторов на диске.

Блоки и кластеры

В Unix сообщества используют термин блок для обозначения сектора или группы секторов. Например, утилита Linux fdisk до версии 2.25 отображала размеры разделов с использованием блоков размером 1024 байта .

Кластеры - это единицы размещения данных в различных файловых системах ( FAT , NTFS и т. Д.), Где данные в основном состоят из файлов. Кластеры не зависят напрямую от физической или виртуальной геометрии диска, т. Е. Кластер может начинаться в секторе, близком к концу данной дорожки, и заканчиваться в секторе на физически или логически следующей дорожке . C H C H

Сопоставление CHS с LBA

Кортежи CHS можно сопоставить с адресами LBA, используя следующую формулу:

A = ( cN голов + h ) ⋅ N секторов + ( s - 1),

где A - адрес LBA, N головок - количество головок на диске, N секторов - максимальное количество секторов на дорожку, а ( c , h , s ) - адрес CHS.

Номер логического сектора формула в ECMA -107 и ISO / IEC 9293: 1994 (ISO 9293 заменяющих: 1987) стандарты для FAT файловых систем точно соответствует формуле LBA приведенной выше: адрес логического блока и логическому номер сектора (LSN) являются синонимами. Формула не использует количество цилиндров, но требует количества головок и количества секторов на дорожку в геометрии диска, потому что один и тот же кортеж CHS обращается к разным номерам логических секторов в зависимости от геометрии. Примеры :

Для геометрии 1020 16 63 диска из 1028160 секторов CHS 3 2 1 - это LBA. 3150=((3× 16)+2)× 63 + (1-1) Для геометрии 1008 4 255 диска из 1028160 секторов CHS 3 2 1 - это LBA. 3570=((3× 4)+2)×255 + (1-1) Для геометрии 64 255 63 диска из 1028160 секторов CHS 3 2 1 - это LBA. 48321=((3×255)+2)× 63 + (1-1) Для геометрии 2142 15 32 диска из 1028160 секторов CHS 3 2 1 - это LBA. 1504=((3× 15)+2)× 32 + (1-1)

Чтобы помочь визуализировать последовательность секторов в линейной модели LBA, обратите внимание, что:

Первый сектор LBA - это сектор №0, тот же сектор в модели CHS называется сектором №1. Все секторы каждой головки / дорожки подсчитываются перед переходом к следующей головке / дорожке. Все головки / дорожки одного и того же цилиндра подсчитываются перед переходом к следующему цилиндру. Внешняя половина всего жесткого диска будет первой половиной диска.

История

Формат записи головки цилиндра использовался жесткими дисками Count Key Data (CKD) на мэйнфреймах IBM, по крайней мере, с 1960-х годов. Это в значительной степени сопоставимо с форматом сектора головки цилиндра, используемым ПК, за исключением того, что размер сектора не был фиксированным, но мог варьироваться от дорожки к дорожке в зависимости от потребностей каждого приложения. В современном использовании геометрия диска, представленная мэйнфрейму, эмулируется встроенным ПО хранилища и больше не имеет никакого отношения к геометрии физического диска.

Ранее использовавшиеся в ПК жесткие диски, такие как диски MFM и RLL , делили каждый цилиндр на равное количество секторов, поэтому значения CHS соответствовали физическим свойствам диска. Диск с кортежем CHS 500 4 32 будет иметь 500 дорожек на каждую сторону на каждой пластине, две пластины (4 головки) и 32 сектора на дорожку, всего 32 768 000 байт (31,25 МБ ).

Диски ATA / IDE были намного эффективнее при хранении данных и заменили теперь уже устаревшие диски MFM и RLL. Они используют зонную битовую запись (ZBR), где количество секторов, разделяющих каждую дорожку, зависит от расположения групп дорожек на поверхности диска. Дорожки, расположенные ближе к краю диска, содержат больше блоков данных, чем дорожки рядом с шпинделем, потому что на данной дорожке у края диска больше физического пространства. Таким образом, схема адресации CHS не может напрямую соответствовать физической геометрии таких накопителей из-за разного количества секторов на дорожку для разных регионов на пластине. Из-за этого у многих дисков все еще есть избыток секторов (размером менее 1 цилиндра) в конце диска, поскольку общее количество секторов редко, если вообще когда-либо, заканчивается на границе цилиндра.

Диск ATA / IDE может быть установлен в системной BIOS с любой конфигурацией цилиндров, головок и секторов, которые не превышают емкость диска (или BIOS), поскольку диск преобразует любое заданное значение CHS в фактический адрес для его специфическая конфигурация оборудования. Однако это может вызвать проблемы с совместимостью.

В операционных системах, таких как Microsoft DOS или более ранняя версия Windows , каждый раздел должен начинаться и заканчиваться на границе цилиндра. Только некоторые из самых современных операционных систем (включая Windows XP) могут игнорировать это правило, но это все равно может вызвать некоторые проблемы совместимости, особенно если пользователь хочет выполнить двойную загрузку на одном диске. Microsoft не следует этому правилу с инструментами для внутренних разделов диска, начиная с Windows Vista.

Скобарь

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Похожий контент

Christian Mayer

Всем привет.
Есть такая проблема. Windows 10 не загружается если подключен жесткий диск на 2 терабайта. (Систему смог установить просто вытащив из него кабель). Всего дисков 4 (160, 160, 80, 2TB) и с остальными тремя все нормально грузится, а если подключен диск на 2ТБ то система грузится до синего экрана (перед выбором ОС) и зависает. Если долго ждать то со временем появятся названия (Windows 10 и Windows Setup) но при нажатии Enter, стрелки вниз или чего-то либо мышкой (другого не пробовал) то зависает и не грузится наверное вообще (дольше часа не ждал никогда). Если подключить диск после загрузки системы то она может либо зависнуть либо работать но зависать при входе в "компьютер" или "управление дисками". При подключении диска через IDE\SATA to USB то система не зависнет но так же будет зависать при обращении в те же места что лечится только вызовом диспетчера задач и завершения процесса проводника (или "управления дисками").

Диск MBR. Одним разделом. Системы (10 и XP) установлены на другие диск (не локальные, а физические)

И всё было бы обычно если бы не одно НО! Я полтора года без всяких проблем отсидел с ним на Windows XP и прямо сейчас пишу с той же WinXP и диск работает прекрасно. После установки 10 появилось окно выбора систем (не синее, а старое как от XP ещё без поддержки мышки) и через него если я выбираю XP то все нормально грузится и нормально работает. Если выбираю Windows 10 то на синем экране все зависает и дальше вы уже знаете. Если я отключу диск посредством "просто выдернуть кабель" то Win10 загрузится и будет работать как ни в чем не бывало.

Материнка старая так что не поддерживает UEFI и все такое. Обычный BIOS AMI. Хочу преобразовать диск в GPT но не знаю стоит ли. Может кто сталкивался с этим и знает что делать. Надеюсь на вашу помощь, а то хоть на Windows XP хорошо но уже 2019 и наверное пора бы переходить на 10.

hdd

Головка (Head) - электромагнит, скользящий над поверхностью диска, для каждой поверхности используется своя головка. Нумерация начинается с 0.

Головка

Продольная (верхний рисунок) и перпендикулярная (нижний рисунок) запись информации на диске

Примерно с 2005 года идет переход с продольной на перпендикулярную запись информации на диске, что обеспечивает большую плотность записи данных.

С 2011-2013 планируется переход на "тепловую магнитную запись", место записи будет предварительно нагреваться лазером, что уменьшит размер домена и повысит надежность хранения. Предположительная максимальная емкость от 30 до 50 ТБ.

Дорожка (Track) - концентрическая окружность, которое может прочитать головка в одной позиции. Нумерация дорожек начинается с внешней (первая имеет номер - 0).

Цилиндр (Cylinder) - совокупность всех дорожек с одинаковым номером на всех дисках, т.к. дисков может быть много и на каждом диске запись может быть с двух сторон.

Маркер - от него начинается нумерация дорожек, есть на каждом диске.

Сектор - на сектора разбивается каждая дорожка, сектор содержит минимальный блок информации. Нумерация секторов начинается от маркера.

sector

Дорожки, цилиндры, сектора, головки

Геометрия жесткого диска - набор параметров диска, количество головок, количество цилиндров и количество секторов.

У современных жестких дисков контроллер встроен в само устройство, и берет на себя большую часть работы, которую не видит ОС.

Например, скрывают физическую геометрию диска, предоставляя виртуальную геометрии.

Физическая и виртуальная геометрия диска

На внешних дорожках число секторов делают больше, а на внутренних меньше. На реальных дисках таких зон может быть несколько десятков.

1.1.2 RAID (Redundant Array of Independent Disk - массив независимых дисков с избыточностью)

Для увеличения производительности или надежности операций ввода-вывода с диском был разработан стандарт для распараллеливания или дублирования этих операций

Основные шесть уровней RAID:

RAID 0 - чередующий набор, соединение нескольких дисков в один большой логический диск, но логический диск разбит так, что запись и чтение происходит сразу с несколько дисков. Например, записываем блок 1, 2, 3, 4, 5, каждый блок будет записываться на свой диск.
Преимущества
- удобство одного диска
- увеличивает скорость записи и чтения
Недостатки
- уменьшает надежность (в случае выхода одного диска, массив будет разрушен), избыточность не предусмотрена.

RAID 1 - зеркальный набор, параллельная запись и чтение на несколько дисков с дублированием (избыточность).
Преимущества
- дублирование записей
- увеличивает скорость чтения (но не записи)
Недостатки
- требует в два раза больше дисковых накопителей

RAID 2 - работает на уровне слов и даже байт. Например, берется полбайта (4 бита) и прибавляется 3 бита четности (1, 2, 4 - рассчитанные по Хэммингу), образуется 7-битовое слово. В случае семи дисков слово записывается побитно на каждый диск. Так как слово пишется сразу на все диски, они должны быть синхронизированы.
Преимущества
- надежность
- увеличивает скорость записи и чтения (при потоке, но при отдельных запросах не увеличивает)
Недостатки
- нужна синхронизация дисков.

RAID 3 - упрощенная версия RAID 2, для каждого слова считается только один бит четности.
Преимущества
- надежность
- увеличивает скорость записи и чтения (при потоке, но при отдельных запросах не увеличивает)
Недостатки
- нужна синхронизация дисков.

RAID 4 - аналогичен уровню RAID 0, но с добавлением диска четности. Если любой из дисков выйдет из строя, его можно восстановить с помощью диска четности.
Преимущества
- надежность
- не нужна синхронизация дисков
Недостатки
- не дает увеличения производительности, узким местом становится диск четности при постоянных пересчетах контрольных сумм.

RAID 5 - аналогичен уровню RAID 4, но биты четности равномерно распределены по дискам.

На практике, как правило, используют RAID 0, 1 и 5.

Системы RAID уровней от 0 до 5.

1.1.3 Компакт-диски

DVD

DVD устройство

Фото устройства для работы с дисками

DVD в работе

Устройство в работе

Демонстрация работы CD-drive

Запись на CD-ROM диски производятся с помощью штамповки.

Под микроскопом

CD-ROM под электронным микроскопом.
Длина пита варьируется от 850 нм до 3,5 мкм

Сначала CD-диски использовались только для записи звука, стандарт которого был описан ISO 10149 ("Красная книга").

Пит - единица записи информации (впадина при штамповке, темное пятно, прожженное в слое краски в CD-R, область фазового перехода)

Запись на CD-ROM производится спирально

В 1984 году была опубликована "Желтая книга", в которой описан следующий стандарт.

Для записи данных было необходимо повысить надежность, для этого каждый байт (8 бит) стали кодировать в 14 разрядное число (по размеру почти дублирование записи, но за счет кодирования эффективность может быть, как при тройной записи), чтобы можно было восстановить потерянные биты.

Логическое расположение данных на CD-ROM для режима 1

Первые 12-ть байт заголовка содержат 00FFFFFFFFFFFFFFFFFFFF00, чтобы считывающее устройство могло распознать начало сектора.

Следующие три байта содержат номер сектора.

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

ECC (Error Correction Code) - код исправления ошибок.

В режиме 2 поле данных объединено с полем ECC в 2336-байтное поле данных. Этот режим можно использовать, если не требуется коррекция ошибок, например, видео и аудио запись.

Коррекция ошибок осуществляется на трех уровнях:

Поэтому 7203 байта содержат только 2048 байта полезной нагрузки, около 28%.

В 1986 году была выпущена "Зеленая книга", к стандарту была добавлена графика, и возможность совмещения в одном секторе аудио, видео и данных.

Файловая система для CD-ROM называется High Sierra , которая оформлена в стандарт ISO 9660.

Файловая система имеет три уровня:

1 уровень - файлы имеют имена формата, схожего с MS-DOS - 8 символов имя файла плюс до трех символов расширения, файлы должны быть непрерывными. Глубина вложенности каталогов ограничена восемью. Этот уровень понимают почти все операционные системы.

2 уровень - имена файлов могут быть до 31 символов, файлы должны быть непрерывными.

3 уровень - позволяет использовать сегментированные файлы.

Для этого стандарта существуют расширения:

Rock Ridge - позволяет использовать длинные файлы, а также UID, GID и символические ссылки.

1.1.3.1 Компакт-диски с возможностью записи CD-R

Запись на CD-R диски производятся с помощью локального прожигания нанесенного слоя красителя.

В 1989 году была выпущена "Оранжевая книга", это документ определяет формат CD-R, а также новый формат CD-ROM XA , который позволяет посекторно дописывать информацию на CD-R.

CD-R-дорожка - последовательно записанные за один раз секторы. Для каждой такой дорожки создается свой VTOC (Volume Table of Contents - таблица содержания тома), в котором перечисляются записанные файлы.

Каждая запись производится за одну непрерывную операцию, поэтому если у вас будет слишком загружен компьютер (мало памяти или медленный диск), то вы можете испортить диск, т.к. данные не будут поспевать поступать на CD-ROM.

1.1.3.2 Многократно перезаписываемые компакт-диски CD-RW

Запись на CD-RW диски производятся локального перевода слоя из кристаллического в аморфное состояние.

Используются лазеры с тремя уровнями разной мощности.

Эти диски можно отформатировать (UDF), использовать их в место дискет и дисков.

1.1.3.3 Универсальный цифровой диск DVD (Digital Versatile Disk)

Были сделаны следующие изменения:

Размер пита уменьшили в два раза (с 0.8 мкм до 0.4мкм)

Более тугая спираль (0.74 мкм между дорожками, вместо 1.6 у компакт-дисков)

Уменьшение длины волны лазера (650 нм вместо 780 нм)

Это позволило увеличить объем с 650 Мбайт до 4.7 Гбайт.

Определены четыре следующих формата:

Односторонний, одноуровневый (4.7 Гбайт)

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

Двухсторонний, одноуровневый (9.4 Гбайт)

Двухсторонний, двухуровневый (17 Гбайт)

1.1.3.4 Универсальный цифровой диск Blu-ray (blue ray — синий)

Были сделаны следующие изменения:

Размер пита уменьшили

Более тугая спираль ( 0,32 мкм между дорожками, вместо 0.72 у DVD)

Уменьшение длины волны лазера (405 нм вместо 650 нм в DVD), «синего» (технически сине-фиолетового) лазера, отсюда и название

Определены следующие формата:

однослойный диск 23,3/25/27 или 33 Гб

двухслойный диск 46,6/50/54 или 66 Гб

четырёх слойный 100 Гб

восьми слойный 200 Гб

1.1.4 Твердотельные накопители (Flash, SSD, . )

Устройство ячейки памяти:

Используются полевые транзисторы с плавающим затвором.


Устройство ячейки памяти

Считывание информации:

Если ток через npn-переход идет, то "считывается 0".

Ток идет за счет туннельного эффекта, который возникает под действием управляющего затвора, на который подается "+".


Если ток через npn-переход не идет, то "считывается 1".

Ток не идет за счет "экранирования" управляющего затвора плавающим затвором, на котором накоплен "-".


Запись информации:

"Запись" делается накоплением электронов в плавающем затворе, за счет повышенного напряжения на управляющем затворе и стоке.


Затирание информации:

"Затирание" делается "изъятием" электронов из плавающего затворе, за счет положительного напряжения на истоке и отрицательного на управляющем затворе, но стоке 0В.


1.2 Форматирование дисков (программная часть)

1.2.1 Низкоуровневое форматирование

Низкоуровневое форматирование - разбивка диска на сектора, производится производителями дисков.

Каждый сектор состоит из:

Заголовка (Prefix portion) - по которому определяется начало (последовательность определенных битов) сектора и его номер, и номер цилиндра.

Область данных (как правило, 512 байт, планируют перейти на 4 Кб (к 2010г.))

На диске могут быть запасные сектора, которые могут быть использованы для замены секторов с дефектами (а они почти всегда есть). За счет этого обеспечивается одинаковая емкость на выходе.

При низкоуровневом форматировании часть полезного объема уменьшается, примерно до 80%.

Перекос цилиндров

Перекос цилиндров - сдвиг 0-го сектора каждой последующей дорожки, относительно предыдущей. служит для увеличения скорости. Головка тратит, какое то время на смену дорожки, и если 0-й сектор будет начинаться в том же месте, что и предыдущий, то головка уже проскочит его, и будет ждать целый круг.

Перекос цилиндров делают разным в зависимости скоростей вращения и перемещения головок.

Перекос головок - приходится применять, т.к. на переключение с головки на головку тратится время..

Чередование секторов

Если, например, один сектор прочитан, а для второго нет в буфере места, пока данные копируются из буфера в память, второй сектор уже проскочит головку.

Чтобы этого не случилось, применяют чередование секторов.

Если копирование очень медленное, может применяться двукратное чередование, или больше.

1.2.2 Разделы диска

После низкоуровневого форматирования диск разбивается на разделы, эти разделы воспринимаются ОС как отдельные диски.

Для чего можно использовать разделы:

Отделить системные файлы от пользовательских (например, своп-файлы)

Более эффективно использовать пространство (например, для администрирования).

На разные разделы можно установить разные ОС.

Основные разделы диска:

Первичный (Primary partition) - некоторые ОС могут загружаться только с первичного раздела. (В MBR под таблицу разделов выделено 64 байта. Каждая запись занимает 16 байт. Таким образом, всего на жестком диске может быть создано не более 4 разделов. Раньше это считалось достаточным.)

Расширенный (Extended partition) - непосредственно данные не содержит, служит для создания логических дисков (создается, что бы обойти ограничение в 4-ре раздела).

Логический (Logical partition) - может быть любое количество.

Информация о разделах записывается в 0-м секторе 0-го цилиндра, головка 0. И называется таблицей разделов.

Таблица разделов (Partition Table) - содержит информацию о разделах, номер начальных секторов и размеры разделов. На Pentium-компьютерах в таблице есть место только для четырех записей, т.е. может быть только 4 раздела (к логическим это не относится, их может быть не ограниченное количество).

Этот сектор называется главной загрузочной записью.

Т.к. MBR может работать только с разделами до 2.2 ТБ (2.2 ? 1012 байт), насмену приходит GPT.

Активный раздел - раздел, с которого загружается ОС, может быть и логическим. В одном сеансе загрузки может быть только один активный раздел.

Пример структуры разделов

В Windows разделы будут называться (для пользователей) устройствами C:, D:, E: и т.д.

1.2.3 Высокоуровневое форматирование

Высокоуровневое форматирование (создание файловой системы) - проводится для каждого раздела в отдельности, и выполняет следующее:

Создает загрузочный сектор (Boot Sector)

Создает список свободных блоков (для UNIX) или таблицу (ы) размещения файлов (для FAT или NTFS)

Создает корневой каталог

Создает, пустую файловую систему

Указывает, какая файловая система

Помечает дефектные кластеры

Кластеры и блоки - единица хранения информации в файловых системах, файлы записываются на диск, разбитыми на блоки ли кластеры.

При загрузке системы, происходит следующее:

BIOS считывает главную загрузочную запись, и передает ей управление

Загрузочная программа определяет, какой раздел активный

Из этого раздела считывается и запускается загрузочный сектор

Программа загрузочного сектора находит в корневом каталоге определенный файл (загрузочный файл)

Этот файл загружается в память и запускается (ОС начинает загрузку)

1.3 Алгоритмы планирования перемещения головок

Факторы, влияющие на время считывания или записи на диск:

Время поиска (время перемещения головки на нужный цилиндр)

Время переключения головок

Задержка вращения (время, требуемое для поворота нужного сектора под головку)

Время передачи данных

Для большинства дисков самое большое, это время поиска. Поэтому, оптимизируя время поиска можно существенно повысить быстродействие.

Алгоритмы могут быть реализованы в контроллере, в драйверах, в самой ОС.

1.3.1 Алгоритм "первый пришел - первым обслужен" FCFS (First Come, First Served)

Рассмотрим пример. Пусть у нас на диске из 28 цилиндров (от 0 до 27) есть следующая очередь запросов:

и головки в начальный момент находятся на 1 цилиндре. Тогда положение головок будет меняться следующим образом:

Как видно алгоритм не очень эффективный, но простой в реализации.

1.3.2 Алгоритм короткое время поиска первым (или ближайший цилиндр первым) SSF (Shortest Seek First)

Для предыдущего примера алгоритм даст следующую последовательность положений головок:

Как видим, этот алгоритм более эффективен. Но у него есть не достаток, если будут поступать постоянно новые запросы, то головка будет всегда находиться в локальном месте, вероятнее всего в средней части диска, а крайние цилиндры могут быть не обслужены никогда.

1.3.3 Алгоритмы сканирования (SCAN, C-SCAN, LOOK, C-LOOK)

SCAN – головки постоянно перемещаются от одного края диска до его другого края, по ходу дела обслуживая все встречающиеся запросы. Просто, но не всегда эффективно.

LOOK - если мы знаем, что обслужили последний попутный запрос в направлении движения головок, то мы можем не доходить до края диска, а сразу изменить направление движения на обратное

C-SCAN - циклическое сканирование. Когда головка достигает одного из краев диска, она без чтения попутных запросов перемещается на 0-й цилиндр, откуда вновь начинает свое движение.

C-LOOK - по аналогии с предыдущим.

1.4 Обработка ошибок

Т.к. создать диск без дефектов сложно, а вовремя использования появляются новые дефекты.

Поэтому системе приходится контролировать и исправлять ошибки.

Ошибки могут быть обнаружены на трех уровнях:

На уровне дефектного сектора ECC (используются запасные, делает сам производитель)

Дефектные блоки или кластеры могут обрабатываться контроллером или самой ОС.

Блоки и кластеры не должны содержать дефектные сектора, поэтому система должна уметь помечать дефектные сектора.

Читайте также: