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

Существует несколько видов файловой системы:

FAT имеет несколько стандартов: FAT12, FAT16, FAT32 и exFAT. Цифры обозначают число бит, используемых для адреса сектора. FAT12 имеет всего 2 12= 4 096 секторов (на самом деле 4 084, так как некоторые номера используются для служебных целей)). В силу того, что количество секторов небольшое, то данный формат использовался для гибких дисков. Следующий формат FAT16 может иметь большее количество секторов 2 в степени 16 = 65 536 (на самом деле 65 524), что является все равно недостаточным для современных компьютеров, поэтому данный формат уже не используется. FAT 32 позволяет использовать 268 435 445 секторов, но он имеет ограничения на размер файла, который не может быть более 4 гигабайт. Поэтому появился следующий формат – NTFS. А FAT используется для флеш носителей в новом формате под названием exFAT.

NTFS создана компанией Microsoft в 90х годах для Windows NT. В отличие от FAT в ней записывается список изменений в главной файловой таблице (MFT), что позволяет восстановить систему после сбоя. Максимальный размер файла – 2 в степени 64 байтов, максимальное число файлов – 2 в степени 32, максимальная длина имени файла 255 из 16 битных слов,

Имеются и другие системы: EXT2, EXT3, EXT4 (для системы Linux), HFS+ (для Apple).

Кластер на жестком диске состоит из нескольких секторов и может содержать 512 байт и больше, число должно быть равно степени числа два, например, 1024, 2048 и более байт.

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

В самом начале каждого сектора находится управляющая информация, которая включает в себя адрес и признак нормального или дефектного сектора, а в конце за этой информацией - два байта с контрольными кодами для проверки правильности считывания информации. При записи в сектор записывается и контрольная информация. Считывается также и контрольная информация и проверяется при помощи специального алгоритма (CLC) корректность считывания. Если результат проверки отрицательный, то система пытается сама восстановить данные. Для этого используется информация из строки ECC. Предполагается, что испорченная информация обычно составляет несколько байт на сектор, что на практике и происходит, и эти биты можно восстановить. Структуру сектора смотрите ниже. При этом общая длина каждого сектора составляет 571 байт, из которых 512 отводятся под данные. В некоторых моделях дисков может быть и другой размер секторов, но они должны быть поддержаны BIOS компьютера.

На дискете сектор представлен примерно в таком же виде, за исключением того, что в заголовке сектора находится адрес сектора и признак сбойности, а также вместо ЕСС находится контрольная циклическая сумма CRC.

Жесткий диск может иметь несколько логических устройств, часто так оно и есть, особенно при наличии большой емкости накопителя. Каждый логический диск обозначается одним символом и следующим за ним двоеточием. Первые символы А: и В: предназначены для накопителей с гибкими дисками, начиная с С: - для жесткого диска. Если в компьютере имеется один дисковод с гибкими дисками, то его имя будет А:, если два, то А: и В:. Жесткий диск может быть разбит на несколько логических дисков, начиная с названия С:, то есть, если имеется три логических устройства (три раздела) на жестком диске, то для их названия будет использоваться C:, D:, и E:, три символа английского алфавита, начиная с С:, при этом загрузка операционной системы после включения компьютера будет производиться с диска С:. При помощи специальных программ можно установить несколько операционных систем на одном диске. В этом случае загрузочными может быть несколько логических устройств, например, можно загрузиться с диска С: или D:.

Если в компьютере кроме С: имеются и другие диски (D:, E: и так далее), то это не обязательно означает, что такие логические устройства находятся на жестком диске, это может быть оптический диск, сетевые диски и пр. Поэтому если С: означает жесткий диск, то D: может обозначать как жесткий диск, так и другое устройство, которое зависит от конфигурации компьютера.

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

Для разбиения диска используется программа Fdisk. Однако нужно иметь в виду, что после работы с этой программой все данные на диске будут утеряны. ДОС различает два вида разделов: первичный и расширенный, другой тип он не понимает, поэтому он от него скрыт. Другие операционные системы (например, UNIX, OS/2) в некоторых случаях определяют структуру файлов ДОС, а в других - нет.

Первичный раздел используется для загрузки операционной системы, и в нем может быть только одно логическое устройство. В расширенном разделе может быть сколько угодно логических устройств, это ограничивается лишь числом букв латинского алфавита (кроме А: и В:). Первый сектор на расширенном разделе содержит специальную таблицу, в которой и находится информация о логическом устройстве расширенного раздела, аналогично записи в начале диска о разделах. Всего может быть три первичных раздела и один расширенный. Каждый из логических дисков может иметь разные файловые системы, например, на диске С: - NTFS, на диске D: - FAT32 и так далее. Если на диске Е: находится файловая структура от другой операционной системы, нежели Windows в зависимости от установленной на системном диске системе, этот диск может быть в списке логических дисков, а может и отсутствовать. Но в любом случае считывать из него и записывать на него информацию нельзя из системы Windows.

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

