Система розділів дискової підсистеми h2>
Система
розділів - одна з найбільш важливих елементів у дискової підсистеми. Її стандарт
не залежить від файлових і операційних систем. Структура розділів виглядає дуже
схоже на структуру каталогу DOS. p>
кореневого
каталогу (ROOT) в структурі розділів відповідає першій (кореневої) сектор
диска. Це сектор завантажувальної області (BA - boot area). Коли комп'ютер
завантажується, BIOS завантажує цей сектор на адресу 7C00: 0000, і передає туди
управління. На початку цього сектора записаний код початкового завантаження. Цей код
переглядає таблицю первинних розділів (PT - Partition Table), визначає
розділ, який є активним (Самозавантажні), потім завантажує його перший
сектор (сектор завантаження) в той же самий адресу (7C00: 0000), і знову передає
туди управління. Після цього подальше керування завантаженням бере на себе
операційна система (ОС). p>
Жорсткий
диск може містити до чотирьох первинних розділів. p>
Таблиця
розділів, розташована так само в самому першому секторі (MBR) жорсткого диска. Вона
описує тип, активність (самозагружаемость) розділів і початковий/кінцевий
номер циліндра розділу. p>
В
активних (Самозавантажні) розділах, перший сектор - завжди так званий
Узагрузочний секторФ, який містить невеликий ОС завантажувач. Теоретично в
ці розділи Ви можете встановити будь-яку операційну систему. p>
Розглянемо
докладніше. Нижче наведена детальна таблиця кореневого сектора диску (циліндр 0,
головка 0, сектор 1). Дуже часто цю область завантаження BA (boot area),
позначають як блок початкового завантаження (Master Boot Record): p>
Зсув p>
Опис p>
0000h-01BDh p>
Код початкового завантаження p>
MBR p>
01BEh-01CDh p>
Описувач 1-го основного розділу p>
Partition p>
Table p>
01CEh-01DDh p>
Описувач 2-го основного розділу p>
01DEh-01EDh p>
Описувач 3-го основного розділу p>
01EEh-01FDh p>
Описувач 4-го основного розділу p>
01FEh-01FFh p>
Сигнатура системного байт (0xAA55) p>
Код початкового завантаження (Boot Code) - виконуваний код, який був
описаний вище. p>
Описувачі розділів мають наступну форму: p>
Зсув p>
Опис p>
0000h p>
Маркер початкового завантаження p>
0001h p>
Головка p>
Початок розміщення p>
0002h p>
Сектор і Циліндр (біти 8-9) p>
0003h p>
Циліндр (біти 0-7) p>
0004h p>
Системне Опис p>
0005h p>
Головка p>
Кінець розміщення p>
0006h p>
Сектор і Циліндр (біти 8-9) p>
0007h p>
Циліндр (біти 0-7) p>
0008h-000Bh p>
Зсув секторів p>
000Ch-000Fh p>
Кількість секторів у роздiлi p>
Маркер
початкового завантаження Ц байт, значення якого може бути або 0, або номер диска
(80h). Якщо 80h, тоді розділ є активним розділом диску (розділом
початкового завантаження), з якого буде здійснюватися завантаження операційної
системи. p>
Наступні
3 байти містять інформацію про початок розміщення розділу (номери головки,
циліндра і сектора). Номери сектора і циліндра зберігаються в двох байтах. Бити 0-7
номера циліндра збережені у другому байті, у той час як біти 8-9 збережені в
старших розрядах першого байта. Значення сектора збережено в бітах 0-5 першу
байти. Бінарну карту байтів можна представити у вигляді таблиці: p>
2-й байт p>
1-й байт p>
F p>
E p>
D p>
C p>
B p>
A p>
9 p>
8 p>
7 p>
6 p>
5 p>
4 p>
3 p>
2 p>
1 p>
0 p>
C p>
C p>
C p>
C p>
C p>
C p>
C p>
C p>
C p>
C p>
S p>
S p>
S p>
S p>
S p>
S p>
7 p>
6 p>
5 p>
4 p>
3 p>
2 p>
1 p>
0 p>
9 p>
8 p>
5 p>
4 p>
3 p>
2 p>
1 p>
0 p>
Далі
розташований системний байт, який є ідентифікує байтом розділу.
Значення 0, для розділів не використовується, у той час як інші значення
залежать від файлової системи. DOS використовує значення 1,4 і 6 відповідно для
FAT12, FAT16 і розділу BigDOS. Значення 5 позначає Розширений розділ,
що пояснюється пізніше. p>
Потім,
йдуть байти з інформацією про розміщення кінцевого сектору розділу (номери
головки, циліндра і сектора). p>
За
ними - значення зміщення сектора. Це - число, яке показує позицію
розділу щодо існуючого сектора. Так, для основних розділів, це --
стартовий сектор розділу. Основні розділи - розділи, які описані в
кореневої структурі поділу. Трохи пізніше ми побачимо, що є Описувачі
розділів також в інших місцях на диску, які називаються логічними
дисками. p>
В
останньому елементі описувача, знаходитися інформація про довжину розділу (у секторах). p>
Коли
диск працює в режимі LBA (логічної адресації блоків), значення CHS (циліндр
Ц головка Ц сектор) для початку і кінця розміщення ігноруються. Відображення
диска виконується з абсолютним номером сектора, а не в термінах CHS
(cylinder-head-sector). Таким чином, відносне значення сектора і довжина
розділу використовуються для ідентифікації обсягу розділу на диску. CHS значення
взагалі неприпустимі для дисків об'ємом більш ніж 8.4GB. p>
В
кореневому секторі виділені адреси для 4 описувачів. Відразу після них, розташована
сигнатура (два байти) AA55h, яка мітить сектор як системний сектор. Це
значення існує в кожному секторі структури розділів (включаючи завантажувальні
сектори) і його відсутність може свідчити про ймовірне пошкодженні
структури розділів. p>
Тепер,
щодо додаткових розділів. Вони описані, як і будь-який інший розділ в
кореневому секторі, але їх обробка операційними системами дещо інша. Вони
вказують на сектор, який містить Описувачі розділів для інших розділів і додаткові
розділи, і так далі. Саме тому ми можемо мати більш ніж 4 розділу на
диск. Розглянемо як приклад невелику таблицю: p>
MBR p>
1st Ext p>
2nd Ext p>
3rd Ext p>
1: P p>
1: L p>
1: L p>
1: L p>
2: P p>
2: E ----- p>
2: E ----- p>
2: - p>
3: E ----- p>
3: - p>
3: - p>
3: - p>
4: P p>
4: - p>
4: - p>
4: - p>
У цьому прикладі, показана карта структури
розділів. MBR позначає блок початкового завантаження (кореневої сектор) та 1st, 2nd і
3rd Ext - позиції 1-го, 2-го і 3-го описувачів додаткових розділів. 'P'
позначає основний (Primary) розділ, 'E' означає додатковий
(Extended) розділ, і 'L' позначає (Logical) логічний диск. Розділ 'E' в
MBR, називається головним (кореневим або основним) додатковим розділом. Це Ц
тому, що він включає в себе всі інші додаткові розділи. Початок
розташування основного додаткового розділу вказує на 1-й додатковий
розділ. Об'єм, який займає основний додатковий розділ, зарезервований
для логічних дисків. Всі додаткові розділи містять інформацію
щодо відповідних їм логічних дисків, аналогічно MBR (описаного
вище), але без частини коду початкового завантаження. Кожен додатковий розділ також
має 4 описувача (але використовуються тільки перші дві). Перший описувач ідентифікує
відповідний логічний диск, а другий є описувачем, що вказує на
наступний логічний диск в ланцюжку розділів. Т.ч. структура розділів --
структура списку зв'язків, яка може бути такої довжини, який необхідно.
(Кожен додатковий сектор опису розділу має в кінці сигнатуру 0xAA55,
ідентифікує його як системний сектор). p>
Для
розділів існують деякі загальноприйняті обмеження геометрії. Розділи
повинні знаходитись на початку циліндра, і закінчуватися в кінці циліндра (хоча це
іноді порушується). p>
Початок
має завжди бути - Циліндр: XXXX Головка: 0 (або 1) Сектор: 1 p>
Закінчення
має бути - Циліндр: YYYY Головка: m-1 Сектор n p>
,
де m - число головок фізичного диска, і n - число секторів на доріжку
фізичного диска. p>
При
чому, якщо Ви видаляєте один з середніх логічних дисків (наприклад, 2-ий),
попередній додатковий розділ буде пов'язаний безпосередньо з наступним,
змінюючи параметри зв'язку. Обмеження геометрія поширюються також і на
диски, які працюють з LBA трансляцією. p>
Список літератури h2>
Для
підготовки даної роботи були використані матеріали з сайту http://www.nodevice.ru/
p>