分区信息表的结构 私人日志

2008-07-16 10:53:07

硬盘的0柱面、0磁头、1扇区称为主引导扇区,该扇区的内容称为主引导记录(Main Boot Record(MBR)),在MBR中偏移地址01BEH–01FDH的64个字节,叫做分区信息表,可以最多记录4个分区项内容。

  • 读取MBR的程序:

    1
    2
    3
    4
    5
    6
    7
    8
    
      mov ax,0201      ;ah=2 读取扇区;al=1  读取一个扇区
      mov bx,1000      ;读取内容放到这个偏移地址上
      mov cx,0001      ;0柱面(cl高2位+ch),1扇区(cl低6位)
      mov dx,0080      ;0磁头(dh),硬盘c(dl:0-A盘,1-B盘,80h-硬盘c,81h-硬盘D)
      int 13
      int 3
    
      我喜欢在debug中执行这段程序。
    
  • 分区信息表结构:

    字节偏移 说明
    0 引导标志。若值为80H表示活动分区,若值为00H表示非活动分区。
    1-3 本分区的起始磁头号、扇区号、柱面号。其中:磁头号—第1字节;扇区号—第2字节的低6位;柱面号—为第2字节高2位+第3字节8位
    4 分区类型符:
    00H——表示该分区未用(即没有指定)
    01h--FAT12基本分区
    04H--FAT16基本分区
    06H——big FAT16基本分区
    0BH——FAT32基本分区
    05H——扩展分区
    07H——NTFS分区
    0FH——(LBA模式)扩展分区(83H为Linux分区等)
    5-7 本分区的结束磁头号、扇区号、柱面号。其中:
    磁头号——第1字节;
    扇区号——第2字节的低6位;
    柱面号——第2字节的高2位+第3字节
    8-11 分区起始扇区数,指分区相对于记录该分区的分区表的扇区位置之差(该分区表:LBA=0x0)
    12-15 本分区的总扇区数
  • 可能近期要用,为避免找不到,索性放到博客里。