Структура FAT. Существует несколько форматов представления файлов на жестком диске. Это FAT для систем DOS и Windows OS/2, HPFS (High Performance File System - высокопроизводительная файловая система), которая используется в системах OS/2, Windows NT, и NTFS (Windows NT File System - Файловая система Windows NT) - в системе Windows NT. Так как большинство пользователей работает с системой FAT, рассмотрим ее более подробно. Существует три версии: FAT12, FAT16 и FAT32.

Любой логический диск имеет для FAT12 и FAT16 следующую структуру:

Структура FAT32, которая поддерживается, начиная с версии OSR2 Windows 95, имеет следующие отличия: 1. Используется не один, а три сектора начальной загрузки; 2. За ними находятся резервные сектора и копия записи начальной загрузки; 3. Корневой каталог не выделен и находится в области с подкаталогами и данными; 4. Существует специальная таблица, в которой указан размер диска, числе секторов в кластере и др. информация, которую можно просмотреть, используя Norton Disk Editor.

Расположение корневой директории в общей зоне данных выгодно тогда, когда область, выделенная под эту директорию, находится на сбойных местах и ее можно перенести в неповрежденную область. Кроме того, в FAT16 имелось ограничение на количество файлов, которые могут быть в корневой директории, и позволяло хранить 512 имен, а при использовании длинных имен – меньшее их значение. В FAT32 таких ограничений уже нет.

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

На жестких дисках, кроме этой информации, может присутствовать и таблица, содержащая данные о накопителе, а именно, число байт в секторе, общее число секторов, тип FAT и другие параметры. Более подробно эти данные можно увидеть, воспользовавшись программой Disk Editor из NU. В ДОС или FAT16 (в Windows 3.11) для управляющей информации используется один сектор, в FAT32 (Windows 95 и выше) - более одного сектора.

FAT представляет собой таблицу, в которой указано размещение файлов на диске. Там имеется две таблицы FAT: FAT#1 и FAT#2, причем вторая является копией первой, что сделано для надежности хранения информации. Поэтому при операциях записи информация о файле записывается как в FAT#1, так и в FAT#2. Если при считывании FAT#1 произошла ошибка, то система обращается к FAT#2. Если и в FAT#2 имеется ошибка, то система узнает об этом, когда будет обнаружена ошибка в FAT#1, либо при запуске диагностических программ. Чтобы этого избежать, можно воспользоваться программами, которые проверяют диски через заданные промежутки времени.

Что делать, если повреждены сектора, где находятся таблицы FAT? В этом случае можно попробовать отформатировать заново диск, предварительно сохранив записанные на диске файлы. Если это гибкий диск и после форматирования сбои на этом месте продолжаются, то этим диском пользоваться нельзя. Если это жесткий диск и сбой произошел не на диске С:, то можно сделать переопределение разделов при помощи программы Fdisk. Если имеется сбой на диске С:, то нужно иметь в виду, что для FAT32 можно использовать только одну FAT. Это применяется, если вторая FAT постоянно дает сбои, тогда нужно изменить некоторые параметры в первой загрузочной записи.

Информация в FAT оперирует с кластерами (объединением нескольких секторов), причем количество секторов в кластере является строго фиксированной величиной для каждого диска. Начинается адресация с 2, так как нулевой и первый кластеры принадлежат корневому каталогу. В FAT могут быть следующие величины: D - кластер не используются, символ EDF означает, что данный кластер - последний для файла. Существует символ, обозначающий, что кластер дефектный, и символ, что кластер используется файлом и не является последним.

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

Существует несколько видов таблицы FAT. Самая старая из них до сих пор используется на дискетах. В этом случае номер кластера в таблице имеет размер 12 бит, в результате можно записать значения номеров кластеров от 2 до 4086. Таким образом, общая емкость может быть: размер сектора (512), умноженный на число секторов (4086), что является меньше двух мегабайт, но больше 1,44 Мегабайт. Если кластер составляет 4 Кбайт (8 секторов), то можно использовать такую таблицу для жесткого диска емкостью 16 Мбайт.

16-разрядный FAT был введен, начиная с версии 3.0 DOS, и использует для номера кластера 16 бит, всего можно указать 65 тысяч значений, организован он для жестких дисков с емкостью до 2 Гигабайт. При размере диска 2 Гигабайт размер кластера составит 32 Кбайт (64 сектора), то есть кластер занимает для записи несколько байт, остальное пространство не будет использоваться.

В системе Windows 95 используется 32-разрядная таблица размещения файлов, в которой для номера кластера занято 32 бита и которая позволяет адресовать 4 миллиона кластеров. Вполне естественно, что при работе с Windows 95 и выше можно работать с дисками любого указанного вида FAT. Минимальный размер диска, с которым работает эта система, имеет размер 512 Мбайт, а максимальный - 137 Гбайт, достигается при использовании 28-разрядной LBA, что достаточно для современных дисков. Основной раздел FAT12 может достигать 2 Мбайт, FAT16 - от 32 Мбайт до 2 Гигабайт, FAT32 - от 512 Мбайт до 2048 Гбайт, тогда как расширенный раздел FAT12 и FAT32 может иметь любой размер.

