- •Анатомия жесткого диска
- •Магнитные головки
- •Позиционер (head positioner)
- •Все остальное...
- •Служебная информация
- •От запуска до остановки
- •Пользовательская информация
- •Управляющая электроника
- •В заключение
- •Разделы жесткого диска
- •Общее описание файловых систем Введение
- •Ufs (Unix File System)
- •NetWare
- •Заключение
- •Файловая система fat 32
- •Главная загрузочная запись (mbr)
- •Dos32 (0в).
- •Dos32x (0с). Определяет основной раздел
- •Загрузочный сектор (boot)
- •Изменения в загрузочном секторе Число зарезервированных секторов
- •Новый блок параметров bios
- •Поле корневого каталога.
- •32-Разрядная fat-таблица
- •Каталог в fat32
- •Зеркализация fat
- •Корневой каталог
- •Поддержка длинных имен файлов
- •Размещение длинных имен в каталожной записи
- •Файловая система ntfs Физическая структура ntfs
- •Структура раздела - общий взгляд
- •Mft и его структура
- •Метафайлы
- •Файлы и потоки
- •Каталоги
- •Журналирование
- •Безопасность
- •Hard links
- •Symbolic links (nt5)
- •Шифрование (nt5)
- •Особенности дефрагментации ntfs
- •К истокам проблемы...
- •Средства решения?
- •Что выбрать?
- •Журналирование ntfs
- •Журналируемые операции
- •Отложенная запись и контрольные точки журналирования
- •Проблемы отложенного журналирования: концепция дублирования информации
- •Допущения, обеспечивающие надежность
- •Программный raid
- •Допущения, обеспечивающие надежность
- •Стратегия восстановления томов ntfs
- •Самое полное описание ntfs
- •Сравнение fat и ntfs
- •Кратко о файловой системе fat
- •Различные версии fat
- •Стандарт 8.3
- •Ограничения файловой системы fat
- •Недостатки fat
- •Файловая система ntfs
- •Средства разграничения доступа
- •Шифрование файлов
- •Программный дисковый массив raid
- •Наборы Volume Set
- •Упаковка файлов
- •Многопоточные файлы
- •Ограничения ntfs
- •Сравнение ntfs и fat по скорости доступа к файлам
- •Так что же выбрать - fat или ntfs?
- •Поиск данных файла
- •Поиск свободного места
- •Работа с каталогами и файлами
- •Практика
- •Объем оперативной памяти (кэширование)
- •Быстродействие накопителя
- •Размер кластера
- •Другие соображения
- •Fat - плюсы:
- •Fat - минусы:
- •Ntfs - плюсы:
- •Ntfs - минусы:
- •Raid-массивы
- •Если утерян пароль администратора win nt (win2000)
- •Просто переписать данные
- •Если утерян пароль администратора Windows nt
- •Наконец, самое простое
- •Программы для восстановления информации
- •Dos-программы
- •Win-программы
Управляющая электроника
Вся механическая часть жесткого диска "запечатана" в с гермоблоке. Часть электроники привода также находится в гермоблоке. Почему? Без этого никак нельзя: сигнал, снимаемый с магнитных головок очень слабый, и если проводники будут слишком длинными, он будет серьезно искажен. Прочитанный сигнал необходимо сразу же усилить - тогда проблема транспортировки исчезнет. С этой функцией успешно справляется предусилитель, расположенный в гермоблоке. Но здесь мы сталкиваемся с еще одним довольно уязвимым местом винчестера: от предусилителя к позиционеру идет ленточный кабель или набор обычных одножильных проводов, а они довольно часто рвутся. Устранение подобной неисправности, увы, обходится в копеечку. Остальная электроника винчестера менее уязвима и находится на отдельной плате за пределами гермоблока. По своей структурой она очень напоминает... отдельный компьютер! Действительно, среди основных компонент значатся: центральный процессор, ОЗУ (буфер диска), ПЗУ с программой управления (иногда часть ее записывают в служебную область самого диска), а также DSP (Digital Signal Processor), служащий для обработки считанных сигналов и подготовки записываемых. На печатных платах многих жестких дисков встречается технологический интерфейсный разъем, с помощью которого их подключают к тестовому оборудованию. В ПЗУ находится специальная программа, позволяющая вести диалог, переназначать дефектные участки, производить ту же первичную разметку и пр. Вся эта сложная электроника обеспечивает управление приводами головок и дисков. В современных моделях, изготавливаемых в рамках программы Energy Star, обязательно есть устройство для отключения винчестера при отсутствии запросов к нему и других функций энергосбережения.
В заключение
Необходимо упомянуть о наиболее часто встречающихся размерах современных винчестеров. Самый распространенный формфактор ширины диска, конечно же, 3.5 дюйма, но можно встретить 1.8 или 5.25 дюймовые модели. Есть несколько категорий накопителей, различающихся по высоте: низкопрофильные (менее одного дюйма), половинной высоты (1.63 дюйма) и полной (3.25 дюйма). Хочется обратить Ваше внимание и на чрезвычайную чувствительность жестких дисков к различного рода встряскам, толчкам и ударам. Поскольку оси позиционера и шпинделя укрепляют на корпусе самого винчестера, а иногда - дополнительно - и на гермоблоке, надо быть очень осторожным и не делать лишних усилий при завинчивании крепежных винтов. Это может привести к перекосу осей и, как следствие, неправильному позиционированию магнитных головок. А уж такую поломку устранить или очень сложно или вообще невозможно! Не стоит также нагревать приводы (некоторые пользователи, надеясь самостоятельно починить диск, часами нагревали его на солнце) - высокая температуры пагубно влияет на магнитную поверхность. Стоит ли напоминать о недопустимости ударов приводов - вряд ли паление со стола приведет к увеличению емкости винта :-).
Разделы жесткого диска
Система разделов - одна из наиболее важных элементов в дисковой подсистеме. Ее стандарт не зависит от Файловых и Операционных систем.
Структура разделов выглядит очень похоже на структуру каталога DOS. Корневому каталогу (ROOT) в структуре разделов соответствует первый (корневой) сектор диска. Это сектор загрузочной области (BA - boot area ). Когда компьютер загружается, BIOS загружает этот сектор в адрес 7C00:0000, и передает туда управление. В начале этого сектора записан код начальной загрузки. Этот код просматривает таблицу первичных разделов (PT - Partition Table ), определяет раздел, который является активным (самозагружаемым), затем загружает его первый сектор (загрузочный сектор) в тот же самый адрес (7C00:0000), и вновь передает туда управление. После этого дальнейшее управление загрузкой берет на себя операционная система (ОС).
Жесткий диск может содержать до четырех первичных разделов.
Таблица разделов, расположена так же в самом первом секторе (MBR) жесткого диска. Она описывает тип, активность (самозагружаемость) разделов и начальный / конечный номер цилиндра раздела.
В активных (самозагружаемых) разделах, первый сектор - всегда так называемый загрузочный сектор, который содержит небольшой ОС загрузчик. Теоретически в эти разделы Вы можете установить любую операционную систему.
Рассмотрим подробнее. Ниже приведена детальная таблица корневого сектора диска (цилиндр 0, головка 0, сектор 1). Очень часто эту область загрузки BA (boot area), обозначают как блок начальной загрузки (Master Boot Record):
Смещение |
Описание |
|
0000h-01BDh |
Код начальной загрузки |
MBR |
01BEh-01CDh |
Описатель 1-го основного раздела |
Partition Table |
01CEh-01DDh |
Описатель 2-го основного раздела | |
01DEh-01EDh |
Описатель 3-го основного раздела | |
01EEh-01FDh |
Описатель 4-го основного раздела | |
01FEh-01FFh |
Сигнатура системного байта (0xAA55) |
|
Код начальной загрузки (Boot Code) - исполняемый код, который был описан выше.
Описатели разделов имеют следующую форму:
Смещение |
Описание |
|
0000h |
Маркер начальной загрузки |
|
0001h |
Головка |
Начало размещения |
0002h |
Сектор и Цилиндр (биты 8-9) | |
0003h |
Цилиндр (биты 0-7) | |
0004h |
Системное Описание |
|
0005h |
Головка |
Конец размещения |
0006h |
Сектор и Цилиндр (биты 8-9) | |
0007h |
Цилиндр (биты 0-7) | |
0008h-000Bh |
Смещение секторов |
|
000Ch-000Fh |
Количество секторов в разделе |
|
Маркер начальной загрузки Ц байт, значение которого может быть или 0 или номер диска (80h). Если 80h, тогда раздел является активным разделом диска (разделом начальной загрузки), с которого будет осуществляться загрузка операционной системы.
Следующие 3 байта содержат информацию о начале размещения раздела (номера головки, цилиндра и сектора). Номера сектора и цилиндра хранятся в двух байтах. Биты 0-7 номера цилиндра сохранены во втором байте, в то время как биты 8-9 сохранены в старших разрядах первого байта. Значение сектора сохранено в битах 0-5 первого байта. Бинарную карту байтов можно представить в виде таблицы:
2-й байт |
1-й байт | ||||||||||||||
F |
E |
D |
C |
B |
A |
9 |
8 |
7 |
6 |
5 |
4 |
3 |
2 |
1 |
0 |
C |
C |
C |
C |
C |
C |
C |
C |
C |
C |
S |
S |
S |
S |
S |
S |
7 |
6 |
5 |
4 |
3 |
2 |
1 |
0 |
9 |
8 |
5 |
4 |
3 |
2 |
1 |
0 |
Далее расположен системный байт, который является идентифицирующим байтом раздела. Значение 0, для разделов не используется, в то время как другие значения зависят от файловой системы. DOS использует значения 1,4 и 6 соответственно для FAT12, FAT16 и раздела BigDOS. Значение 5 обозначает Расширенный раздел, которое объясняется позже.
Затем, идут байты с информацией о размещении конечного сектора раздела (номера головки, цилиндра и сектора).
За ними - значение смещения сектора. Это - число, которое показывает позицию раздела относительно существующего сектора. Так, для основных разделов, это - стартовый сектор раздела. Основные разделы - разделы, которые описаны в корневой структуре разделения. Несколько позже мы увидим, что имеются описатели разделов также в других местах на диске, которые называются логическими дисками.
В последнем элементе описателя, находиться информация о длине раздела (в секторах).
Когда диск работает в режиме LBA (логической адресации блоков), значения CHS (цилиндр Ц головка Ц сектор) для начала и конца размещения игнорируются. Отображение диска выполняется с абсолютным номером сектора, а не в терминах CHS (cylinder-head-sector). Таким образом, относительное значение сектора и длина раздела используются для идентификации объема раздела на диске. CHS значения вообще недопустимы для дисков объемом более чем 8.4GB.
В корневом секторе выделены адреса для 4 описателей. Сразу после них, расположена сигнатура (два байта) AA55h, которая метит сектор как системный сектор. Это значение существует в каждом секторе структуры разделов (включая загрузочные секторы) и его отсутствие может свидетельствовать о вероятном повреждении структуры разделов.
Теперь, относительно дополнительных разделов. Они описаны, как и любой другой раздел в корневом секторе, но их обработка Операционными системами несколько иная. Они указывают на сектор, который содержит описатели разделов для других разделов и дополнительные разделы, и так далее. Именно поэтому мы можем иметь более чем 4 раздела на диске. Рассмотрим как пример небольшую таблицу:
MBR |
1st Ext |
2nd Ext |
3rd Ext |
1 : P |
1 : L |
1 : L |
1 : L |
2 : P |
2 : E ----- |
2 : E ----- |
2 : - |
3 : E ----- |
3 : - |
3 : - |
3 : - |
4 : P |
4 : - |
4 : - |
4 : - |
В этом примере, показана карта структуры разделов. MBR обозначает блок начальной загрузки (корневой сектор) и 1st, 2nd и 3rd Ext - позиции 1-го, 2-го и 3-го описателей дополнительных разделов. 'P' обозначает основной (Primary) раздел, 'E' обозначает дополнительный (Extended) раздел, и 'L' обозначает (Logical) логический диск. Раздел 'E' в MBR, называется главным (корневым или основным) дополнительным разделом. Это Ц потому, что он включает в себя все остальные дополнительные разделы. Начало расположения основного дополнительного раздела указывает на 1-й дополнительный раздел. Объем, который занимает основной дополнительный раздел, зарезервирован для логических дисков. Все дополнительные разделы содержат информацию относительно соответствующих им логических дисков, аналогично MBR (описанному выше), но без части кода начальной загрузки. Каждый дополнительный раздел также имеет 4 описателя (но используются только первые два). Первый описатель идентифицирует соответствующий логический диск, а второй является описателем, указывающим на следующий логический диск в цепочке разделов. Т.о. структура разделов - структура списка связей, которая может быть такой длины, какой необходимо. (Каждый дополнительный сектор описания раздела имеет в конце сигнатуру 0xAA55, идентифицирующую его как системный сектор).
Для разделов существуют некоторые общепринятые ограничения геометрии. Разделы должны начинаться в начале цилиндра, и заканчиваться в конце цилиндра (хотя это иногда нарушается).
Начало должно всегда быть - Цилиндр: XXXX Головка: 0 (или 1) Сектор: 1
Окончание должно быть - Цилиндр: YYYY Головка: m-1 Сектор n
, где m - число головок физического диска, и n - число секторов на дорожку физического диска.
При чем, если Вы удаляете один из средних логических дисков (например, 2-ой), предыдущий дополнительный раздел будет связан непосредственно со следующим, изменяя параметры связи. Ограничения геометрия распространяются также и на диски, которые работают с LBA трансляцией.