Меню

Жесткие диски логическая структура и формат



Логическая структура жестких дисков

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

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

С физической точки зрения обе поверхности всех магнитных дисков в массиве-пакете содержат дорожки. 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 Гбайт дискового пространства.

В дальнейшей модификации АТА-2 ( PIO 4,5) в 1996 году появилось использование логической адресации блоков. В этом режиме все секторы нумеруются без разделения по трем категориям (цилиндр, головка, сектор), и адресуются единым 28-битным кодом. С учетом ограничений BIOS (1024 цилиндра, 256 головок, 63 сектора на дорожке при пересчете) общая емкость жесткого диска достигает 8,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 Гбайт, которая, как обычно, решалась обновлением прошивки.

В 2002 году были выпущены жесткие диски, объем которых превышает 137 Гбайт. За невозможностью использования старого алгоритма с 28-битным кодированием для протокола UltraDMA /133 была придумана 48-битная адресация секторов, и очередной барьер возникнет не скоро.

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

Кроме того, что накопитель должен быть сконфигурирован в 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 зависимость размера кластера от размера тома приведена в таблице.

Источник

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

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

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

Стандартные буквенные обозначения

Во время разбивки жесткого диска на разделы по умолчанию для системного тома устанавливается буква C, а для второго — D. Буквы A и B пропускаются, поскольку так обозначаются дискеты разных форматов. При отсутствии второго тома жесткого диска буквой D будет обозначаться DVD-привод.

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

Структуры MBR и GPT

С томами и разделами все предельно просто, однако присутствуют еще и структуры. Более старым логическим образцом называется MBR (Master Boot Record), а ему на замену пришел усовершенствованный GPT (GUID Partition Table). Давайте остановимся на каждой структуре и рассмотрим их детально.

MBR

Диски со структурой MBR постепенно вытесняются GPT, но все еще популярны и используются на многих компьютерах. Дело в том, что Master Boot Record — это первый сектор HDD объемом 512 байт, он зарезервирован и никогда не перезаписывается. Отвечает этот участок за запуск ОС. Удобна такая структура тем, что позволяет без проблем разделять физический накопитель на части. Принцип запуска диска с MBR происходит так:

  1. При запуске системы BIOS обращается к первому сектору и отдает ему дальнейшее управление. Этот сектор имеет код 0000:7C00h .
  2. Следующие четыре байта отвечают за определение диска.
  3. Далее происходит смещение до 01BEh — таблицы томов HDD. На скриншоте ниже вы можете видеть графическое объяснение считывания первого сектора.

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

За координаты расположения крайней записи раздела рассматриваемой технологии отвечает технология CHS (Cylinder Head Sector). Она считывает номер цилиндра, головки и секторы. Нумерация упомянутых частей начинается с , а секторы с 1. Именно путем считывания всех этих координат и определяется логический раздел жесткого диска.

Недостаток такой системы заключается в ограниченности адресации объема данных. То есть во время первой версии CHS раздел мог иметь максимум 8 ГБ памяти, чего в скором времени, конечно же, перестало хватать. На замену пришла адресация LBA (Logical Block Addressing), в которой была переработана система нумерации. Теперь поддерживаются диски объемом до 2 ТБ. LBA была еще доработана, но изменения коснулись только GPT.

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

GPT

Технология MBR обладала рядом недостатков и ограничений, которые не могли обеспечить работу с большим количеством данных. Исправлять ее или изменять было бессмысленно, поэтому вместе с выходом UEFI пользователи узнали о новой структуре GPT. Она была создана с учетом постоянного увеличения объема накопителей и изменений в работе ПК, поэтому на текущее время это самое передовое решение. Отличается от MBR она такими параметрами:

  • Отсутствие координат CHS, поддерживается работа только с доработанной версией LBA;
  • GPT хранит на накопителе две свои копии — одна в начале диска, а другая в конце. Такое решение позволит реанимировать сектор через хранящуюся копию в случае повреждения;
  • Переработано устройство структуры, о чем мы поговорим далее;
  • Проверка корректности заголовка происходит с помощью UEFI c использованием контрольной суммы.
Читайте также:  Как найти контроллер жесткого диска в биосе

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

Стоит отметить, что сектор MBR в GPT тоже присутствует, он является первым и имеет размер в один бит. Необходим он для корректной работы HDD со старыми комплектующими, а также не позволяет программам, которым неизвестен GPT, разрушить структуру. Поэтому этот сектор называется защитным. Далее располагается сектор размером в 32, 48 или 64 бита, отвечающий за разметку на разделы, называется он первичным GPT-заголовком. После этих двух секторов идет считывание содержимого, вторая схема томов, а замыкает все это копия GPT. Полная структура представлена на скриншоте ниже.

