Организиране на данни на твърди дискове

Данните на флопи диска са организирани като единичен логически диск, докато твърдите дискове са по-сложни. Както бе споменато по-горе, пространството на твърдия диск може да бъде организирано в един или повече дялове, а дяловете могат да съдържат едно или повече логически устройства. В допълнение, дяловете могат да бъдат както съвместими, така и несъвместими с операционните системи на Microsoft, а дяловете на Microsoft могат да имат различни вътрешни структури (само дялове с FAT структура ще бъдат разгледани по-долу).

Независимо от набора операционни системи, инсталирани на диска (който може да включва не само системи на Microsoft, но и системи от други типове), за управление на дисковите дялове се използва структура под формата на подреден еднопосочен списък. В началния сектор на твърдия диск (в сектора с абсолютен номер 0) се намира главният зареждащ запис (Master Boot Record, съкратено MBR). MBR включва запис за зареждане (MSB), който в старата документация също се наричаше системно независим зареждащ механизъм (NSB), таблица на дяловете (Partition Table, съкратено като PT) и типичен подпис на сектора за зареждане (AA55h).

MSB осигурява прехвърляне на контрола към сектора за зареждане на активния дял, а MBR съдържа списък с указатели към дискови дялове 4. Вътрешната структура на MBR е показана в табл. 6.38.

Таблица 6.38. Структура на основния запис за стартиране и таблица на дяловете

Запис за зареждане (MSB)

Дескриптор на раздел 1

Дескриптор на раздел 2

Дескриптор на раздел 3

Дескриптор на раздел 4

Подпис на таблицата на дяловете (стойност AA55h)

Таблицата на дяловете е горната част на дървото на дяловете (фиг. 6.7), в което секциите обикновено се поставят в следния ред:

• Основен дял на Microsoft(Първичен дял);

• Разширен дял на Microsoft (Extended Partition);

• дялове на други операционни системи (Non-DOS дялове). Основният дял присъства на диска без съмнение, а всички останали се създават по преценка на потребителя. Размерите на всички дялове също се определят от потребителя по време на първоначалната процедура за разделяне на диска FDISK. Структурата на дескриптора на раздела е показана в табл. 6.39. Дескрипторът съдържа знак за активност (т.е. дали операционната система трябва да се зареди от този дял), координатите на началото на дяла във формат CHS, кода на типа на дяла (вижте таблица 6.26), координатите на края на дяла във формат CHS, координатите на началото на дяла във формат LBA и размера на дяла (в 512-байтови сектори).

Таблица 6.39. Структура на дескриптора на раздела

Размер на полето, байтове

Флаг за активност (0 - разделът е неактивен, 80h - разделът е активен)

Номер на повърхността на диска, където започва дялът

Номер на цилиндъра и номер на сектора, от който започва секцията"

Код на типа дял (вижте Таблица 6.26)

Номер на повърхността на диска, където завършва дялът

Номер на цилиндъра и номер на сектора, който завършва секцията“

Абсолютен (логически) номер на началния сектор на дяла

Размер на дяла (брой сектори)

Индекс 1 означава, че номерата на цилиндъра и сектора са посочени във формата на прекъсване Int 13h, т.е. битове 0-5 съдържат номера на сектора, битове 6-7 са горните два бита от 10-битовия номер на цилиндъра, битове 8-15 са долните осем бита от номера на цилиндъра.

• 02P - участък СР/М;

• 03h - дял Xenix;

• 07h - OS/2 дял (HPFS файлова система).

Ако в полето за код на дяла е записано 0, тогава дескрипторът се счита за празен, т.е. не дефинира никакъв дял на диска.

Таблица 6.40. Кодове на дялове за операционни системи на Microsoft

32MB-2GB

512MB-2TB

512MB-2TB

32MB-2GB

Дескрипторът на основния дял веднага сочи към сектора за зареждане на логическия диск (винаги има един и само един диск в първичния дял), а дескрипторът на разширения дял сочи към списъка с логически дискове (фиг. 6.8), съставен от структури, наречени вторичен MBR (Secondary MBR, съкратено SMBR).

данни

Ориз. 6.8. Списък на DOS дялове на твърд диск

Всеки диск в разширен дял има свой собствен SMBR блок. SMBR има структура, подобна на MBR, но няма запис за зареждане (запълнен с нули) и се използват само две от четирите дескрипторни полета. Първият дескриптор на дял сочи към логическото устройство (полето за код трябва да съдържа стойността "първичен дял", съответстваща на типа FAT на логическото устройство),

а второто - към следващата SMBR структура в списъка (полето за код трябва да съдържа някаква стойност от типа "разширен раздел"). Последният SMBR в списъка съдържа код на раздел нула във втория елемент.

За достъп до данни, намиращи се на логически диск в разширен дял, първо трябва да потърсите в списъка SMBR. Имайте предвид, че операционните системи на Microsoft разпределят буквите на устройствата, както следва:

• имената A: и B: се присвояват на дискети, независимо дали присъстват в дадената компютърна конфигурация;

• дяловете на твърдите дискове се именуват, започвайки с C:, като първо се дават имената на основните дялове и едва след това, във втория кръг, се именуват логическите дискове на разширените дялове;

• редът на именуване на основните дялове е както следва: Главен диск на канал 0,Канал 0 Slave, Channel 1 Master, Channel 1 Slave и др.;

• редът на именуване на логическите дискове на разширените дялове е както следва: всички томове на главния диск на канал О се наименуват по ред, след това томовете на подчинения диск на канал 0, след това главния диск на канал 1, след това подчинения диск на канал 1 и т.н.;

• Дяловете, които нямат FAT тип организация, просто се игнорират (стават невидими) и не им се присвояват имена.

Когато използвате няколко операционни системи едновременно, имайте предвид, че по-старите системи не разпознават дялове, които имат нова (въведена след създаването им) вътрешна организация. Например, MS-DOS версия 6.22 игнорира логическите устройства със системата FAT32, тоест не им присвоява имена и не може да работи с тях.

Източник: Кулаков В. К90 Програмиране на хардуерно ниво: специален справочник (+флопи диск). 2-ро издание. - Санкт Петербург: Питър, 2003. - 847 e .: ил.