Глава – 3
Логический подход к дискам и ОС
Жесткий диск не может самостоятельно запускать свое оборудование и нуждается в двух основных программах для выполнения своих операций: BIOS (базовая система ввода-вывода) и DOS (или операционная система). Дисковая операционная система не взаимодействует напрямую с аппаратным обеспечением компьютера и жесткого диска, но между ними требуется BIOS. Вот почему BIOS играет важную роль в компьютере.
БИОС
Основная задача BIOS – обеспечить стандартный интерфейс между аппаратным обеспечением или устройствами, подключенными к компьютеру, и DOS. Системный BIOS – это интерфейс самого низкого уровня между аппаратным обеспечением вашей системы и программным обеспечением, которое работает на нем. Он играет несколько важных ролей в управлении доступом к жестким дискам, например
- Процедуры прерывания BIOS
- Обнаружение и настройка жесткого диска
- Поддержка режима интерфейса жесткого диска
Чтобы обеспечить совместимость различных аппаратных и программных продуктов, BIOS системы адаптируется к потребностям ее оборудования и предоставляет стандартный способ, позволяющий программному обеспечению обращаться к оборудованию. Они называются службами BIOS и используются многими операционными системами и прикладными программами. Они обеспечивают единый интерфейс для жесткого диска, поэтому приложениям не нужно знать, как работать с каждым типом жесткого диска по отдельности.
Стандартные жесткие диски IDE/ATA настраиваются в BIOS с использованием различных настроек BIOS. Современные программы BIOS могут обнаруживать современные IDE/ATA-диски, определять эти параметры и автоматически настраивать их. BIOS определяет, какие типы режимов интерфейса можно использовать с жестким диском, работая с системным чипсетом на материнской плате и системной шиной ввода-вывода.
Интерфейс INT 13H и расширения INT 13H
Первичным интерфейсом для BIOS является программное прерывание 13H, обычно известное как INT 13H , где INT означает прерывание, а 13H – число 19 в шестнадцатеричном формате.
Мы подробно изучим и обсудим использование прерываний в программировании на этапе программирования этой книги. Интерфейс Int13H поддерживает множество различных команд, которые можно дать BIOS, который затем передает их на жесткий диск. Прерывание 13H включает в себя большинство задач, которые нам необходимо выполнить с диском, таких как чтение, запись, форматирование и т. д.
Использование и работа с Int13H требует, чтобы вызывающая программа знала конкретные параметры жесткого диска и предоставляла подпрограммам точную адресацию головки, цилиндра и сектора, чтобы разрешить доступ к диску.
BIOS использует геометрию жесткого диска, заданную в программе настройки BIOS. Интерфейс Int13H выделяет 24 бита для спецификации геометрии диска, разбитых следующим образом:
- 10 бит для номера цилиндра, или всего 1024 цилиндра.
- 8 бит для номера головки или всего 256 головок.
- 6 бит для номера сектора или всего 63 сектора.
Таким образом, максимально возможное количество секторов на диске может быть
= 1024 * 256 * 63
= 16515072
Как мы видим здесь, интерфейс INT 13H может поддерживать диски, содержащие до 16515072 секторов по 512 байт на сектор. Таким образом, максимальный размер диска может быть,
= 16515072 * 512
= 8455716864 Bytes
~ 8.456 GB
Таким образом, интерфейс INT 13H может поддерживать размер диска примерно до 8,456 ГБ (или 7,875 ГБ).
Сегодня большинство пользователей компьютеров используют жесткие диски емкостью намного больше 8 ГБ, поэтому интерфейс INT 13H окончательно исчерпал свою полезность в современных компьютерных системах и был заменен на более новый интерфейс, называемый расширениями INT 13H, однако INT 13H по-прежнему может использоваться DOS и некоторыми другими старыми операционными системами, а также для других целей совместимости.
Расширения Int 13H
Это действительно интересная история, когда разрабатывался интерфейс INT 13H, никто не ожидал получить размер 8 ГБ на жестком диске. Однако сегодня нам может показаться, что 8-гигабайтный жесткий диск намного меньше по емкости, даже для персонального компьютера домашнего пользователя.
У старого стандарта есть важное ограничение: он использует 24-битную адресную информацию и поэтому может работать только с дисками, содержащими до 16515072 секторов по 512 байт на сектор, что дает максимальную емкость 8,456 ГБ (или 7,875 ГиБ).
Таким образом, проблема заключалась в том, чтобы расширить путь доступа с 24 бит до чего-то большего, но было невозможно расширить существующий интерфейс INT13H BIOS, потому что, если мы попытаемся сделать это, многие старые аппаратные и программные средства перестанут работать. И практически нет никакой надежды занять почетное место в компьютерном мире с большим количеством устаревшего оборудования и программного обеспечения, не работающего с вашей разработкой.
Поэтому был разработан новый интерфейс для замены Int13H. Эти подпрограммы называются расширениями Int13H. Этот новый интерфейс использует для адресации 64 бита вместо 24 бит и допускает максимальный размер жесткого диска 9,4 * 10 21 байт, что составляет 9,4 триллиона гигабайт.
Мы изучим использование обоих расширений, INT 13H и INT 13H, в разделе программирования этой книги. Есть ряд других ограничений по размеру, которые имели место в предыдущие дни. Некоторые из популярных логических и физических ограничений описаны ниже:
Ограничение 2,1 ГБ
Это ограничение по размеру наблюдалось в некоторых старых версиях BIOS, которые отводили только 12 бит для поля в CMOS RAM, которое указывает количество цилиндров. Следовательно, это число может быть не более 111111111111B (максимально возможное 12-битное двоичное число), что эквивалентно 4095. Таким образом, максимальный размер диска с 16 головками, к которому можно получить доступ, будет:
= 4095 * 16 * 63 * 512 Bytes
= 2113413120 Bytes are accessible.
Ограничение 33,8 ГБ
Этот барьер размера жесткого диска был замечен в начале 1999 года. Большие диски сообщают о 16 головках, 63 секторах на дорожку и 16383 цилиндрах. Многие BIOS вычисляют фактическое количество цилиндров, разделив общую емкость на 16*63.
Для дисков объемом более 33,8 ГБ это приводит к тому, что количество цилиндров превышает 65 535. В этом конкретном случае некоторые версии Award BIOS не могут работать с дисками, имеющими более 65 535 цилиндров. Теперь BIOS вылетает или зависает. Поскольку в параметрах жесткого диска обычно используется 16 головок и 63 сектора, это дает емкость около 33,8 ГБ или 31,5 ГиБ до того, как возникнут проблемы.
Решение состоит в том, чтобы обновить BIOS или использовать перемычку, чтобы диск казался меньше.
Спецификация ATA для дисков IDE — ограничение в 137 ГБ
Старая спецификация ATA не разрешает доступ к диску размером более 137 ГБ. На самом деле он использует только 28 бит для указания номера сектора. Однако ATA-6 определяет расширение с 48-битным номером сектора.
Ограничение размера диска было сгенерировано комбинацией не более 65536 цилиндров, считая от 0 до 65535, 16 головок, считая от 0 до 15, и 255 секторов на дорожку, считая от 1 до 255, максимальная общая емкость диска,
= 65535 * 16 * 255 Sectors
= 267386880 Sectors
= 136902082560 Bytes (Sector of 512 Bytes Each)
~ 137 GB
Поддержка двух- и четырехдискового BIOS IDE
Сегодня большинство современных программ BIOS поддерживают автоматическое определение жесткого диска, что позволяет BIOS опрашивать каждый жесткий диск, чтобы определить его логическую геометрию, поддерживаемые режимы передачи и другую информацию. Это можно сделать либо во время установки, либо динамически при каждой загрузке машины, в зависимости от BIOS.
Системный BIOS обеспечивает встроенную поддержку жестких дисков IDE/ATA, поэтому может быть ряд параметров, которые можно настроить, чтобы указать BIOS, какие жесткие диски есть в системе и как ими управлять. Каждый жесткий диск в системе будет иметь свои собственные настройки, поэтому есть один набор для основного ведущего и один для основного ведомого и так далее. Однако жесткие диски SCSI настраиваются с помощью хост-адаптера и встроенного BIOS SCSI.
Поскольку жесткие диски размером более 8 ГБ не могут быть описаны с использованием традиционных параметров геометрии IDE/ATA BIOS, динамическое автоматическое определение является стандартным способом настройки современных дисков, особенно в случае более старых компьютерных систем, тем не менее, пользователь может установить некоторые параметры привода вручную.
Ниже приведены параметры, которые обычно находятся в программе настройки BIOS для настройки жестких дисков IDE/ATA. Хотя в современных системах некоторых из самых старых настроек совместимости может уже и не быть:
- Тип диска: изначально он использовался, чтобы позволить пользователю выбрать жесткий диск из предопределенного списка, но теперь он используется для управления автоматической или ручной настройкой параметров для диска.
- Размер. Размер жесткого диска в десятичных мегабайтах. Он рассчитывается на основе других параметров, таких как цилиндры, головки, сектора и т. д.
- Цилиндры. Количество логических цилиндров на диске.
Головки: количество логических головок на диске.
- Секторы: количество логических секторов по 512 байт в каждой логической дорожке на диске. Обычно современные жесткие диски имеют 63 сектора на одной дорожке.
- Предварительная компенсация записи: это параметр совместимости, который указывает, при каком номере цилиндра следует выполнять корректировку записи для очень старых дисков.
- Зона приземления (головки парковки): Зона приземления — это цилиндр, в котором BIOS припарковывает головки, чтобы избежать потери данных или создания поврежденных секторов при выключении диска. Поскольку современные жесткие диски автоматически паркуют свои головки, сегодня это редко требуется.
- Режим трансляции. Режим трансляции BIOS, используемый для поддержки жестких дисков емкостью более 504 МБ.
- Блочный режим: для управления способностью BIOS выполнять передачу дисков блоками.
- Режим запрограммированного ввода-вывода (DMA). Режим запрограммированного ввода-вывода или режим DMA, используемый для передачи данных на жесткий диск и с него.
- 32-битный режим передачи. Управляет использованием высокопроизводительной 32-битной передачи данных.
Ограничения в файловых системах
Каждая файловая система поддерживает максимальный размер тома, размер файла и количество файлов на томе.
К примеру, обычно объем файлов FAT16 и FAT32 ограничен 4 ГБ и 32 ГБ (как правило) соответственно. Существуют некоторые ограничения, связанные с файловыми системами FAT, о которых вы должны знать:
- FAT12: тома FAT размером менее 16 МБ форматируются как FAT12. Это самый старый тип FAT, в котором для хранения номеров кластеров используется 12-битный двоичный код. Том, отформатированный с использованием FAT12, может содержать максимум 4086 кластеров, что равно 2 12 минус несколько зарезервированных значений для использования в FAT. (Мы подробно обсудим это в логической структуре диска, приведенной далее в этой главе). Поэтому FAT12 лучше всего подходит для небольших объемов. Он используется на гибких дисках и разделах жесткого диска размером менее 16 МБ.
- FAT16: FAT16 использует 16-битное двоичное число для хранения номеров кластеров. Том, использующий FAT16, может содержать максимум 65 526 кластеров, что равно 2 16 минус несколько зарезервированных значений для использования в FAT. (Мы подробно обсудим это в логической структуре диска, приведенной далее в этой главе). FAT16 используется для томов жесткого диска размером от 16 МБ до 2048 МБ. Тома FAT16 размером более 2 ГБ недоступны с компьютеров под управлением MS-DOS, Windows 95/98/ME и многих других операционных систем. Это ограничение связано с тем, что эти операционные системы не поддерживают размер кластера более 32 КБ, что приводит к ограничению в 2 ГБ. (См. предел кластеров, указанный далее в этой главе).
- FAT32: теоретически максимальный объем файлов FAT32 может достигать 2048 ГБ (приблизительно 2 терабайта). FAT32 поддерживается выпуском Windows 95 OEM SR2, а также Windows 98/ME. FAT32 использует 28-битный двоичный номер кластера (помните! Не 32, потому что 4 из 32 бит «зарезервированы»). Таким образом, теоретически FAT32 может обрабатывать тома с более чем 268 миллионами кластеров (фактически 268 435 456 кластеров) и будет поддерживать диски размером до 2 ТБ. Однако для этого размер FAT становится очень большим. (Мы собираемся обсудить это в темах, данных далее в этой главе).
Сравнение типов FAT приведено далее в таблице.
NTFS: NTFS означает файловую систему новой технологии. Используется Windows 2000/XP. Теоретически максимальный размер раздела NTFS составляет (2 64 – 1) кластеров.
Подробное описание файловой системы NTFS выходит за рамки этой книги, однако некоторые ее ограничения приведены в следующей таблице:
Description
|
Limit |
Maximum file size
|
16 Exabytes – 1 KB (2 64 Bytes – 1 KB) |
Maximum volume size
|
(2 64 – 1) clusters |
Files (and Folders) per volume
|
4,294,967,295 (2 32 – 1 ) Flies and Folders |
Кластер
Наименьшая единица пространства на жестком диске, к которой может получить доступ любое программное обеспечение, — это сектор , содержащий 512 байт. Можно иметь систему распределения для диска, при которой каждому файлу назначается столько отдельных секторов, сколько ему нужно. Например, для файла размером 1 МБ потребуется примерно 2048 отдельных секторов для хранения данных.
В случае файловой системы FAT, точнее, можно сказать, в большинстве файловых систем, отдельные сектора не используются. Для этого есть несколько причин производительности. Когда DOS записывает некоторую информацию на жесткий диск, она не выделяет пространство по секторам, вместо этого она использует новую единицу хранения, называемую кластером.
FAT была разработана много лет назад и представляет собой простую файловую систему, не способную управлять отдельными секторами. Вместо этого FAT группирует сектора в более крупные блоки, которые называются кластерами или единицами распределения.
Кластер — это наименьшая единица дискового пространства, которая может быть выделена для файла. По этой причине кластеры часто называют единицами распределения. Управлять диском может быть очень сложно, когда файлы разбиты на куски по 512 байт.
Дисковый том объемом 20 ГБ с использованием секторов по 512 байт, управляемых индивидуально, будет содержать более 41 миллиона отдельных секторов, и отслеживание такого количества информации требует времени и ресурсов. Однако некоторые операционные системы распределяют пространство для файлов по секторам, но для правильного выполнения этого им требуется продвинутый интеллект.
Кластеры — это минимальное пространство, выделяемое DOS при хранении любой информации на диске. Даже для хранения информации длиной всего один байт на диске требуется как минимум одна область кластера на поверхности диска.
Если один кластер может хранить 512 байт информации, то для хранения 513 байт вам потребуется два кластера. Каждому файлу должно быть выделено целое число кластеров. Это означает, что если в томе используются кластеры, содержащие 4096 байт, то файл размером 610 байт будет использовать один кластер, т. е. 4 096 байт на диске, а файл размером 4 097 байт – два кластера, то есть 8 192 байт на диске.
Вот почему размер кластера так важен для обеспечения максимальной эффективности использования диска. Таким образом, мы можем понять, что чем больше размер кластера, тем больше теряется пространство.
На следующем рисунке показаны свойства файла с именем BINARY.C и поясняется факт использования этим файлом места на диске. Фактический размер файла составляет 610 байт, но поскольку размер одного кластера составляет 4096 байт, файл использует один кластер (4096 байт) на диске.
Кластер может состоять из одного или нескольких секторов. Это зависит от типа используемого диска. Поскольку кластер может состоять более чем из одного сектора, использование кластеров в качестве единицы распределения уменьшает размер таблицы размещения файлов, которую DOS использует для хранения информации об используемом и пустом дисковом пространстве.
Размер кластера определяется главным образом размером дискового тома. Строго говоря, для больших томов обычно используются кластеры большего размера. Для томов жесткого диска размер каждого кластера варьируется от 4 секторов (2048 байт) до 64 секторов (32 768 байт).
На гибких дисках используются гораздо меньшие кластеры, а в некоторых случаях используются кластеры размером всего в 1 сектор. Сектора в кластере непрерывны, поэтому каждый кластер представляет собой непрерывный блок пространства на диске.
Размер кластера и, следовательно, размер раздела или тома, поскольку они напрямую связаны, оказывают большое влияние на производительность и использование диска. Размер кластера определяется при разбиении тома диска.
Существуют некоторые утилиты, такие как Partition Magic, которые могут изменить размер кластера существующего раздела в пределах определенных условий, но в общих случаях после выбора размера раздела и размера кластера он фиксируется.
Как мы обсуждали ранее, номер цилиндра или дорожки начинается с 0, а номер первого сектора всегда принимается за 1, и еще одна вещь, которую вы должны помнить, это то, что номер первого кластера всегда принимается за 2.
Размер кластера
Кластеры используются для выделения области хранения только для области данных. Область FAT и каталогов не выделяется в соответствии с размером кластера. На диске, где используются сектора по 512 байт, кластер размером 512 байт содержит один сектор, а кластер размером 4 КБ – 8 секторов.
В следующих таблицах перечислены размеры кластеров по умолчанию, используемые DOS для различных форматов дисков. Однако в некоторых случаях размер кластера может отличаться от размера по умолчанию:
Floppy Disk Drive (FDD) |
Drive Types |
Sectors/Cluster |
Total Cluster size in bytes (Sectors of 512 bytes Each) |
5.25” 360Kb FDD |
2 sectors |
1,024 |
5.25”1.2Mb FDD |
1 sector |
512 |
3.5” 720Kb FDD |
2 sectors |
1,024 |
3.5”1.44Mb FDD |
1 sector |
512 |
3.5”2.88MB FDD |
2 sectors |
1,024 |
FAT16, FAT32 и NTFS используют разные размеры кластеров в зависимости от размера раздела, и каждая файловая система имеет максимальное количество поддерживаемых кластеров. Чем меньше размер кластера, тем эффективнее диск хранит информацию, поскольку неиспользуемое пространство внутри кластера не может использоваться другими файлами.
В следующей таблице показаны размеры кластера по умолчанию для файловой системы FAT16, FAT32 и NTFS. FAT 32 позволяет гораздо более эффективно хранить и использовать большие жесткие диски, 32-битная FAT совместима только с Windows 95 OSR-2 и Windows 98/ME и. FAT 16 поддерживается MS-DOS, Windows 3.1, Windows 95 и Windows NT. Операционные системы Windows 2000/XP используют файловую систему NTFS.
Примечание. Здесь 1 КиБ был записан для 1 двоичного килобайта, что означает, что 1 КиБ составляет 1024 байта, или мы можем сказать, что два сектора по 512 байт эквивалентны 1 КиБ.
По мере увеличения размера раздела FAT16 увеличивается и потеря дискового пространства. Использование FAT32 уменьшает размеры кластера и, таким образом, обеспечивает эффективное хранение. Хотя FAT32 позволяет использовать большие жесткие диски и значительно уменьшить размеры кластеров, при использовании FAT32 важно учитывать производительность, так как огромные жесткие диски с десятками гигабайт сделали FAT32 необходимой для новых систем. Скорее мы можем сказать, что у вас часто больше нет практического выбора между FAT16 и FAT32.
Давайте рассмотрим раздел размером 2048 МБ, максимальный размер, который может поддерживать FAT16. Если этот раздел настроен под FAT16, это приведет к созданию таблицы размещения файлов с 65 526 кластерами, каждый из которых будет занимать 32 КБ дискового пространства.
Большой размер кластера действительно приведет к большой потере дискового пространства. Поэтому рекомендуется использовать FAT32 в этом разделе, что приведет к уменьшению размера кластера с 32 КиБ до 4 КиБ.
На самом деле, это уменьшит свободное время на диске на огромную величину, которая может достигать 30%, и потенциально освободит сотни мегабайт ранее потраченного впустую дискового пространства. Обычно в такой ситуации это правильно. Однако у него есть и другая сторона. Мы не получаем этот уменьшенный размер кластера бесплатно.
Поскольку каждый кластер меньше, их должно быть больше, чтобы покрыть тот же объем диска. Таким образом, вместо 65 526 кластеров теперь у нас будет 524 208.
Более того, записи FAT в FAT32 имеют ширину 32 бита (каждая запись 4 байта), тогда как записи FAT16 имеют 16 бит (каждая запись 2 байта). Конечным результатом является то, что размер FAT в 16 раз больше для FAT32, чем для FAT16. В следующей таблице приведены:
FAT 16 and FAT 32 for 2,048 MB Disk Volume |
FAT Type |
FAT16 |
FAT32 |
Cluster Size |
32 KiB |
4 KiB |
Number of FAT Entries |
65,526 |
524,208 |
Size of FAT |
131052 Bytes
(~ 128 KiB) |
2096832 Bytes
(~ 2 MiB) |
Если мы увеличим размер тома FAT32 с 2 ГБ до 8 ГБ, размер FAT увеличится примерно с 2 МБ до 8 МБ. Значение этого не в том, что тому FAT32 придется тратить несколько мегабайт места на диске для хранения FAT. Потому что только таким образом экономится гораздо больше места, чем при уменьшении размера FAT. Настоящая проблема заключается в том, что FAT содержит все указатели кластеров для каждого файла в томе. Значительное увеличение размера FAT может отрицательно сказаться на скорости системы.
По этой причине важно ограничить размер таблицы размещения файлов разумным числом. На самом деле в большинстве случаев речь идет о поиске баланса между размером кластера и размером FAT. Хорошей иллюстрацией этого является выбор размера кластера, сделанный самой FAT32.
Поскольку FAT32 может обрабатывать до 268 миллионов кластеров, кластер размером 4 КиБ концептуально способен поддерживать дисковый том размером 1 ТиБ (1024 ГиБ), но проблема заключается в том, что размер FAT в этом случае превысит 1 ГБ согласно 268 миллионам раз по 4 байта на запись.
По этой причине FAT32 использует только кластеры размером 4 КиБ для томов размером до 8 ГиБ, а затем используются более крупные кластеры, как показано в приведенной выше таблице для размеров кластеров. Максимальный размер раздела, поддерживаемый FAT32, который официально объявлен, составляет 2048 ГиБ (2 ТиБ).
Логическая структура жесткого диска
В принципе, мы можем разделить логическую структуру жесткого диска на следующие пять логических терминов:
- MBR (главная загрузочная запись)
- DBR (загрузочная запись DOS)
- FAT (таблицы размещения файлов)
- Корневой каталог
- Область данных
На следующем рисунке показано концептуальное расположение этих логических терминов, образующих логическую структуру жесткого диска:
Основная загрузочная запись (MBR), которую иногда называют главной таблицей разделов (MPT), содержит небольшую программу для загрузки и запуска активного (или загрузочного) раздела с жесткого диска. Основная загрузочная запись содержит информацию обо всех четырех основных разделах жесткого диска, такую как начальный сектор, конечный сектор, размер раздела и т. д.
Главная загрузочная запись расположена в абсолютном секторе 0 или, можно сказать, в цилиндре 0, головке 0 и секторе 1, и если на диске присутствует более одного раздела, существуют расширенные основные загрузочные записи, расположенные в начале каждого из них. расширенный объем раздела (см. рисунок, приведенный далее).
MBR создается на жестком диске путем выполнения команды FDISK.EXE в DOS. Однако для решения той же задачи доступно множество других программ. С помощью FDISK любой из этих разделов можно сделать активным или загрузочным.
Это позволяет загрузочному сектору активного раздела получить управление при запуске системы. Поскольку на дискете нет разделов, значит, на дискете нет MBR.
Поскольку в DOS для обозначения раздела используется один алфавит верхнего регистра, максимальное количество всех типов разделов, разрешенных DOS, равно 24, начиная с буквы диска C (C:) до буквы диска Z (Z:) . Поэтому, даже если присутствует более одного физического жесткого диска, общее количество разделов всех дисков не может превышать 24.
После самотестирования при включении питания (POST) BIOS загружает MBR (основную загрузочную запись) с жесткого диска в память, а затем выполняет ее. Сначала MBR проверяет жесткий диск на наличие активного раздела, затем загружает загрузочную запись DOS (DBR) в память и передает управление коду загрузки операционной системы, а затем код загрузочной записи операционной системы загружает остальную часть операционной системы в память. Память.
Формат основной загрузочной записи
Мы можем разделить жесткий диск на несколько логических дисков, которым DOS обычно присваивает собственную букву диска. Только один раздел может быть помечен как активный (или загрузочный).
Основная загрузочная запись имеет ограничение в четыре записи в таблице основных разделов. Однако местоположение расширенной основной загрузочной записи можно узнать с помощью основной загрузочной записи, содержащей расширенные таблицы разделов, формат которых точно такой же, как у основной таблицы разделов, за исключением отсутствия загрузочного кода.
В расширенной основной загрузочной записи это пространство размером 446 байт обычно резервируется для загрузочного кода и остается пустым. Все 512 байт основной загрузочной записи повреждены следующим образом, как указано в таблице:
Offset |
Description |
Size |
000H |
Initial Program Loader (IPL) , Executable Code (Provides very first booting to the Computer) |
446 Bytes |
1BEH |
First Partition Entry (See Next Table) |
16 Bytes |
1CEH |
Second Partition Entry |
16 Bytes |
1DEH |
Third Partition Entry |
16 Bytes |
1EEH |
Fourth Partition Entry |
16 Bytes |
1FEH |
Executable Marker or Bootable Sector Signature or Magic Number (AAH 55H) |
2 Bytes |
Total = 512 Bytes |
Все расширенные разделы должны существовать в пространстве, зарезервированном записью расширенного раздела. Только два из расширенных разделов предназначены для использования, первый как обычный раздел, а второй как еще один расширенный раздел, если он существует. Таким образом, с помощью одной основной таблицы разделов мы можем получить расположение другой расширенной основной таблицы разделов рядом с ней, если она присутствует.
Формат записи таблицы разделов
Формат записи в таблице разделов любого раздела в MBR указан в следующей таблице. Каждая запись раздела любой MBR может быть разбита на следующие байты с их конкретными значениями:
Байт индикатора типа загрузки (1 байт): если этот байт равен 00H, это означает, что раздел не активен, а если байт равен 80H, это означает, что раздел является активным разделом или загрузочным разделом. . Хотя присутствие любого другого байта не ожидается, тем не менее, если присутствует какой-либо другой байт, это может быть связано с повреждением таблицы разделов или с какой-либо вирусной атакой в таблице разделов.
Начальный цилиндр — головка — номер сектора раздела (3 байта): когда мы вычисляем CHS (цилиндр, головку и сектор) любого диска, физические CHS подсчитываются следующим образом:
- Физический сектор считается с 1.
- Физическая голова отсчитывается от 0.
- Физический цилиндр отсчитывается от 0 (подробности см. в предыдущей главе)
- Байт со смещением 01H представляет собой начальный номер заголовка в шестнадцатеричной системе для раздела.
6 младших значащих битов байта по смещению 02H составляют номер начального сектора раздела и комбинацию оставшихся 2 битов (как два старших значащих бита) плюс 8 бит другого байта по смещению 03H (остальные 8 младших битов из 10 -Bit Number) задайте начальный номер цилиндра раздела.
Offset |
Meaning |
Size |
Description |
00H |
Boot Type Indicator Byte |
1 Byte |
If Byte is 00H, the Partition is Inactive and if Byte is 80H , The Partition is Active (or Bootable) |
01H |
Head Number of Beginning of the Partition |
1 Byte |
Starting Head number of the Partition in Hexadecimal System |
02H |
Sector and Cylinder Number of Beginning of the Partition |
2 Bytes |
6 Bits of First Byte make Starting Sector Number and Combination of remaining 2 Bits (as Two Most Significant Bits) plus 8 Bits of another Byte (Rest 8 least Significant Bits of the 10-Bit Number ) make the Starting Cylinder Number of the Partition |
04H |
File System indicator Byte |
1 Byte |
File System Indicator Byte in Hexadecimal system (See the Table given next for Indicators) |
05H |
Head Number of End of the Partition |
1 Byte |
Ending Head Number of the Partition in Hexadecimal System |
06H |
Sector and Cylinder Number of End of the Partition |
2 Bytes |
6 Bits of First Byte make Ending Sector Number and Combination of remaining 2 Bits (as Two Most Significant Bits) plus 8 Bits of another Byte (Rest 8 least Significant Bits of the 10-Bit Number ) make the Ending Cylinder Number of the Partition |
08H |
Relative Sector number of Beginning of the Partition |
4 Bytes |
Number of Sectors Between the MBR and the First Sector in the Partition |
0CH |
Number of Sectors of the Partition |
4 Bytes |
Number of Sectors in the Partition |
Total = 16 Bytes |
Кодировка цилиндра и сектора была дана в примере исследования таблицы разделов, выполненного далее.
Байт индикатора файловой системы (1 байт): Байт индикатора файловой системы по смещению 04H представляет файловую систему этого раздела. Далее в этой главе приводится таблица, в которой перечислены байты индикатора файловой системы для различных файловых систем.
Конечный цилиндр — головка — номер сектора раздела (3 байта): кодировка такая же, как и для начального цилиндра — головка — номер сектора раздела.
Относительный номер сектора начала раздела (4 байта): количество секторов между MBR и первым сектором в разделе в шестнадцатеричной системе.
Количество секторов раздела (4 байта): количество секторов раздела в шестнадцатеричной системе.
Всегда следует помнить, что номера цилиндров, головок и секторов должны передаваться в BIOS. Таким образом, если BIOS использует преобразование (режим LBA или поддержка расширений INT 13H), значения могут не соответствовать физическим значениям CHS. Для больших жестких дисков (более 8,4 ГБ) значения CHS могут быть недействительными. Эти значения, как правило, следует игнорировать и вместо них использовать абсолютные значения сектора.
На следующем рисунке показана MBR диска с разделами FAT32. Выделенная область размером 64 байта в конце рисунка представляет главную таблицу разделов MBR.
Кодировка для начального и конечного CHS следующая:
- По смещению 00H 80 (шестнадцатеричное число) означает, что раздел является активным.
- По смещению 01H 01 (шестнадцатеричный) представляет собой начальный номер головки = 1.
- Комбинация двух байтов со смещением 02H и 03H образует начальный сектор.
и номер цилиндра раздела в соответствии с приведенной ниже кодировкой:
Таким образом, начальный C-H-S раздела = 0-0-1.
Аналогично номер головки для окончания раздела — FE (Hex), что равно 254, а кодировка для конечного цилиндра и номера сектора раздела указаны в следующей таблице:
Таким образом, окончание C-H-S раздела = 701-254-63.
Байт 0B (шестнадцатеричный) по смещению 04H является байтом индикатора файловой системы для раздела. Байт 0B (H) означает, что раздел имеет файловую систему FAT32. Таблица для различных файловых систем и их байты индикатора файловой системы приведены ниже:
File system Indicator Byte in Hexadecimal |
Partition/ File system Description |
00H |
Unused/Empty Partition-Table Entry
(Remember this is not used to designate unused area on the disk, but marks an unused partition table entry) |
01H |
DOS 12-bit fat
(The type 01H is for partitions up to 15 MB) |
02H |
XENIX: root file system |
03H |
XENIX /usr file system (obsolete)
(XENIX is an old part of Unix V7. Microsoft XENIX Operating System was announced in August 1980. It was a portable and commercial version of the Unix operating system for the Intel 8086, Zilog Z8000, Motorola M68000 and Digital Equipment PDP-11. Microsoft introduced XENIX 3.0 in April 1983. SCO delivered its first XENIX for 8088/8086 in 1983.) |
04H |
16-bit FAT, DOS 3.0+ (Partition size < 32M)
(Some old DOS versions have had a bug which required this partition to be located in the 1st physical 32 MB of the hard disk ) |
05H |
DOS Extended (DOS 3.3+ Extended Volume)
Supports at most 8.4 GB disks. With this type 05H DOS/Windows will not use the extended BIOS call, even if it is available.) |
06H |
16-bit FAT, DOS Big, DOS 3.31+ (Partition Size >= 32M)
(Partitions are at most 2 GB for DOS and Windows 95/98 with maximum 65536 clusters with each cluster, at most 32 KB. Windows NT can create up to 4 GB FAT16 partition using 64 KB clusters.) |
07H |
OS/2 IFS (Installable File System) (HPFS is the best known example of this file system. OS/2 only looks at partitions with ID 7 for any installed IFS this is the reason that EXT2 IFS packet includes a special "Linux partition filter" device driver to fool OS/2 into thinking Linux partitions have ID 07). |
07H |
Advanced Unix |
07H |
Windows NT NTFS |
07H |
QNX2.x (pre-1988)
(For the actual file system of partition type 07H, one should inspect the partition boot record) |
08H |
OS/2 (v1.0 to v1.3 only) |
08H |
AIX boot partition
[AIX (Advanced Interactive Executive) is the IBM's version of Unix] |
08H |
SplitDrive |
08H |
DELL partition spanning multiple drives |
08H |
Commodore DOS |
08H |
QNX 1.x and 2.x
("qny" according to QNX partitions) |
09H |
AIX data partition |
09H |
Coherent file system
[Coherent was a UNIX like Operating System for the 286-386-486 systems, marketed by Mark Williams Company led by Bob Swartz. It was renowned for its good documentation. It was introduced in 1980 and died 1 Feb 1995. The last versions are V3.2 for 286-386-486 and V4.0 (May 1992, using protected mode) for 386-486 only. It sold for $99 a copy and it is rumored that 40000 copies have been sold. A Coherent partition has to be primary. ] |
09H |
QNX 1.x and 2.x ("qnz" according to QNX Partitions) |
0aH |
OS/2 Boot Manager
(OS/2 is the operating system designed by Microsoft and IBM to be the successor of MS-DOS) |
0aH |
Coherent swap partition |
0aH |
OPUS
(Open Parallel Unisys Server) |
0bH |
WIN95 OSR2 32-bit FAT
(OSR2 stands for Microsoft’s “OEM Service Release 2”. It is for Partitions up to 2047GB. Almost always, Windows 95/98/ME have the same File system which is FAT-32, within the same partitions limits) |
0cH |
LBA-mapped WIN95 OSR2 32-bit FAT
(It is using Logical Block Addressing – mode of Interrupt 13H extensions therefore we can say that this is the Extended INT 13H equivalent of 0BH. Almost always, Windows 95/98/ME have the same File system which is FAT-32, within the same partitions limits) |
0eH |
LBA-mapped WIN95: DOS 16-bit FAT or Logical Block Addressable VFAT
(It is same as 06H but using LBA-mode of INT 13H) |
0fH |
LBA-mapped WIN95: Extended partition or Logical Block Addressable VFAT
(It is same as 05H but using LBA-mode of INT 13H. Windows 95 uses 0EH and 0FH as the extended INT13H equivalents of 06H and 05H. Windows NT does not recognize the four Windows 95/98/ME types 0BH, 0CH, 0EH and 0FH) |
10H |
OPUS
(Octal Program Updating System) |
11H |
Hidden DOS 12-bit FAT or OS/2 Boot Manager hidden 12-bit FAT partition or DOS Seen From OS/2 (When OS/2 Boot manager boots a DOS partition, it will hide all primary DOS partitions except the one that is booted, by changing its ID and 01H, 04H, 06H and 07H becomes 11H, 14H, 16H and 17H, respectively. |
12H |
Compaq Configuration/diagnostics partition
(It is used by Compaq for their configuration utility partition. It is a FAT-compatible partition that boots into their utilities, and can be added to a LILO menu as if it were MS-DOS. ) |
14H |
(Hidden DOS 16-bit FAT or OS/2 Boot Manager Hidden DOS 16-bit FAT) <32M Partition
(Partition size is less than 32M. ID 14H is resulted from using Novell DOS 7.0 FDISK to delete Linux Native partition. ) |
15H |
Hidden DOS-Extended |
16H |
(Hidden DOS 16-bit FAT or OS/2 Boot Manager hidden 16-bit FAT ) >=32M Partition |
17H |
OS/2 Boot Manager hidden HPFS partition or Hidden IFS (e.g., HPFS) |
17H |
Hidden NTFS partition |
18H |
AST SmartSleep Partition or AST special Windows swap file ("Zero-Volt Suspend" partition)
[AST Research, Inc. (named from first initials of the founders, Albert Wong, Safi Qureshey and Thomas Yuen). Ascentia laptops have a “Zero – Volt Suspend Partition” or `SmartSleep Partition' of size 2MB+memory size.] |
File system Indicator Byte in Hexadecimal |
Partition/ File system Description |
19H |
Willowtech Photon COS
(Code 19H is Claimed for Willowtech Photon COS by Willow Schlanger. |
1bH |
Hidden WIN95 OSR2 32-bit FAT or Hidden Windows 95 FAT32 Partition |
1cH |
LBA-mapped Hidden WIN95 OSR2 32-bit FAT
(It is hidden Windows95 FAT32 partition using LBA-mode of INT 13H Extensions) |
1eH |
LBA-mapped Hidden WIN95 16-bit FAT or Hidden LBA VFAT partition |
1FH |
LBA mapped Hidden WIN95 Extended or Hidden Extended LBA VFAT Partition |
20H |
OFSI
(Willowsoft Overture File System ) |
21H |
Officially listed as Reserved
(HP Volume Expansion, SpeedStor variant.) |
21H |
FSO2
(Claimed for FSO2 (Oxygen File System) by Dave Poirier) |
22H |
FSO2 Extended Partition
(Claimed for Oxygen Extended Partition by Dave Poirier) |
23H |
Officially listed as Reserved |
24H |
NEC DOS 3.x |
26H |
Officially listed as Reserved |
31H |
Officially listed as Reserved |
32H |
NOS (Network Operating System)
(32H is being used by the operating system NOS, being developed by Alien Internet Services in Melbourne Australia. The id 32H was chosen not only because of it was one of the few that are left available but also 32k is the size of the EEPROM the OS was originally targeted for. |
33H |
Officially listed as Reserved |
34H |
Officially listed as Reserved |
35H |
JFS on OS/2 or eCS
[35H is used by OS/2 Warp Server for e-Business, OS/2 Convenience Pack (aka version 4.5) and eComStation (eCS, an OEM version of OS/2 Convenience Pack) for the OS/2 implementation of JFS (IBM AIX Journaling File System)] |
36H |
Officially listed as Reserved |
38H |
THEOS v3.2 (2GB partition) |
39H |
Plan 9 partition
(Plan 9 is an operating system developed at Bell Labs for many architectures. Originally Plan 9 used an unallocated portion at the end of the disk. 3rd edition of Plan 9 uses partitions of type 39H, subdivided into sub partitions described in the Plan 9 partition table in the second sector of the partition.) |
39H |
THEOS v4 spanned partition |
3aH |
THEOS v4 (4GB partition) |
3bH |
THEOS v4 Extended partition
(THEOS is a multi-user multitasking Operating System for PCs founded by Timothy Williams in 1983.) |
3cH |
PartitionMagic recovery partition
(When a PowerQuest product like Partition Magic or Drive Image makes changes to the disk, it first changes the type flag to 3CH so that the Operating System will not try to modify it. At the end of the process, it is changed back to what it was at first. Therefore the only time you can see a 3CH type flag, is if the process was interrupted somehow such as power off, user reboot etc. If you change it back manually with a partition table editor or any disk editing program then most of the time everything is okay.) |
3dH |
Hidden NetWare |
40H |
Venix 80286
(It is a very old Unix-like operating system for PCs.) |
41H |
Linux/MINIX (sharing disk with DR-DOS)
(DR-DOS stands for Digital Research-Disk Operating System.) |
41H |
Personal RISC Boot |
41H |
PPC PReP (Power PC Reference Platform) Boot Partition |
42H |
Linux swap (sharing disk with DR-DOS) |
42H |
SFS (Secure File System)
(SFS is an encrypted file System driver for DOS on 386+ PCs, written by Peter Gutmann.) |
File system Indicator Byte in Hexadecimal |
Partition/ File system Description |
42H |
Windows 2000 Dynamic Extended Partition Marker
(If a partition table entry of type 42H is present in the legacy partition table, then Windows 2000 ignores the legacy partition table and uses a proprietary partition table and a proprietary partitioning scheme (LDM or DDM). Pure dynamic disks (those not containing any hard-linked partitions) have only a single partition table entry, type 42H to define the entire disk. Dynamic disks store their volume configuration in a database located in a 1-MB private region at the end of each dynamic disk.) |
43H |
Linux native (sharing disk with DR-DOS) |
44H |
GoBack partition
(GoBack is a utility that records changes made to the disk, allowing you to view or go back to some earlier state. It takes over disk I/O like a Disk Manager would, and stores its logs in its own partition.) |
45H |
Boot-US boot manager
(Boot-US (Ulrich Straub) boot manager can be installed to MBR, a separate primary partition or diskette. When installed to a primary partition this partition gets the ID 45H. This partition does not contain a file system, it contains only the boot manager and occupies a single cylinder (below 8.4 GB). ) |
45H |
Priam |
45H |
EUMEL/Elan |
46H |
EUMEL/Elan |
47H |
EUMEL/Elan |
48H |
EUMEL/Elan
(EUMEL, later known as Ergos L3, are the multi-user multitasking systems developed by Jochen Liedtke at GMD, using Elan programming Language. It was used at German schools for the computer science education.) |
4aH |
AdaOS Aquila |
4aH |
ALFS/THIN lightweight filesystem for DOS |
4cH |
Oberon partition |
4dH |
QNX4.x |
4eH |
QNX4.x 2nd partition |
4fH |
QNX4.x 3rd partition
(QNX is a POSIX (Portable Operating System Interface for Unix)-certified, microkernel, distributed, fault-tolerant Operating System for the 386 and later, including support for the 386EX in embedded applications.) |
4fH |
Oberon boot/data partition |
50H |
OnTrack Disk Manager (older versions), Read-Only Partition (Disk Manager is a program of OnTrack to enable people to use IDE disks that are larger than 504MB under DOS. Linux kernel versions older than 1.3.14 do not coexist with DM.) |
50H |
Lynx RTOS (Real-Time Operating System)
(Lynx RTOS gives users the ability to place up to 14 partitions of 2 GB each on both SCSI and IDE drives, for a total of up to 28 GB of file system space.) |
50H |
Native Oberon |
51H |
OnTrack Disk Manager (DM6.0 Aux1), Read/Write Partition |
51H |
Novell |
52H |
CP/M |
52H |
Microport SysV/AT or Microport System V/386 |
53H |
OnTrack Disk Manager (DM6.0 Aux3), Write-Only partition |
54H |
OnTrack Disk Manager 6.0 Dynamic Drive Overlay |
55H |
EZ-Drive Partition
(EZ-Drive is another disk manager like program developed by MicroHouse in 1992. Now It is marketed by StorageSoft.) |
56H |
Golden Bow VFeature Partitioned Volume.
(This is also a Disk Manager like Utility software. This is a Non-Standard DOS Volume.) |
56H |
DM converted to EZ-BIOS |
57H |
DrivePro
(DrivePro was developed by MicroHouse in 1992. Now It is marketed by StorageSoft.) |
57H |
VNDI Partition |
5cH |
Priam EDisk Partitioned Volume
(Priam EDisk is Disk Manager type utility software. This is a Non-Standard DOS Volume.) |
61H |
SpeedStor
(Storage Dimensions SpeedStor Partitioned Volume. This is a Non-Standard DOS Volume. It is Disk Manager type utility software.) |
63H |
Unix System V/386, 386/ix, SCO, ISC Unix, UnixWare, Mach, MtXinu BSD 4.3 on Mach, GNU Hurd |
64H |
Novell NetWare 286, 2.xx |
File system Indicator Byte in Hexadecimal |
Partition/ File system Description |
64H |
PC-ARMOUR protected partition
(64H is used by PC-ARMOUR disk protection by Dr. A. Solomon, intended to keep the disk inaccessible until the right password was given and then an INT 13H hook was loaded above top-of-memory that showed C-H-S = 0-0-2, with a copy of the real partition table, when 0-0-1 was requested). |
65H |
Novell NetWare 3.86, 3.xx or 4.xx
(Novell Netware 3.0 and later versions use one partition per drive. It allocates logical Volumes inside these partitions. The volumes can be split over several drives. The file system used is called Turbo FAT and it only very vaguely resembles the DOS FAT file system. Novell Netware used to be the main Network Operating System available. Netware 68 or S-Net (1983) was for a Motorola 68000, Netware 86 for an Intel 8086 or 8088. Netware 286 was for an Intel 80286 and existed in various versions that were later merged to Netware 2.2. Netware 386 was a rewrite in C for the Intel 386 which was later renamed to Netware 3.x (3.0, 3.1, 3.10, 3.11 and 3.12 etc) versions. Its successor Netware 4.xx had versions 4.00, 4.01, 4.02, 4.10 and 4.11. Then came Intranetware) |
66H |
Novell Netware SMS Partition
(SMS stands for Storage Management Services. It is not used now.) |
67H |
Novell |
68H |
Novell |
69H |
Novell Netware 5+ and Novell Netware NSS Partition
(NSS stands for Novell Storage Services.) |
70H |
DiskSecure Multi-Boot |
71H |
Officially listed as reserved |
73H |
Officially listed as reserved |
74H |
Officially listed as reserved |
74H |
Scramdisk partition
(Scramdisk is a disk encryption software. It supports container files, dedicated partitions type 74H and disks hidden in WAV audio files.) |
75H |
IBM PC/IX |
76H |
Officially listed as reserved |
77H |
M2FS/M2CS partition |
77H |
QNX 4.x |
78H |
XOSL File System
(XOSL Boot loader file system) |
78H |
QNY 4.x |
79H |
QNZ 4.x |
7EH |
F.I.X. |
7Fh |
Alt-OS-Development Partition Standard |
80H |
Old MINIX, MINIX v1.1 to v1.4a |
81H |
MINIX 1.4b and Later
(MINIX is a Unix-like operating system written by Andy Tanenbaum and students at the Vrije University, Amsterdam, around 1989-1991. It runs on PCs (8086 and up), Macintosh, Atari, Amiga, Sparc. |
81H |
Early Linux |
81H |
Mitac Advanced Disk Manager |
82H |
Prime |
82H |
Solaris x86
(Solaris creates a single partition with ID 82H and then uses Sun disk labels within the partition to split it further.) |
82H |
Linux Swap partition |
83H |
Linux Native Partition or Linux native file system or Linux Ext2fs
(Linux is a Unix-like operating system written by Linus Torvalds and many others on the internet since 1991. It runs on PCs 386 and later and a variety of other hardware. It is distributed under GPL (General Public License) . Various file system types like xiafs, ext2, ext3, reiserfs, etc. all use ID 83H.) |
84H |
OS/2 hidden C: drive or OS/2-renumbered type 04 partition.
(OS/2-renumbered type 04h partition is related to hiding DOS C: drive) |
84H |
Hibernation partition
(Reported for various laptop models, e.g., used on Dell Latitudes (with Dell BIOS) that use the MKS2D utility.) |
85H |
Linux Extended partition |
86H |
Old Linux RAID partition super block |
86H |
FAT16 volume/stripe set (Windows NT) or NTFS volume set
(It is Legacy Fault Tolerant FAT16 volume.) |
87H |
HPFS Fault-Tolerant mirrored partition or NTFS volume set or NTFS volume/stripe set
(Legacy Fault Tolerant NTFS volume. HPFS Fault-Tolerant mirrored partition. ) |
8aH |
Linux Kernel Partition
(It is used by AiR-BOOT) |
File system Indicator Byte in Hexadecimal |
Partition/ File system Description |
8bH |
Legacy Fault Tolerant FAT32 volume |
8cH |
Legacy Fault Tolerant FAT32 volume using BIOS Extended INT 13H. |
8dH |
Free FDISK hidden Primary DOS FAT12 partition
(Free FDISK is the FDISK used by FreeDOS. It hides types 01H, 04H, 05H, 06H, 0BH, 0CH, 0EH and 0FH by adding decimal Number 140 (8CH).) |
8eH |
Linux Logical Volume Manager partition |
90H |
Free FDISK hidden Primary DOS FAT16 partition |
91H |
Free FDISK hidden DOS extended partition |
92H |
Free FDISK hidden Primary DOS large FAT16 partition |
93H |
Hidden Linux native partition |
93H |
Amoeba file system |
94H |
Amoeba bad block table
(Amoeba is a distributed operating system written by Andy Tanenbaum, together with Frans Kaashoek, Sape Mullender, Robert van Renesse and others since 1981. It runs on PCs (386 and up), Sun3, Sparc, 68030. It is free for universities for research and teaching purposes.) |
95H |
MIT EXOPC native partition |
97H |
Free FDISK hidden Primary DOS FAT32 partition |
98H |
Free FDISK hidden Primary DOS FAT32 partition (LBA) |
99H |
Mylex EISA SCSI or DCE376 logical drive
(It is used by the Mylex DCE376 EISA SCSI adaptor for partitions which are beyond the 1024 cylinder of a drive.) |
9aH |
Free FDISK hidden Primary DOS FAT16 partition (LBA) |
9bH |
Free FDISK hidden DOS extended partition (LBA) |
9fH |
BSD/OS |
a0H |
Phoenix NoteBIOS Power Management "Save-to-Disk" partition or Laptop hibernation partition
(It is Reported for various laptops like IBM Thinkpad, Phoenix NoteBIOS, Toshiba under names like zero-volt suspend partition, suspend-to-disk partition, save-to-disk partition, power-management partition, hibernation partition, usually at the start or end of the disk area.) |
a1H |
Laptop hibernation partition
(Used as "Save-to-Disk" partition on a NEC 6000H notebook. Types A0H and A1H are used on systems with Phoenix BIOS. The Phoenix PHDISK utility is used with these.) |
a1H |
HP Volume Expansion (SpeedStor variant) |
a3H |
Officially listed as Reserved |
a4H |
Officially listed as Reserved |
a5H |
BSD/386, 386BSD, NetBSD, FreeBSD
(386BSD is a Unix-like operating system, a port of 4.3BSD Net/2 to the PC done by Bill Jolitz around 1991.) |
a6H |
OpenBSD
(OpenBSD, led by Theo de Raadt, split off from NetBSD. It tries to emphasize on security.) |
a7H |
NEXTSTEP
(NEXTSTEP is Based on Mach 2.6 and features of Mach 3.0. It is a true object-oriented operating system and user environment. |
a8H |
Mac OS-X
(Apple's OS-X uses this type for its file system partition) |
a9H |
NetBSD |
aaH |
Olivetti Fat 12 1.44MB Service Partition
(It Contains a bare DOS 6.22 and a utility to exchange types 06H and AAH in the partition table.) |
abH |
Mac OS-X Boot partition
(Apple's OS-X (Darwin Intel) uses this type for its boot partition.) |
abH |
GO! partition |
aeH |
ShagOS file system |
afH |
ShagOS swap partition |
b0H |
BootStar Dummy
(The boot manager BootStar manages its own partition table, with up to 15 primary partitions. It fills unused entries in the MBR with BootStar Dummy values.) |
b1H |
Officially listed as Reserved |
b3H |
Officially listed as Reserved |
b4H |
Officially listed as Reserved |
b6H |
Officially listed as Reserved |
B6H |
Windows NT mirror set (master), FAT16 file system |
b7H |
BSDI file system (secondarily swap), BSDI BSD/386 file system |
B7H |
Windows NT mirror set (master), NTFS file system |
File system Indicator Byte in Hexadecimal |
Partition/ File system Description |
b8H |
BSDI BSD/386 swap partition (secondarily file system)
(BSDI (Berkeley Software Design, Inc.) was founded by former CSRG (UCB Computer Systems Research Group) members. Their operating system, based on Net/2, was called BSD/386.) |
bbH |
Boot Wizard hidden |
beH |
Solaris 8 boot partition |
c0H |
DR-DOS/Novell DOS secured partition |
C0H |
CTOS |
c0H |
REAL/32 secure small partition |
c0H |
NTFT Partition |
c1H |
DR DOS 6.0 LOGIN.EXE-secured 12-bit FAT partition |
c2H |
Reserved for DR-DOS 7+ |
c2H |
Hidden Linux |
c3H |
Hidden Linux swap |
c4H |
DR DOS 6.0 LOGIN.EXE-secured 16-bit FAT partition |
c5H |
DRDOS/secured (Extended) |
c6H |
DRDOS/secured (FAT-16, >= 32M)
(DR-DOS 6.0 will add C0H to the partition type for a LOGIN.EXE - secured partition so that User can not avoid the password check by booting from an MS-DOS floppy. Otherwise it seems that the types C1H, C4H, C5H, C6H and D1H, D4H, D5H, D6H are used precisely like 1H, 4H, 5H, and 6H.) |
c6H |
Corrupted FAT16 volume/stripe set (Windows NT)
(NTFS will add C0H to the partition type for disabled parts of a Fault Tolerant set. Thus, one gets types C6H, C7H.) |
c7H |
Windows NT corrupted NTFS volume/stripe set |
c7H |
Syrinx boot |
c8H |
Officially listed as Reserved |
c9H |
Officially listed as Reserved |
caH |
Officially listed as Reserved |
cbH |
Reserved for DR-DOS secured FAT32 |
ccH |
Reserved for DR-DOS secured FAT32 (LBA) |
cdH |
CTOS Memdump |
ceH |
Reserved for DR-DOS secured FAT16 (LBA) |
d0H |
REAL/32 secure big partition
(REAL/32 is a continuation of DR Multi-user DOS.) |
d1H |
Old Multi-user DOS secured FAT12 |
d4H |
Old Multi-user DOS secured FAT16 <32M |
d5H |
Old Multi-user DOS secured extended partition |
d6H |
Old Multi-user DOS secured FAT16 >=32M |
d8H |
CP/M-86 |
daH |
Non-FS Data |
dbH |
Digital Research CP/M, Concurrent CP/M, Concurrent DOS |
dbH |
CTOS (Convergent Technologies OS -Unisys) |
dbH |
KDG Telemetry SCPU boot
(KDG Telemetry uses ID DBH to store a protected-mode binary image of the code to be run on a 'x86-based SCPU (Supervisory CPU) module from the DT800 range.) |
ddH |
Hidden CTOS Memdump |
deH |
Dell PowerEdge Server utilities (FAT) |
dfH |
DG/UX virtual disk manager partition |
dfH |
BootIt EMBRM
(The boot manager BootIt manages its own partition table, with up to 255 primary partitions.) |
e0H |
Reserved by ST Microelectronics for a file system called ST AVFS. |
e1H |
DOS access or SpeedStor 12-bit FAT extended partition
(It is a SSTOR partition on cylinders more than 1023.) |
E2H |
DOS Read-Only |
e3H |
Storage Dimensions |
e4H |
SpeedStor 16-bit FAT extended partition < 1024 cylinders |
e5H |
Officially listed as Reserved |
e5H |
Tandy DOS with logical sectored FAT |
e6H |
Officially listed as Reserved |
ebH |
BeOS BFS (BFS1)
(BeOS is an operating system that runs on Power PCs) |
edH |
Reserved for Matthias Paul’s Sprytix |
eeH |
Indication that this legacy MBR is followed by an EFI Header |
efH |
Partition that contains an EFI file system |
f0H |
Linux/PA-RISC boot loader |
f1H |
Storage Dimensions |
f2H |
DOS 3.3+ secondary partition |
f2H |
Unisys DOS with logical sectored FAT |
f3H |
Officially listed as Reserved |
f4H |
SpeedStor large partition |
F4H |
Prologue single-volume partition |
File system Indicator Byte in Hexadecimal |
Partition/ File system Description |
f5H |
Prologue multi-volume partition
(The type F4H partition contains one volume, and is not used anymore. The type F5H partition contains 1 to 10 volumes called MD0 to MD9. It supports one or more systems. Each volume can have as file system the NGF file system or TwinFS file system. ) |
f6H |
Officially listed as Reserved |
F6H |
Storage Dimensions SpeedStor |
faH |
MandrakeSoft's Bochs x86 emulator |
fbH |
VMware File System partition |
fcH |
VMware Swap partition
(VMware offers virtual machines in which one can run Linux, Windows, FreeBSD.) |
fdH |
Linux raid partition with auto detect using persistent super block |
feH |
SpeedStor more than 1024 cylinders |
feH |
LANstep |
feH |
IBM PS/2 IML (Initial Microcode Load) partition
(It is located at the end of the disk.) |
feH |
Windows NT Disk Administrator hidden partition
(Windows NT Disk Administrator marks hidden partitions, i.e. present but not to be accessed, as type FEH.) |
feH |
Linux Logical Volume Manager partition (old) |
ffH |
XENIX Bad Block Table |
Загрузочная запись DOS (DBR) / загрузочный сектор DOS
После таблицы разделов загрузочная запись DOS (DBR), которую иногда называют загрузочным сектором DOS, является второй по важности информацией на жестком диске. Большинство коммерческих приложений для восстановления дисков способны восстанавливать поврежденные загрузочные записи
Загрузочная запись DOS (DBR) для первого раздела на жестком диске обычно находится в абсолютном секторе 63 (64-й сектор на диске) или в форме CHS, мы можем сказать C–H–S = 0–1–1 для большинства дисков.
Однако это расположение может варьироваться в зависимости от SPT (количества секторов на дорожку) накопителя. Например, на старом диске емкостью 245 МБ, имеющем только 31 SPT, загрузочная запись располагалась в 32-м секторе (абсолютный сектор 31).
DBR создается командой DOS FORMAT. Эта программа может быть запущена с дискеты DOS (или непосредственно с другого тома, при соблюдении некоторых ограничений ОС) для создания DBR после создания разделов с помощью команды FDISK.
Сектор, в котором находится DBR, становится логическим сектором 1 этого конкретного раздела для DOS. Номер сектора, используемый DOS, начинается с физического сектора, на котором находится DBR.
Первый логический сектор каждого раздела DOS будет содержать загрузочную запись DOS (DBR) или загрузочный сектор DOS. Задача DBR — загрузить операционную систему с жесткого диска в оперативную память компьютера и передать управление системой загруженной программе.
Для этого DBR содержит небольшую программу, которая выполняется исполняемой программой основной загрузочной записи (MBR). Все разделы DOS содержат программный код для загрузки машины, т. е. для загрузки операционной системы, но только этот раздел получает управление с помощью основной загрузочной записи, которая указана как активный раздел в записи таблицы разделов.
Программа загрузки в DBR ищет два программных файла IBMBIO.COM или IO.SYS и IBMDOS.COM или MSDOS.SYS в корневом каталоге раздела. IBMBIO.COM и IBMDOS.COM — это два скрытых системных программных файла в системах PC-DOS или оригинальных системах IBM. Принимая во внимание, что IO.SYS и MSDOS.SYS — это два скрытых системных программных файла в операционной системе MS-DOS, поставляемой с IBM-совместимыми системами.
После этого программа IO.SYS (или IBMBIO.COM) загружает программу MSDOS.SYS (или IBMDOS.COM) и программу COMMAND.COM. Этот полный процесс называется «загрузкой» компьютера. Если эти системные файлы недоступны в каталоге, эта программа MBR отображает сообщения об ошибках, например,
“Недопустимый системный диск или ошибка дискового ввода-вывода,
Замените диск, а затем нажмите любую клавишу…”
На экране и ждет, пока пользователь поместит загрузочный диск с вышеуказанными программами в дисковод и нажмет клавишу.
Поскольку на дискете нет разделов, у нее нет MBR или основной таблицы разделов в ее абсолютном секторе 0, вместо этого она содержит DBR в своем самом первом секторе.
В следующей таблице приведена простая схема расположения 3,5-дюймовой дискеты емкостью 1,44 МБ после форматирования в файловой системе FAT12. Он показывает, где находятся загрузочная запись, обе копии FAT, корневой каталог и начало области данных:
Logical Map of 3½ Inches, 1.44 MB floppy disk, Formatted with the FAT12 File System and having 18 Sectors Per Track, 80 Tracks, 2 Sides and 512 bytes per Sector (using 1 Sector per Cluster). |
Absolute Sectors |
Contents |
0 |
Boot Record |
1 – 9 |
FAT 1 |
10 – 18 |
FAT 2 |
19 – 32 |
Root Directory |
33 – 2879 |
Data Area |
Вы также можете создавать подкаталоги в области данных с файлами, которые кажутся содержащимися внутри них. На самом деле подкаталоги — это не что иное, как специальный файл, в котором перечислены все файлы, которые, по-видимому, содержатся в этом каталоге, и все соответствующие данные о каждом файле, такие как расположение начального кластера каждого файла, дата, время, размер файла и т. д.
DBR также содержит важную информацию о геометрии диска. Эта информация находится в первом секторе каждого раздела, например:
- Код перехода + NOP
- Имя OEM и версия
- Байт на сектор
- Секторов на кластер
- Зарезервированные секторы
- Количество копий FAT
- Максимальное количество записей корневого каталога (но недоступно для FAT32)
- Количество секторов в разделе меньше 32 МБ (поэтому недоступно для FAT32)
- Описатель носителя (F8h для жестких дисков)
- Секторов на FAT (в старых системах FAT и недоступно для FAT32)
- Секторов на дорожку
- Количество головок
- Количество скрытых секторов в разделе
- Количество секторов в разделе
- Количество секторов на FAT
- Флажки информационного дескриптора FAT
- Версия диска FAT32
- Номер кластера начала корневого каталога
- Номер сектора информации о файловой системе
- Номер резервного загрузочного сектора
- Зарезервировано
- Номер логического диска раздела
- Расширенная подпись (29H)
- Серийный номер раздела
- Имя тома раздела
- Имя FAT
- Исполняемый код
- Исполняемый маркер или магический номер (AAH 55H)
Первые 3 байта DBR содержат инструкцию JMP для пропуска информации и возможности расширения, поскольку MBR загружает этот сектор в память и передает ему выполнение. Обычно эти три байта представляют собой шестнадцатеричные числа в формате вроде E9 XX XX (Hex) или EB XX 90 (Hex).
После начальной инструкции JMP OEM ID представляет собой 8-битное поле, зарезервированное Microsoft для идентификации OEM. OEM ID описывает программу, создавшую загрузочную запись. Часто это "MSWIN4.0" для Windows 95/98/ME, "IBM 20.0" для OS/2 и "MSDOS5.0". > для MS-DOS 4.0 и более поздних версий.
Третий важный компонент загрузочного сектора — это блок параметров BIOS (BPB). Блок параметров диска является очень важной областью данных для DOS. Это помогает DOS найти:
- Байт на сектор
- Секторов на кластер
- Зарезервированные секторы
- Количество FAT
- Количество записей корневого каталога
FAT32 DOS Boot Record Format |
Offset |
Description |
Size |
00H |
Jump Code + NOP |
3 Bytes |
03H |
OEM Name and Version |
8 Bytes |
0BH |
Bytes Per Sector |
2 Bytes |
0DH |
Sectors Per Cluster |
1 Byte |
0EH |
Reserved Sectors |
2 Bytes |
10H |
Number of Copies of FAT |
1 Byte |
11H |
Maximum Root Directory Entries (but Not Available for FAT32) |
2 Bytes |
13H |
Number of Sectors in Partition Smaller than 32MB (Therefore Not Available for FAT32) |
2 Bytes |
15H |
Media Descriptor (F8H for Hard Disks) |
1 Byte |
16H |
Sectors Per FAT (In Older FAT Systems and Not Available for FAT32) |
2 Bytes |
18H |
Sectors Per Track |
2 Bytes |
1AH |
Number of Heads |
2 Bytes |
1CH |
Number of Hidden Sectors in Partition |
4 Bytes |
20H |
Number of Sectors in Partition |
4 Bytes |
24H |
Number of Sectors Per FAT |
4 Bytes |
28H |
Flags (Bits 0-4 Indicate Active FAT Copy) (Bit 7 Indicates whether FAT Mirroring is Enabled or Disabled <Clear is Enabled>) (If FAT Mirroring is Disabled, the FAT Information is only written to the copy indicated by bits 0-4) |
2 Bytes |
2AH |
Version of FAT32 Drive (High Byte = Major Version, Low Byte = Minor Version) |
2 Bytes |
2CH |
Cluster Number of the Start of the Root Directory |
4 Bytes |
30H |
Sector Number of the File System Information Sector (Referenced from the Start of the Partition) |
2 Bytes |
32H |
Sector Number of the Backup Boot Sector (Referenced from the Start of the Partition) |
2 Bytes |
34H |
Reserved |
12 Bytes |
40H |
Logical Drive Number of Partition |
1 Byte |
41H |
Unused (Could be High Byte of Previous Entry) |
1 Byte |
42H |
Extended Signature (29H) |
1 Byte |
43H |
Serial Number or 32 – Bit Binary ID of Partition
(Binary ID of 32 Bits provided by the OS itself) |
4 Bytes |
47H |
Volume Name of Partition |
11 Bytes |
52H |
FAT Name (FAT32 in this case) |
8 Bytes |
5AH |
Executable Code |
420 Bytes |
1FEH |
Executable Marker or Magic Number (AAH 55H) |
2 Bytes |
- Общее количество секторов в логическом томе (небольшое, для размера логического тома меньше или равно 32 МБ)
- Байт дескриптора мультимедиа
- Количество секторов на FA
Эта информация помогает нам найти расположение FAT и некоторых других важных значений. Ввод неверной информации или искажение этих значений делает невозможной загрузку с жесткого диска. Иногда наличие неправильной информации в блоке параметров диска препятствует загрузке как с жесткого диска, так и с флоппи-дисковода.
Количество байтов на сектор почти всегда равно 512. Если это не так, то это должно быть целое число в степени 2 (например, 64, 128 и 256).
Количество секторов в кластере зависит от размера кластера. (См. раздел «Кластеры», приведенный ранее в этой главе). Количество копий FAT почти всегда равно 2.
Количество корневых каталогов: зависит от файловой системы и размера тома. (См. Ограничения файловой системы, приведенные ранее, и описание корневого каталога, приведенное далее).
Общее количество секторов: исключая скрытые сектора. Если в BPB он равен 0, используется поле в информации расширенной загрузочной записи, и наоборот. Обратите внимание, что можно определить, доступна ли расширенная информация (DOS 4.0 и более поздние версии), проверив байт подписи по смещению 26H.
Любые сектора перед загрузочным сектором логического диска DOS считаются «скрытыми» секторами. DOS не интерпретирует скрытые сектора. Обычные флоппи-дисководы имеют 0 скрытых секторов. Разделы жесткого диска будут иметь номер, отражающий их расположение на диске. Обратите внимание, что вся первая головка первого цилиндра обычно зарезервирована для таблицы разделов, хотя фактически используется только первый сектор.
Описатель носителя: используется для указания типа носителя или диска. Нормальные значения: 0 для расширенного раздела DOS и F8H для жесткого диска. Значения байтов дескриптора мультимедиа приведены в следующей таблице.
Media Descriptors |
Type |
Capacity |
Size and type |
F0H |
2.88 MB |
3.5", 2-Sided, 36 Sectors per Track |
F0H |
1.44 MB |
3.5", 2-Sided, 18 Sectors per Track |
F9H |
720 KB |
3.5", 2-Sided, 9 Sectors per Track |
F9H |
1.2 MB |
5.25", 2-Sided, 15 Sectors per Track |
FDH |
360 KB |
5.25", 2-Sided, 9 Sectors per Track |
FFH |
320 KB |
5.25", 2-Sided, 8 Sectors per Track |
FCH |
180 KB |
5.25", 1-Sided, 9 Sectors per Track |
FEH |
160 KB |
5.25", 1-Sided, 8 Sectors per Track |
F8H |
--------- |
Fixed Disk |
Количество секторов FAT: Необходимо рассчитать. Метод расчета размера FAT приведен в описании FAT, приведенном в главе.
DBR файловой системы FAT32 показан на следующем рисунке:
Секторов на дорожку (или секторов на головку): Секторов на головку — это количество секторов, сгруппированных под одной головкой. Точно так же количество головок на цилиндр отражает количество цилиндров на головку. Если этот раздел является разделом CHS, эти значения должны совпадать со значениями, возвращаемыми BIOS. Если они не совпадают, вы должны считать, что диск был неправильно сконфигурирован и что раздел может быть непригоден для использования.
Скрытые секторы. Как мы уже говорили, это количество секторов на физическом диске, предшествующих началу тома перед самим загрузочным сектором. Он используется во время последовательности загрузки для вычисления абсолютного смещения к корневому каталогу и областям данных. Думайте об этом как о количестве секторов между началом этого раздела и самой таблицей разделов.
Это поле должно совпадать с "количеством секторов, предшествующих разделу" в таблице разделов. Обратите внимание, что это не обязательно физический адрес LBA первого сектора, поскольку могут существовать дополнительные разделы.
Если скрытые секторы не такие, как в таблице разделов, вы можете считать загрузочный сектор поврежденным, а раздел непригодным для использования. Также обратите внимание, что в старых версиях DOS старшее слово обычно содержит мусор.
Если вы подозреваете, что загрузочный сектор поврежден, вы можете проверить несколько полей, перечисленных выше, чтобы убедиться, что указанные там значения имеют смысл.
Например, байт на сектор в подавляющем большинстве случаев составляет 512. Вы также можете ожидать увидеть текстовые строки в разделе исполняемого кода загрузочного сектора, соответствующие операционной системе, отформатировавшей диск.
Например, типичные текстовые строки на томах FAT, отформатированных в MS-DOS, включают: "Неверный системный диск.", "Ошибка дискового ввода-вывода", "Замените диск". , а затем нажмите любую клавишу», «Несистемный диск или ошибка диска», «Замените и нажмите любую клавишу, когда будете готовы». и «Ошибка загрузки с диска». Текстовые строки на томах FAT, отформатированных в Windows NT, включают: «ЗАГРУЗКА: не удалось (или не удалось) найти NTLDR», «Ошибка чтения диска при вводе-выводе» и «Пожалуйста, вставьте другой диск». /промежуток>
Но помните, что вы не должны рассматривать этот список как исчерпывающий. Если вы обнаружите другие сообщения в загрузочном секторе, это не обязательно означает наличие проблемы с загрузочным сектором. Различные версии MS-DOS и Windows NT иногда могут иметь немного разные строки сообщений в своих загрузочных секторах.
С другой стороны, если вы не найдете никакого текста или если текст явно не имеет отношения к MS-DOS или Windows NT, вам следует рассмотреть возможность того, что ваш загрузочный сектор мог быть заражен вирусом или что-то еще. могла иметь место другая форма повреждения данных.
Для восстановления из загрузочного сектора, зараженного вирусом, обычно лучше всего использовать коммерческую антивирусную программу. Многие вирусы и трояны делают гораздо больше, чем просто записывают данные в загрузочный сектор, поэтому ручное восстановление загрузочного сектора не рекомендуется, так как это может не полностью устранить вирус или троян, а в некоторых случаях может принести больше вреда, чем пользы. Однако мы собираемся иметь дело с DBR в разделе программирования этой книги.
Если вы подозреваете, что загрузочный сектор был поврежден по какой-либо другой причине, может быть возможно восстановить поврежденный загрузочный сектор без переформатирования диска, вручную изменив поля, описанные выше. Мы попытаемся преодолеть такие проблемы с программированием в методиках программирования восстановления в этой книге.
Таблица размещения файлов (FAT)
За DBR следуют таблицы размещения файлов. Таблица размещения файлов (FAT) была введена в 1977 году для хранения данных на гибких дисках для автономного Microsoft Disk Basic. FAT несколько раз модифицировалась для удовлетворения растущих потребностей. Он был разработан для удовлетворения требований быстрой и гибкой системы управления данными как на съемных, так и на фиксированных носителях.
В 1996 году FAT32 была представлена в Windows 95 OSR2. Как мы уже говорили ранее, Windows 98/ME поддерживает FAT32 с размером жестких дисков. Теперь в этих операционных системах обычно используется файловая система FAT32.
В первой файловой системе DOS FAT (DOS 1.x) использовалась 12-разрядная система FAT, которая до сих пор используется для гибких дисков. В DOS 2.x добавлена поддержка жестких дисков, перенесенных на 16-битные записи FAT из-за больших объемов.
Примерно в 1987 году DOS 4.0 изменила низкоуровневую обработку секторов, чтобы использовать 32-битные параметры, чтобы преодолеть проблему поддержки больших дисков, поскольку мы уже обсуждали ограничения файловых систем.
FAT хранит карту всей поверхности диска, например, какая область свободна, какая область повреждена, какая область занята каким файлом и т. д. Когда необходимо получить доступ к некоторым данным, хранящимся на поверхности диска. , DOS консультируется с FAT, чтобы узнать области поверхности жесткого диска, содержащие данные.
Тип используемой FAT определяется программой FDISK во время создания раздела жесткого диска. Но на самом деле FAT записывается программой FORMAT DOS.
FAT не отслеживает каждый сектор на поверхности диска, вместо этого он управляет областью диска в группе секторов, называемой «кластером» или «единицей размещения» (см. Кластер, обсуждавшийся ранее, в той же главе). .
Кластер — это наименьшая единица пространства на жестком диске, которую DOS выделяет для файла. Он состоит из одного или нескольких секторов в зависимости от размера диска. Размер кластера определяется и фиксируется программой DOS FORMAT во время высокоуровневого форматирования жесткого диска. (См. обсуждение «размера кластеров» выше)
На самом деле FAT — это индекс кластеров всего тома. В FAT есть одна запись для каждого кластера. Первые две записи в FAT содержат информацию о FAT. Третья и последующие записи в FAT назначаются кластерам дискового пространства, начиная с первого кластера, доступного для использования файлами
Поскольку FAT является очень важным элементом, DOS хранит две копии FAT: первичную FAT или FAT1 и вторичную FAT или FAT2 (обычно существует две копии, однако многие новые операционные системы создают более двух копий FAT).
Каждая FAT занимает непрерывные сектора на диске, при этом 2-я FAT сразу после 1-й FAT не заставляет DOS использовать 2-ю FAT для устранения проблемы, вместо этого, когда 1-я FAT обновляется, DOS копирует ее во 2-ю FAT, повреждая 2-ю FAT как ну, в процессе.
Это обновление выполняется каждый раз, когда DOS обнаруживает, что первая и вторая FAT не совпадают. Таким образом, в случае любого повреждения 1-й FAT следует немедленно выполнить ремонт, используя какое-либо программное обеспечение для редактирования дисков и сравнив 1-ю FAT со 2-й FAT. Это нужно сделать до того, как DOS скопирует поврежденную FAT во вторую FAT.
С введением FAT32 и записи FAT, и нумерация секторов стали 32-битными. Это означает, что теперь имеется 4 294 967 296 различных 32-битных значений, умноженных на 512 байтов на сектор, что дает 2 терабайта (2 199 023 255 552 байта) как максимально возможный размер диска в FAT32.
Размер записи каталога для каждого файла в FAT 32 составляет 4 байта, чтобы содержать значение начального кластера файла, а не 2 байта, необходимых в FAT16. Большее значение соответствует большему числу возможных кластеров.
Традиционно каждая запись каталога представляет собой 32-байтовую запись, и это остается прежним. В середине записи каталога есть 10 байтов (байты с 12 по 21), которые Microsoft зарезервировала для собственного будущего использования. Два из этих байтов теперь используются для размещения дополнительных байтов, необходимых для указания начального кластера в FAT32.
Как мы уже говорили, существуют 12-, 16- и 32-разрядные версии FAT. В то время как 32-разрядная FAT обеспечивает гораздо более эффективное хранение, которое может быть на 30% эффективнее и использовать большие жесткие диски.
Когда файловая система операционной системы вызывается программой для поиска содержимого файла, первое значение кластера в записи каталога для этого файла считывается и используется для поиска цепочки FAT. Цепочка FAT — это список кластеров, содержащих данные, принадлежащие файлу.
FAT32 Drive Layout |
Offset |
Description |
Start of Partition |
Boot Sector |
Start of Partition + Number of Reserved Sectors |
FAT Tables |
Start of Partition + Number of Reserved Sector + (Number of Sectors Per FAT * 2)
[Assuming that FAT Mirroring is Enabled, this is almost always true] |
Root Directory |
Start of Partition + Number of Reserved Sectors + (Number of Sectors Per FAT * 2) + Number of Sectors in root directory |
Data Area |
Записи FAT могут содержать значения, указывающие:
- Следующий кластер в цепочке FAT для данного файла
- Свободные кластеры, то есть кластеры, которые не используются ни одним файлом.
- Информация о поврежденных секторах, т. е. о кластере, содержащем один или несколько физически поврежденных секторов, которые не следует использовать.
- Последний кластер файла
Entries of FAT Table |
Number (Hex.) |
Description |
0 |
Free cluster |
???? |
Cluster in use, next cluster in chain |
FF0-FF6 / FFF0-FFF6 |
Cluster is reserved |
FF7 /FFF7 |
Cluster contains bad sectors |
FF8-FFF / FFF8-FFFF |
End of file |
Каждая запись FAT представляет собой адрес кластера и содержит указатель на следующий адрес кластера (запись FAT) для файла. Последняя запись FAT для файла содержит конечное значение кластера вместо указателя. Первые две записи в FAT содержат информацию о FAT. Эти байты FAT содержат байт дескриптора носителя. Этот байт можно использовать для определения типа дискового носителя, которому принадлежит эта запись FAT.
Третья и последующие записи в FAT назначаются кластерам дискового пространства, начиная с первого кластера, доступного для использования файлами. Запись FAT может иметь любое из значений, указанных в приведенной выше таблице, в зависимости от информации, которую она хочет передать.
000H в 12-битной FAT или 0000H в 16-битной FAT указывает, что кластер, соответствующий этому местоположению FAT, не распределен или пуст. Любое значение от FF8H до FFFH в 12-битной FAT или от FFF8H до FFFFH в 16-битной FAT указывает, что этот кластер является последним кластером в цепочке кластеров файла.
Значение от FF0H до FF7H в 12 – бит FAT указывает на зарезервированные кластеры. FF7H в 12-битной FAT или FFF7H в 16-битной FAT указывает, что кластер, соответствующий расположению FAT, является плохим кластером, т. е. в основном это кластер, содержащий поврежденные сектора. Этот кластер не используется для хранения данных.
Любое другое значение в таблице FAT является указателем на следующий кластер в цепочке размещения файлов.
Как Windows определяет неправильное выполнение — завершение работы
Это очень распространенная вещь, и я надеюсь, что вы много раз замечали это при использовании Windows, что если на вашем компьютере происходит какое-либо неправильное завершение работы по любой причине, такой как сбой питания, повреждение программного обеспечения, случайное завершение работы и т. д., когда вы далее перезагрузите компьютер, во время загрузки на экране появится сообщение Неправильное завершение работы, и операционная система просканирует диск на наличие ошибок.
На следующих двух рисунках показаны 256 байт начала 32-битной FAT, однако для обсуждения этого нам нужны только начальные 8 байт.
На самом деле, когда операционная система Windows загружается в память, т. е. Windows запускается, 8-й байт (или смещение 7H) FAT становится 07H или F7H из 0FH или FFH.
Microsoft использует байт 0FH только для тома, содержащего работающую операционную систему, и байт FFH для любого другого тома, к которому она обращается.
После начала загрузки Windows 8-й байт изменяется на 07H или F7H, который будет снова установлен на 0FH или FFH, только если Windows будет правильно закрыта.
Если произошел сбой питания, или переключатель питания компьютера был случайно выключен, или система была перезагружена вручную из-за какой-либо проблемы с программным обеспечением, этот байт останется как 07H или F7H, что информирует операционную систему Windows о следующем когда он загружается, происходит какое-то неправильное завершение работы, а затем Windows использует свою программу сканирования диска (Scandisk) для проверки диска на наличие ошибок.
Корневой каталог
За последней FAT следует корневой каталог. Корневой каталог похож на оглавление для информации, хранящейся на жестком диске. Расположение корневого каталога можно легко установить, сложив значения из загрузочной записи, так как он расположен после файловой таблицы.
Область каталога содержит информацию об имени файла, дате и времени создания файла, атрибуте файла, размере файла и начальном кластере конкретного файла. Каждая запись каталога, описывающая эту информацию о файле, представляет собой 32-байтовую информацию.
Корневой каталог содержит информацию о файлах и каталогах, ответвляющихся от корневого каталога. Все последующие каталоги сами хранятся в виде файлов в том же формате, что и корневой каталог. Раньше корневой каталог имел фиксированный размер и располагался в фиксированной позиции на диске, но теперь он может свободно увеличиваться по мере необходимости, поскольку теперь он рассматривается как файл.
Количество файлов, которые можно хранить в корневом каталоге, зависит от используемого типа FAT. Например, для 3½-дюймовой дискеты емкостью 1,44 МБ с 12-битной файловой системой FAT количество записей ограничено 224. Если кто-то попытается сохранить 225-й файл, DOS отобразит «Ошибка создания файла». При использовании 16-битной FAT в корневом каталоге может быть всего 512 записей. Каждый основной каталог на гибком или жестком диске также действует как запись корневого каталога.
В следующей таблице перечислены ограничения корневых записей для различных носителей и FAT:
Media and File System Description |
Maximum Root Directory Entries |
Single-sided 5¼ Inch 180K FDD |
64 |
Double-sided 5¼ Inch 320K FDD |
64 |
Double-sided 5¼ Inch 360K FDD |
112 |
Double-sided 3½ Inch 720K FDD |
112 |
Double-sided 5¼ Inch 1.2-megabyte FDD |
224 |
Double-sided 3½ Inch 1.44-megabyte FDD |
224 |
Double-sided 3½ Inch 1.68-megabyte DMF format disks (This is why Microsoft created CAB Files!) |
16 |
Double-sided 3½ Inch 2.88-megabyte FDD |
240 |
Hard Drives (FAT12 & FAT16) |
512 |
Hard Drives with FAT 32 (As it treats the route directory as a file) |
65,536 |
Это не означает, что с 16-битной FAT можно хранить только 512 файлов на жестком диске. Можно использовать подкаталоги для хранения любого количества файлов, ограниченного только размером диска.
Помните, что метка тома для гибкого диска обычно хранится в загрузочном секторе, но метка тома для жесткого диска хранится как запись корневого каталога, а пространство, зарезервированное в загрузочном секторе, остается пустым с пробелами. Команда DOS DIR возвращает тот, который находится в каталоге, если он присутствует, или тот, который находится в загрузочном секторе, если его нет.
Записи каталога содержат запись в цепочке кластеров и имя файла. Поэтому самые важные записи каталога относятся к корневому каталогу, поскольку он содержит кластерные индексы, указывающие на все подкаталоги.
Все каталоги содержат две записи: "." для текущего каталога (этого подкаталога) и «..» для родительского каталога (родительского каталога этого подкаталога). Мы можем легко отслеживать эти записи, поскольку они всегда будут располагаться в начале кластера, если кластер содержит каталог.
В следующей таблице показан формат записи каталога в корневом каталоге. В приведенной ниже таблице показано, как 32 байта записи каталога файла в корневом каталоге нарезаются для хранения различной информации о нем:
Offset |
Size |
Description |
00H |
8 Bytes |
Filename
(Also see the next table for the special meaning of first character of file name) |
08H |
3 Bytes |
Extension |
0BH |
1 Byte |
File attributes(See The Table Of File Attributes) |
0CH |
10 Bytes |
Reserved |
16H |
2 Bytes |
Time Created or Last Updated (See Date–Time Format Table) |
18H |
2 Bytes |
Date Created or Last Updated (See Date–Time Format Table) |
1AH |
2 Bytes |
Starting or First cluster of file
(The value 0000H is used in Parent Directory ('..') entries to indicate that the Parent Directory is the Root Directory) |
1CH |
4 Bytes |
File size in Bytes. |
Имя файла содержит имя в верхнем регистре, и если размер имени файла меньше 8 символов, пробелы заполняются символами пробела ASCII Number 32. Поле расширения содержит расширение файла в верхнем регистре.
Если имя файла длиннее 8 символов, Windows создает короткое имя файла из длинного, усекая его до шести символов верхнего регистра и добавляя "~1" в конец базового имени файла.
Если уже есть другое имя файла с такими же первыми шестью символами, число увеличивается. Расширение остается прежним, а любой символ, запрещенный в более ранних версиях Windows и DOS, заменяется символом подчеркивания.
Длинные имена файлов хранятся в специально отформатированных 32-байтовых длинных именах файлов (LFN) записей каталога, помеченных байтами атрибутов, установленными на 0FH. Для данного файла или подкаталога группа из одной или нескольких записей каталога с длинными именами файлов непосредственно предшествует одиночной записи каталога 8.3 на диске.
Каждая запись каталога LFN содержит до 13 символов длинного имени файла, и операционная система объединяет столько строк, сколько необходимо, чтобы составить полное длинное имя файла.
По этой причине длинные имена файлов уменьшают максимально возможное количество записей корневого каталога в файловой системе. Как Windows поддерживает длинные имена файлов, мы подробно обсудим позже в этой главе.
Первый байт имени файла также может содержать некоторую важную информацию о файле. Информация, предоставляемая этим байтом, может быть одной из приведенных в следующей таблице:
First Character of File Name |
Value |
Meaning |
00H |
Indicates that this directory entry is unused. |
05H |
Indicates that 1st character of filename is character E5H But actually the file has not been deleted. (See the Meaning of E5H) |
E5H |
The file has been Erased and this directory entry is a deleted file’s directory entry. The data area previously occupied by that file is now free for allocation for another new file. |
2EH |
This is a Sub-directory. The cluster number field of this entry will contain the cluster number of the directory. |
2EH 2EH |
Two 2EH in a directory entry indicate the parent directory entry of a Sub–Directory. The cluster number of this entry will contain the cluster number of the parent directory of this directory. The cluster number will be zero 0000H if the parent directory is root directory. |
Атрибуты представляют собой 8-битное двоично-кодированное поле. В следующей таблице указано состояние флага атрибутов для данного файла:
Attribute Bits |
Attribute |
Bit |
Binary |
Hex |
Read Only File Flag |
0 |
.......? |
01H |
Hidden File Flag |
1 |
......?. |
02H |
System File Flag |
2 |
.....?.. |
04H |
Volume Label Flag
(Indicates that the entry is a volume label) |
3 |
....?... |
08H |
Sub–directory
(in same format as directory) |
4 |
...?.... |
10H |
Archive Bit
(File Modified Since Last Backup) |
5 |
..?..... |
20H |
Reserved (Contains 0) |
6 |
.0...... |
- |
Reserved (Contains 0) |
7 |
0....... |
- |
Один файл может иметь несколько атрибутов. Например, один файл может быть как «только для чтения», так и «скрытый файл», или один файл может иметь оба атрибута: «системный файл» и «скрытый файл». (См. приведенный ниже пример для кодирования записей каталога).
Время и дата – специально закодированное поле размером 32 бита (16 бит для времени и 16 бит для даты). Разделение этих кодировок битов для составления времени создания или последнего обновления и даты создания или последнего обновления для файла приведено в следующей таблице:
Запись для времени создания или последнего обновления файла, которая является 16-м и 17-м байтом в записи каталога, имеет формат, указанный в таблице выше. Кодировка следующая:
- H – двоичное число часа, которое может принимать значения от 0 до 23.
- M – это двоичное число минут, которое может принимать значения от 0 до 59.
- S – двоичное число секунд с шагом 2 секунды.
- Запись для данных создания или последнего обновления файла, которая является 18-м и
- 19-м байтом в записи каталога, имеет следующий формат:
- Y — двоичное число от 0 до 127 или от 1980 до 2107 года.
- M — двоичное число месяца, которое может принимать значения от 1 до 12.
- D — это двоичное число для даты, которое может принимать значения от 1 до 31.
Эта запись каталога связана с записью FAT на основе первого значения кластера. Как только DOS получает начальное значение кластера любого файла из каталога, DOS может найти полный файл с помощью FAT. Входной кластер в цепочке — это первый кластер, из которого состоит файл. Если флаг каталога атрибутов установлен, это поле указывает на новую запись каталога.
Запись размера файла составляет 4 байта. Таким образом, мы можем рассчитать, как FAT32 поддерживает максимальный размер файла до 4 294 967 295 байт, что составляет около 4 ГБ. 4 байта имеют 32 бита, и максимально возможный размер файла, составленного из любого 32-битного двоичного файла, может быть,
= 11111111 11111111 11111111 11111111 (B) Bytes
= 4,294,967,295 (D) Bytes
~ 4 GiB
Таким образом, FAT32 поддерживает максимальный размер файла до 4 ГБ.
Размер файла и начальный кластер файла могут быть ценным ресурсом для восстановления данных при восстановлении поврежденных файлов, поскольку мы можем рассчитать, из скольких кластеров должен состоять файл.
На приведенном выше рисунке показана запись корневого каталога для семи разных файлов. Кодировка этих записей приведена в следующей таблице:
Длинное имя файла (LFN)
Как мы уже обсуждали ранее в разделе Обсуждение корневого каталога, раньше корневой каталог имел фиксированный размер и располагался в фиксированной позиции на диске, но теперь он может свободно увеличиваться по мере необходимости, поскольку теперь он рассматривается как файл.
Это очень важно для длинных имен файлов, поскольку каждое длинное имя файла использует несколько записей каталога. Добавить поддержку длинных имен файлов в операционную систему, использующую имена файлов 8.3, не так просто, как расширить записи каталога, чтобы они содержали более 11 символов.
Если эта новая операционная система будет возвращать 255-символьные имена файлов, многие старые приложения, которые ожидают получить не более 11 символов, будут аварийно завершать работу, потому что программе приходится выделять память для хранения имен файлов, которые она считывает, а если она выделяет 16 байт для имени файла, и операционная система копирует (скажем) 32 символа в это пространство, затем другие данные перезаписываются. Надежный способ сломать приложение — скопировать случайные данные в его пространство данных.
Чтобы решить эту проблему, в Windows 95 было найдено умное решение проблемы поддержки длинных имен файлов при сохранении совместимости с предыдущими версиями приложений DOS и Windows.
Когда большинство приложений (за исключением низкоуровневых дисковых утилит, таких как Norton Disk Doctor) запрашивают у системы имена файлов и подкаталогов, они делают это не путем чтения записей каталога непосредственно с диска, а с помощью функций перечисления, встроенных в операционная система.
Как мы знаем, запись каталога помечается комбинацией атрибутов «только для чтения», «скрытый», «системный» и «метка тома». Скорее всего, если байт атрибута записи каталога содержит значение 0FH, функции перечисления, встроенные во все существующие версии DOS и все версии Windows до Windows 95, будут пропускать эту запись каталога, как если бы ее там не было.
Затем было принято решение хранить два имени для каждого файла и подкаталога: короткое имя, которое видно всем приложениям, и длинное имя, которое видно только приложениям Windows 95 (и более поздних версий) и приложениям, которые были переписаны для добавления поддержки. для длинных имен файлов. Короткие имена файлов хранятся в формате 8.3 в обычных 32-байтовых записях каталога.
Мы уже обсуждали, что Windows создает короткое имя файла из длинного, усекая его до шести символов верхнего регистра и добавляя «~1» в конец базового имени файла.
Если уже есть другое имя файла с такими же первыми шестью символами, номер увеличивается. Расширение остается прежним, а любой символ, запрещенный в более ранних версиях Windows и DOS, заменяется символом подчеркивания.
Длинные имена файлов хранятся в специально отформатированных 32-байтовых длинных именах файлов (LFN) записей каталога, помеченных байтами атрибутов, установленными на 0FH. Для данного файла или подкаталога группа из одной или нескольких записей каталога с длинным именем файла непосредственно предшествует одиночной записи каталога 8.3 на диске.
Каждая запись каталога с длинным именем файла содержит до 13 символов длинного имени файла, и операционная система объединяет столько строк, сколько необходимо, чтобы составить полное длинное имя файла.
Для записи каталога с длинным именем файла имена файлов хранятся в формате Unicode, для которого требуется 2 байта на символ, а не 1 байт в ASCII. Символы имени файла распределены по трем отдельным полям:
- Первые 10 байтов (пять символов) в длину,
- Вторые 12 байт (шесть символов),
- Третьи 4 байта (два символа).
- Пять младших битов первого байта записи каталога содержат порядковый номер, определяющий положение записи каталога относительно других.
- Записи каталога с длинными именами файлов, связанные с одним и тем же файлом.
Если для длинного имени файла требуются три записи каталога LFN, порядковый номер первой будет равен 1, второй — 2, порядковый номер третьего — 3, а бит 6 первого байта третьего запись устанавливается на 1, чтобы указать, что это последняя запись в последовательности.
Поле атрибута появляется в том же месте в записях каталога LFN, что и в записях каталога 8.3, потому что файловая система не знает, с каким типом записи каталога она имеет дело, пока не проверит байт атрибута. Поле номера начального кластера также появляется в том же месте, но в записях каталога LFN его значение всегда равно 0. Поле индикатора типа также содержит 0 в каждом длинном имени файла.
Одна из проблем с длинными именами файлов заключается в том, что они занимают больше места на диске, чем короткие. Это не имеет большого значения, когда длинные имена хранятся в подкаталогах, потому что, пока доступно место на диске, подкаталоги могут увеличиваться для размещения добавленных записей каталога, но максимальное количество записей каталога, доступных в корневом каталоге, фиксировано, а длинные имена файлов тратятся впустую. пространство в корневом каталоге, размер которого ограничен.
Теперь, например, если корневой каталог жесткого диска содержит не более 512 записей каталога, поскольку для 128-символьного имени требуется 11 записей, 10 для длинного имени и 1 для короткого имени, вы можете создать только 46 файлы и подкаталоги в корневом каталоге, если каждому из них присвоено 128-символьное имя.
Проблема исчезает для FAT32 еще и потому, что корневой каталог в FAT32 также может увеличиваться, так как в системе FAT32 корневой каталог рассматривается как файл, размер которого может увеличиваться.
Область данных (или область файлов)
За корневым каталогом начинается область данных (или область файлов). Скорее можно сказать, что оставшаяся часть тома после корневого каталога является областью данных.
Область данных содержит фактические данные, хранящиеся на поверхности диска. DOS использует номер кластера 2 для первого сектора области данных, поэтому при выполнении различных вычислений следует помнить, что номер кластера должен начинаться с 2.
Когда мы форматируем жесткий диск, команда FORMAT DOS не уничтожает и не перезаписывает данные в области данных. Команда FORMAT удаляет только запись каталога и записи FAT и не затрагивает фактическую область данных.
Это делает возможным восстановление случайно отформатированного жесткого диска, что невозможно во всех случаях со случайно отформатированной дискетой. Как и при полном формате Windows, область данных дискеты заполняется символами F6H, и вся информация перезаписывается.
DOS использует 16-битный/32-битный указатель, называемый указателем «Последний использованный кластер» (LCU), для хранения номера последнего использованного кластера. Первоначально значение этого указателя равно нулю, когда некоторая информация записывается в определенный кластер, этот номер кластера сохраняется в указателе LCU.
После этого каждый раз, когда необходимо записать новую информацию, DOS ищет свободный кластер, начиная с номера LCU. Это заставляет новые данные, записанные на диск, оставаться непрерывными, поскольку данные записываются в новую, неиспользуемую область.
Теперь понимание данных в случае случайного удаления будет намного проще, так как файл находится в одной непрерывной области на диске. После достижения конца диска или сброса системы значение указателя LCU сбрасывается до нуля.
Но проблема не в этом. Практически невозможно, чтобы вы только создавали новые файлы на своем диске и никогда не удаляли или не изменяли какой-либо файл из ранее сохраненных. Использование только LCU имеет проблемы, если вы создаете и удаляете много файлов, поскольку это заставит новые данные перемещаться все дальше и дальше во внутренние дорожки жесткого диска.
Поэтому, если какой-либо файл, хранившийся на диске, перемещается или удаляется, кластеры в области данных, которые были заняты этим файлом, теперь устанавливаются как нераспределенные кластеры, доступные в области данных и готовые к записи новых данных. на них. При этом операционной системе не нужно перемещать все данные на внутренние дорожки диска.
Но большое количество операций удаления и создания файлов приводит к фрагментации данных на диске, что вызывает фрагментацию данных.
Фрагментированные и дефрагментированные данные
Мы уже обсуждали, что каждый файл на диске хранится в виде связанного списка кластеров, по которым данные, содержащиеся в файле, могут располагаться в любом месте на диске. Если у вас есть файл размером 10 МБ, хранящийся на диске с использованием кластеров по 4096 байт, он использует 2560 кластеров. Эти кластеры могут быть на разных дорожках, разных пластинах диска, фактически они могут быть где угодно.
Хотя файл может быть разбросан по всему диску, это далеко не предпочтительная ситуация. Причина в нежелательной медленной работе. Жесткие диски являются относительно медленными устройствами, в основном потому, что в них есть механические части. Каждый раз, когда жесткому диску приходится перемещать головки на другую дорожку, требуется время, эквивалентное тысячам и тысячам циклов процессора.
Поэтому мы хотим свести к минимуму степень распространения каждого файла по диску. В идеальном случае каждый файл был бы полностью непрерывным. Это означает, что каждый используемый кластер будет располагаться на диске один за другим. Это позволит при необходимости прочитать весь файл без большого механического движения жесткого диска.
На самом деле файловая система начинается со всех или большей части ее файлов, расположенных непрерывно, но в результате создания и удаления файлов с течением времени данные на диске становятся все более и более фрагментированными.
Давайте рассмотрим простой пример, чтобы понять фрагментацию. В таблице ниже показано использование 12 кластеров. Изначально таблица пуста:
cluster 1 |
cluster 2 |
cluster 3 |
cluster 4 |
cluster 5 |
cluster 6 |
cluster 7 |
cluster 8 |
cluster 9 |
cluster 10 |
cluster 11 |
cluster 12 |
Теперь предположим, что мы создали на этом диске четыре файла: File A, B, C и D. Файл A занимает 1 кластер, файл B — 4, файл C — 2, а файл D — 3. Мы сохраняем их в свободном доступном пространстве, и они начинаются непрерывно, как показано на следующем рисунке:
Через некоторое время давайте удалим файл C и тем самым оба кластера, которые были заняты файлом C, теперь свободны или нераспределены. В результате диск выглядит следующим образом:
Теперь мы создаем новый файл E, которому нужны 3 кластера. Но так как на диске не осталось непрерывных блоков длиной 3 кластера, то мы должны разбить E на два фрагмента, используя часть пространства, ранее занятого C. Теперь наш диск будет выглядеть так, как показано на следующем рисунке :
Через некоторое время давайте удалим файлы A и E и создадим файл F, который занимает 5 кластеров. Теперь диск выглядит так, как показано на рисунке ниже:
Теперь мы видим, что файл F разбит на три фрагмента. Этот тип данных на диске называется фрагментированными данными. Пример, приведенный выше, является очень упрощенным примером фрагментации, потому что на реальных дисках тысячи файлов и тысячи кластеров, поэтому проблема здесь усугубляется. Это дает вам общее представление о том, что происходит.
Что делает программа дефрагментации (например, программа DEFRAG от Microsoft, SpeedDisk от Norton), так это переупорядочивает диск, чтобы вернуть файлы в непрерывную форму. После запуска утилиты дефрагментации диска дефрагментированные данные на диске, о котором мы говорили, будут выглядеть так, как показано на рисунке ниже:
Фрагментированные и дефрагментированные данные во многих случаях имеют большое значение при восстановлении данных.
Предположим, что у нас есть два поврежденных диска для восстановления данных, один из которых содержит фрагментированные данные, а один недавно был дефрагментирован. И вы должны выполнить восстановление данных, собрав данные с поверхности обоих дисков, поскольку информация FAT и Root файлов повреждена. В таких случаях процент восстановления будет пропорционален дефрагментации данных на диске.
Очевидно, что восстановление данных с дефрагментированного диска будет простым, и процент восстановления данных также будет высоким, но, с другой стороны, восстановление данных с фрагментированного диска будет сложным и займет много времени, а также процент восстановленные данные также будут неутешительными.
Выявление причины повреждения данных
Есть несколько конкретных шагов, которые, если выполнять их в определенной последовательности, могут помочь нам найти область коррупции. Эти шаги были описаны с процедурой восстановления следующим образом:
Загрузите систему с загрузочной дискеты
Загрузите систему с загрузочной дискеты или компакт-диска с используемой операционной системой. Попробуйте прочитать логические диски C: или D: или что-то еще. Если диск (диски) доступен, просто скопируйте все данные с диска. Теперь вы можете выяснить, почему диск не загружается должным образом, с меньшим стрессом.
Проверьте информацию MBR
Первым и наиболее важным элементом данных на жестком диске является основная загрузочная запись и таблица разделов, которую она содержит. Небольшой инструмент редактирования на диске под названием «TTEDITOR.EXE» находится на диске, прилагаемом к этой книге. Или вы можете использовать любую другую программу для анализа жесткого диска.
Diskedit будет наиболее подходящей программой для анализа диска с целью восстановления данных. Что ж, любая программа, которую вы считаете удобной в использовании, зависит от вас. Попробуйте прочитать MBR и особенно его таблицу разделов.
Как вы видели в описании MBR, обсуждаемом в этой главе, во второй части MBR есть читаемый текст, который отображается как сообщение об ошибке, если с ним что-то не так. Эти текстовые сообщения отображаются примерно так:
«Недопустимая таблица разделов, установка не может быть продолжена».
«Ошибка загрузки операционной системы, установка не может быть продолжена»
Если эти сообщения об ошибках недоступны, это указывает на повреждение MBR. Вместо этого может быть какое-то недопустимое сообщение, например, «Ваша система была взломана…..» или любое другое неожиданное сообщение. Это указывает на то, что с MBR что-то серьезно не так, и, скорее всего, это связано с какой-то ВИРУСНОЙ инфекцией
Теперь проверьте таблицу разделов MBR после начальных 446 байт. Если таблица разделов пуста, вы не увидите никаких сообщений об ошибках во время загрузки. DOS игнорирует диск без разделов. Если в дисководе A: нет загрузочной дискеты, система запросит вставку загрузочной дискеты в дисковод A:.
Важно отметить, что таблица разделов не должна быть пустой на диске, который ранее работал, потому что что-то стерло ее. Если таблица разделов пуста, восстановите MBR из резервной копии.
Если резервное копирование не работает, даже после успешного завершения процесса восстановления, на этом секторе есть физические повреждения. Попробуйте методы программирования восстановления данных, приведенные в следующих главах, чтобы восстановить данные. Если вы совсем не программист, лучше обратитесь в любой хороший центр восстановления данных.
Если у вас нет резервной копии MBR, попробуйте вручную записать таблицу разделов с помощью какого-нибудь инструмента для редактирования диска, например Diskedit, однако в некоторых случаях это очень сложно сделать.
Те пользователи, которые не являются программистами и не имеют резервной копии, могут использовать метод, которым я пользуюсь со времени разработки моего проекта по восстановлению данных, когда учился в колледже.
Что вам нужно сделать, так это просто найти компьютер рядом с вами, который имеет почти такой же размер диска, с таким же количеством разделов и, самое главное, с той же операционной системой, которая была на вашем компьютере.
Однако в большинстве случаев это работает полностью. Но если это не так, по крайней мере, это может помочь вам получить доступ к первому разделу вашего диска. Даже ваша операционная система тоже загрузится нормально, если она была установлена в первый раздел и если остальная информация не повреждена.
Если MBR в порядке, проверьте DBR
Если с MBR все в порядке, проверьте DBR (загрузочную запись DOS). Как мы уже говорили, это первый сектор в разделе DOS и содержит небольшую программу, которая загружает скрытые файлы и загружает операционную систему.
DBR также содержит много важной информации о FAT, кластерах корневого каталога, размере раздела и т. д. Используйте утилиту, подобную Diskedit, для чтения информации DBR, если DBR поврежден или содержит недопустимую информацию, восстановите DBR из резервной копии. .
Все профессиональные программы для восстановления данных способны перезаписывать DBR. О том, как переписать DBR раздела с помощью программирования, мы поговорим в следующих главах книги.
Вы также можете переписать DBR раздела с помощью Diskedit, предоставив соответствующую информацию.
Существует также очень простой способ узнать область коррупции. Сообщения об ошибках, отображаемые на экране, имеют определенную причину появления. Описание некоторых важных сообщений об ошибках выглядит следующим образом:
Message |
Description |
“Sector not found reading drive” |
This message can appear during any DOS operation. Generally, it is caused either by fading or the loss of a sector ID. |
“Data error reading drive” |
This message can appear during any DOS operation. It is caused by failing the data check – CRC (Cyclic Redundancy Check) or ECC (Error Correction Code). This “Data check” refers to the mechanism used to check whether the data read from the disk is reliable. |
“ 0 hard disk(s) found" |
It is displayed if the hard disk is not detected by the BIOS of the computer. Check the power and data cable connections of the hard disk. If connections are all right, the problem may be due to some hardware error of hard disk. |
“Hard Drive failure, press F1 to continue” |
Same as above |
“Invalid drive specification” |
It is displayed in the condition when either the system does not recognize the hardware, or there is no partition information, or the device driver of the drive is missing. |
“Invalid configuration press F1 to continue” |
If the hard disk is available, Either the battery in the motherboard is dead, and the system has lost its configuration SETUP information or the disk is not responding. |
“Invalid partition table” |
This is the MBR error message. It is displayed when the partition table of the MBR does not have the valid partition information. |
“Error loading operating system” |
This is the MBR error message. It is displayed due to any type of MBR information corruption. |
“Missing operating system” |
Same as above. |
“Disk boot failure” |
It is the DBR error message. Normally, The Hard drive should be accessible if you boot from the floppy. Though it is not bootable but that should not affect the access to the data of the drive. |
“non system disk or disk error” |
Same as above. |
“Bad or missing command interpreter” |
This message is displayed due to Bad or Missing Command Interpreter. For example if the operating do not find the command.com in current path or the command.com is corrupted. |
Страница изменена: 15/03/2022