На этом общая информация, которая может быть интересной обычному пользователю, заканчивается. Дальше — это тонкости работы каждого сектора, и эти данные уже никак не касаются рядового юзера. Что касается выбора GPT или MBR — вы можете ознакомиться с другой нашей статьей, где обсуждается выбор структуры под Windows 7.

Еще хочется добавить, что GPT — более совершенный вариант, и в будущем в любом случае придется переходить на работу с носителями такой структуры.

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

Говоря о логической структуре HDD, нельзя не упомянуть о доступных файловых системах. Конечно, их существует много, но остановиться мы бы хотели на разновидностях для двух ОС, с которым чаще всего работают обычные пользователи. Если компьютер не может определить файловую систему, то жесткий диск приобретает формат RAW и именно в нем отображается в ОС. Доступно ручное исправление этой проблемы. Мы предлагаем ознакомиться с деталями выполнения этой задачи далее.

Windows

  1. FAT32. Компания Microsoft начала выпуск файловых систем с FAT, в будущем эта технология претерпела множество изменений, и последней версией на данный момент является FAT32. Ее особенность заключается в том, что она не предназначена для обработки и хранения больших файлов, а также на нее будет довольно проблематично установить тяжелые программы. Однако FAT32 универсальна, и при создании внешнего жесткого диска она используется для того, чтобы сохраненные файлы можно было считать с любого телевизора или проигрывателя.
  2. NTFS. Майкрософт представила NTFS, чтобы полностью заменить FAT32. Сейчас эта файловая система поддерживается всеми версиями Windows, начиная от XP, также отлично работает на Linux, однако на Mac OS можно только считать информацию, записать ничего не получится. Выделяется NTFS тем, что не имеет ограничений на размер записываемых файлов, обладает расширенной поддержкой разных форматов, возможностью сжатия логических разделов и легко восстанавливается при различных повреждениях. Все остальные файловые системы в большем роде подходят для небольших съемных носителей и достаточно редко применяются в жестких дисках, поэтому мы не будем их рассматривать в рамках этой статьи.

Linux

С файловыми системами Windows мы разобрались. Хотелось бы обратить внимание еще на поддерживаемые типы в ОС Linux, поскольку она также является популярной среди пользователей. Линукс поддерживает работу со всеми файловыми системами Виндовс, однако саму операционку рекомендуется устанавливать на специально разработанную для этого ФС. Отметить стоит такие разновидности:

  1. Extfs стала самой первой файловой системой для Linux. Она имеет свои ограничения, например, максимальный размер файла не может превышать 2 ГБ, а его имя должно находиться в диапазоне от 1 до 255 символов.
  2. Ext3 и Ext4. Мы пропустили предыдущие две версии Ext, поскольку сейчас они совсем неактуальны. Расскажем лишь о более-менее современных версиях. Особенность этой ФС заключается в поддержке объектов размером до одного терабайта, хотя в при работе на старом ядре Ext3 не поддерживала элементы размером более 2 ГБ. Еще одной особенностью можно назвать поддержку считывания программного обеспечения, написанного под Windows. Следом вышла новая ФС Ext4, которая позволила хранить файлы объемом до 16 ТБ.
  3. Главным конкурентом Ext4 считается XFS. Ее преимущество заключается в особом алгоритме записи, он называется «Отложенное выделение места». Когда данные отправляются на запись, они сначала помещаются в оперативную память и ждут очереди на сохранение в дисковом пространстве. Перемещение на HDD осуществляется только тогда, когда ОЗУ заканчивается или занимается другими процессами. Такая последовательность позволяет сгруппировать мелкие задачи в крупные и уменьшить фрагментацию носителя.

Что касается выбора файловой системы под установку ОС, обычному пользователю лучше выбрать рекомендуемый вариант при инсталляции. Обычно это Etx4 или XFS. Продвинутые юзеры уже задействуют ФС под свои нужды, применяя ее различные типы для выполнения поставленных задач.

Изменяется файловая система после форматирования накопителя, поэтому это достаточно важный процесс, позволяющий не только удалить файлы, но и исправить возникшие неполадки с совместимостью или чтением. Мы предлагаем вам прочесть специальный материал, в котором максимально детально расписана правильная процедура форматирования HDD.

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

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

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

Источник