/  Вызвать мастера

О жестком диске для новичков

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

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

2. Цилиндры, головки и секторы
Информация, хранимая на диске, разделена на некие фиксированные порции - блоки, которые являются наименьшими единицами, имеющими уникальный адрес на диске. Размер блока стандартен и равен 512 байтам. Синоним слова "блок" в данном значении - "сектор". Существование двух терминов для обозначения одного и того же обусловлено только тем, что блок - понятие логическое, а сектор - топологическое. Чтобы записать информацию в какой-либо блок или прочитать информацию из какого-либо блока, необходимо дать соответствующую команду контроллеру жесткого диска, в качестве ее параметра будет выступать адрес блока.

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

3. CHS-адресация
Первоначально в BIOS всех компьютеров был реализован именно этот метод, что и привело к определенным ограничениям, налагаемым на объем жесткого диска. Разработчики первых BIOS отличались непоколебимой уверенностью: по их мнению, диск должен был иметь 1024 цилиндра, 63 сектора и 255 считывающих головок. Однако производители HDD-приводов с ними не согласились и уменьшили число головок до 16, мотивируя введение данного лимита техническими сложностями изготовления устройств данного типа.

4. Механизм трансляции адресов LBA
Поэтому первые BIOS могли "видеть" только 504 Мбайт, которые получались в результате последовательного умножения количества цилиндров (1024) на количество головок (16), затем - на количество секторов (63), а потом - на размер одного сектора (512 байт): 1024*16*63*512=528482304 байт=504Мбайт. Разумеется, порог в полгигабайта производители HDD преодолели довольно быстро - число цилиндров на многих винчестерах превышало 1024. Однако основы основ BIOS никто менять не собирался, и размер адресуемой части диска оставался равным 504 Мбайт. Это ограничение было снято только тогда, когда был введен новый способ адресации - механизм трансляции адресов LBA (Logical Block Addressing).

Суть вышеупомянутого метода проста. Каждый блок стал описываться одним параметром - линейным адресом, связанным с адресом CHS. Хотя контроллеры научились понимать LBA, BIOS считал, что "лишние" с его точки зрения цилиндры являются не цилиндрами, а считывающими головками, запас которых достаточно велик - из 255 возможных реально используется намного меньшее число. То есть новый механизм адресации позволял задействовать все адресное пространство, и объем винчестера, распознаваемый BIOS, увеличился до 8 Гбайт: 1024*255*63*512 = 8422686720 байт = 8032,5 Мбайт. Кстати говоря, для операционных систем, использующих этот BIOS (например, DOS), 8 Гбайт дискового пространства остались тем горизонтом, дальше которого им "видеть" не суждено.

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

Хотя магическое число "8" забывать все равно нельзя. Дело в том, что перед тем, как система начнет общаться с диском в обход BIOS, она должна загрузиться. Поскольку на этапе загрузки некоторых ОС считывается информация из BIOS, ту же самую DOS следует размещать на первых восьми гигабайтах винчестера.

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

6. Разделы
Поддержка жестких дисков была впервые реализована в 1983 году, когда появилась на свет операционная система DOS 2.0. Причем поддерживалось также разбиение диска на разделы, или логические тома. Даже если предполагалось использовать всего один раздел, нужно было сначала создать его, то есть формально выполнить деление диска.

Раздел является точным подобием всего диска: так же, как и физический диск, раздел состоит из смежных блоков. С другой стороны, исторически сложилось так, что система разделов очень похожа на структуру каталога DOS. Вообще говоря, именно DOS оказала решающее влияние на организацию дисковой подсистемы персонального компьютера. Возможно, если бы IBM в свое время выбрала в качестве операционной системы для PC другое, менее универсальное решение (например, традиционный UNIX), о многих проблемах мы бы сейчас даже не подозревали, потому как их просто не было бы изначально.

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

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

Согласно идеологии DOS, практически воплощенной в программе fdisk, любой раздел имеет один из двух статусов - "основной" (Primary) или "расширенный" (Extended). Разница между ними заключается в том, что основной раздел может быть загрузочным, а расширенный - нет. Поэтому в дисковой подсистеме должен быть хотя бы один основной раздел, а максимальное их количество равняется четырем (хотя стандартный fdisk не позволяет создать более одного).

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

А то, что называется разделом в соответствии со сформулированным нами ранее определением, именуется подразделом расширенного раздела. К счастью, эта терминологическая двусмысленность очень редко приводит к практическим проблемам - досовская утилита fdisk почти полностью вышла из употребления.

Вся информация о разбиении диска хранится в так называемой главной загрузочной записи (Master Boot Record, или просто MBR). Именно этому сектору передает управление BIOS. В самом начале загрузочного сектора расположен загрузчик, который, согласно информации о разделах, вверяет бразды правления системой загрузочному сектору загрузочного раздела. MBR относится к категории системных секторов, и его разрушение грозит особенно неприятными последствиями.



20.11.2007