Системное программное обеспечение персональных ЭВМ


Пример 4 - часть 2


эл-ту (++i), EndList указывает на 1-й байт следующего элемента pаздела */ EndList=(word *)&mbr.rt[++i]) { /* кооpдинаты куpсоpа */ y=4; x+=7; gotoxy(x,y++); if (mbr.rt[i].SysCode==5) printf("Ext "); else printf("%-7c",'C'+ndrive++); gotoxy(x,y++); printf("%02xH ",mbr.rt[i].ActFlag); gotoxy(x,y++); printf("%-7d",mbr.rt[i].SysCode); gotoxy(x,y++); printf("%-7d",mbr.rt[i].Begin_Hd); gotoxy(x,y++); printf("%-7u",TRK(mbr.rt[i].Begin_SecTrk)); gotoxy(x,y++); printf("%-7u",SECT(mbr.rt[i].Begin_SecTrk)); gotoxy(x,y++); printf("%-7d",mbr.rt[i].End_Hd); gotoxy(x,y++); printf("%-7u",TRK(mbr.rt[i].End_SecTrk)); gotoxy(x,y++); printf("%-7u",SECT(mbr.rt[i].End_SecTrk)); gotoxy(x,y++); printf("%-7lu",mbr.rt[i].RelSec); gotoxy(x,y++); printf("%-7lu",mbr.rt[i].Size); if (mbr.rt[i].SysCode==5) { /* если код системы 5, pаздел содеpжит свою таблицу pазделов; устанавливается ее дисковый адpес, и новая таблица считывается в память */ head=mbr.rt[i].Begin_Hd; Sect_Trk=mbr.rt[i].Begin_SecTrk; goto NEXT; } } gotoxy(x,y++); printf("\n\nНажмите любую клавишу..."); getch(); }

Следует предупредить, что описанный формат MBR обеспечивается системной утилитой FDISK. На дисках, разбиение которых осуществлялось другими средствами, можно встретить отступления от такого формата.

10.3.2. Поскольку дискеты не разбиваются на логические диски, MBR на них отсутствует. Структуры дискеты и логического диска одинаковы и включают в себя следующие элементы:

  • Boot-сектор;
  • FAT (2 копии);
  • Корневой Каталог;
  • область данных.

Boot-сектор является самым первым сектором логического диска (номер логического сектора - 0). Для дискеты его физический адрес - дорожка 0, головка 0, сектор 1; для логического диска на жестком диске адрес опеределяется полями Begin_Hd, Begin_SecTrk соответствующего элемента таблицы разделов. При загрузке системы с дискеты именно этот сектор считывается в память программой POST и выполняет дальнейшую загрузку; при загрузки с жесткого диска этот сектор считывается загрузчиком, содержащимся в MBR.


- Начало -  - Назад -  - Вперед -