Логічна структура диску в MS-DOS

За своєю внутрішньою структурою логічний диск повністю відповідає дискеті, тому спочатку розглядаємо логічну структуру жорсткого диску, а потім деякі зауваження відносно гнучких дискет.

Розбиття фізичного диску на декілька логічних корисно з таких точок зору:

1. У випадку пошкодження логічного диску пропадає тільки та інформація, яка знаходилась на цьому логічному диску.

2. Реорганізація та вивантаження диску малого розміру простіше і швидше ніж великого.

3. Можливе розділення дискового простору між окремими користувачами комп’ютеру.

4. При використанні спеціальних утиліт для розділення диску на частини (менеджерів), можлива установка для окремих логічних дисків захисту від запису. На такі диски можна записувати інформацію, що не міняється. Шкода від програм-вірусів буде менша – вірус не зможе записати себе на захищений диск.

5. Один фізичний диск може вміщувати декілька різних ОС, розташованих в різних логічних розділах диску. Під час початкового завантаження можна вказати розділи диску, з якого повинна виконуватись завантаження ОС.

Перший сектор жорсткого диску (сектор 1, доріжка 0, головка 0) вміщує так званий головний завантажувальний запис (Master But Record). Цей запис призначений для завантаження операційної системи.

Сам по собі головний завантажувальний запис – це програма. Вона під час початкового завантаження ОС з жорсткого диску розміщується за фіксованою адресою в оперативній пам’яті (7С00:0000), після чого, їй передається керування. Завантажувальний запис продовжує процес завантаження ОС.

В кінці першого сектору жорсткого диску розташовується таблиця розділів диску (Partition Table). Ця таблиця вміщує чотири елементи, що описує максимально чотири розділи диску. В останніх двох байтах сектора знаходиться число 55АА. Це ознака таблиці розділів.

Для перегляду та зміни вмісту таблиці розділів жорсткого диску використовується утиліта FDISK, або аналогічна утиліта іншої ОС.

Елемент таблиці розділів диску - це структура розміром 16 байтів, що описує частину диску, яка називається розділом. В структурі описані межі розділів в термінах номерів сектора, доріжки та головки, там розміщується інформація про розміри розділу в секторах та про призначення розділу.

Розділи диску можуть бути активними, активний розділ може бути використаний для завантаження ОС. Диск може вміщувати одночасно декілька активних розділів, які можуть належати різним ОС.

 

Формат самого першого сектору жорсткого диску

Зміщення Розмір Вміст
(+0) 1BEh Головний завантажувальний запис – програма, яка завантажується та виконується під час початкового завантаження ОС.
+1BEh 10H Елемент таблиць розділів диску.
+1CEh 10H Елемент таблиць розділів диску.
+1DEh 10H Елемент таблиць розділів диску.
+1EEh 10H Елемент таблиць розділів диску.

 

У першому секторі активного розділу розташований запис завантаження (Boot Record Program), який не треба плутати з головним завантажувальним записом (Master Boot Record). Запис завантаження читається в оперативну пам’ять головним завантажувальним записом, після чого першому передається керування для подальшого завантаження певної (вибраної) операційної системи.

 

 

Таким чином, завантаження ОС з жорсткого диску – двохступеневий процес. Спочатку модулі ініціалізації BIOS читають головний завантажувальний запис в пам’ять за адресою 7С00:0000 і йому передається керування. Цей запис проглядає таблицю розділів і знаходить активний розділ. Якщо активних розділів декілька, на консоль виводиться повідомлення про необхідність вибору активного розділу для продовження завантаження.

Після того, як активний розділ знайдено, головний завантажувальний запис читає самий перший сектор розділу в ОП. Цей сектор вміщує запис завантаження, якому і передається управління.

Запис завантаження активного розділу виконує завантаження тої ОС, що знаходиться в активному розділі. Такий двохступеневий спосіб завантаження ОС необхідний тому, що спосіб завантаження залежить від самої ОС, тому кожна ОС має свій власний завантажувач. Фіксованим є тільки розташування запису завантаження – самий перший сектор активного розділу.