Корневой каталог. Корневой каталог имеется во всех типах FAT, кроме FAT32, где он выведен в область основных данных. Корневой каталог имеет несколько отличий от поддиректорий. Одно из них заключается в том, что в нем содержится несколько системных файлов, с которых загружается операционная система. Из поддиректории загружаться нельзя. Кроме того, в корневом каталоге находится имя логического устройства. Подкаталог в свою очередь имеет в таблице первые две записи, которые обозначаются «.»(точка) и «..» (две точки), которых нет у корневого. В записи с «.» находится указатель номера кластера, где имеется описание текущей директории, в «..» - родительской, см. рис. ниже. На рисунке описание корневой директории находится в 0 кластере, SD1 в 5, SD2 в 10.

В каждой такой таблице о каталоге находится информация о подкаталогах и файлах, которые он содержит. В первой корневой директории имеется ссылка на подчиненную директорию с именем SD1 с указанием на номер 5-го кластера, где находится таблица описания поддиректории. Вторая таблица в первой строке описывает саму себя («.») с указанием, где она находится (5-й кластер), далее следует ссылка на корневой каталог («.») с указанием, где он находится, и подчиненную директорию («SD2»). Она находится в кластере с номером 10. 0 и обозначает не нулевой кластер, а то, что имеется ссылка на корневой каталог, поскольку кластера с таким номером не существует. Это сделано потому, что в FAT12 и FAT16 кластер корневой директории не имеет своего номера, так как он находится в другом разделе.

Длину каталога можно узнать, просмотрев в FAT цепочку кластеров, принадлежащих описанию каталогов. Для просмотра содержимого каталога можно использовать программу Norton Disk Editor, однако не следует менять параметр «только для чтения» с тем, чтобы не испортить диск. А если вы хотите потренироваться в записи на диск, можно использовать программу для гибких дисков. Для каждого элемента в трех FAT данные занимают 32 байта. Информация о файлах содержится в следующем виде:

11 байт - наименование и расширение файла (8+3 символа);

1 байт побитные атрибуты, которые включают:

- архивный атрибут(А);

- атрибут каталога (принадлежит каталогу или файлу) (D);

- атрибут тома (в записи с этим атрибутом хранится имя тома) (V);

- системный атрибут (S);

- атрибут скрытого файла (H);

- атрибут только для чтения (R).

2 байта - время создания файла (5 бит - часы, 6 бит - минуты, 5 - секунды);

2 байта - дата создания файла (7 бит - год, 4 - месяц, 5 - день);

2 байта - адрес кластера, где начинается файл. В FAT32 младшие байты – адреса и старшие 2 байта находятся в резервном поле.

4 байта - длина файла, которая доходит максимально до 4 Гбайт.

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

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

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

Все записи имеют единый формат, за исключением метки тома, которая содержит только имя тома. В системе DOS использовался формат для имени файла, содержащий 8 символов и 3 для расширения. Можно было использовать любые латинские буквы от А до Z, цифры от 0 до 9 и специальные символы: `, ‘,!, @, #, $, %, ^, &, _, (,), {, }. При этом латинские символы заносились в едином формате вне зависимости от того, как их набивали: строчными или прописными. Если имя имеет меньшее количество символов, то они дополняются пробелами.

В формате Windows 95 стали использоваться имена до 254 символов, кроме указанных стали допустимыми: +,; = [ ], строчные и прописные символы, а также кириллица. При этом длинное имя делится на определенное число фрагментов и хранится в нескольких записях, в каждой из которых находится до 13 символов имени. В первом байте находится счетчик, 1 - для первой записи, 2 - для второй, 128 - номер для последней, 12 байт содержат особую комбинацию, описанную выше, 13-й байт равен 0. В силу того, что имя хранится в формате Unicode, для каждого символа используется не 1, а 2 байта.

Чтобы нормально функционировать, система при работе с FAT32 преобразует имя в стандартный вид (8.3 символов). Это происходит следующим образом: убираются пробелы, вводится несколько новых символов, они преобразуются в прописные, далее ставится галочка (~) и номер. Например, “Список книг” преобразуется в “Список~1.doc”. Следующее название с одинаковым началом преобразуется в “Список~2.doc” и так далее. Если файлов более 10, то будет присвоен двухзначный номер. Если в имени имеется точка, то первые символы до точки используются для имени, а после точки - для расширения. Эти названия можно увидеть в NC, при работе в ДОС. Программа в ДОС не понимает длинных имен и не позволяет их копировать, удалять. Для того, чтобы это сделать, необходимо воспользоваться программой Проводник системы Windows. Для просмотра длинных имен можно воспользоваться командой DIR с выводом результатов в файл и затем просмотреть результат.

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


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: