[Mona] FAT32 (2)

とりあえずルートディレクトリの列挙にはたどり着いた。
ただしちょっと自信がない。

ルートディレクトリ開始位置=bpb.hiddenSectors 
                         + bpb.reservedSectors 
                         + bpb.bigSectorsPerFAT * 2 
                         + (bpb.rootDirStrtClus - 2) * bpb.sectorsPerCluster 
                         + VHD_HEAD_SIZE / 512; // *.vhd容量可変時のヘッダ(サイズによって動的にかわるっぽい)

手元のFAT32イメージだと解析するとこんな感じ

mbr.partitionTable[0].bootDescriptor=128
mbr.partitionTable[0].fileSystemDescriptor=12
mbr.partitionTable[0].firstSectorNumbers=3f
mbr.partitionTable[1].bootDescriptor=0
mbr.partitionTable[1].fileSystemDescriptor=0
mbr.partitionTable[1].firstSectorNumbers=0
mbr.partitionTable[2].bootDescriptor=0
mbr.partitionTable[2].fileSystemDescriptor=0
mbr.partitionTable[2].firstSectorNumbers=0
bpb.bytesPerSector=512
bpb.sectorsPerCluster=16
bpb.reservedSectors=32
bpb.numberOfFATs=2
bpb.rootEntries=0
bpb.totalSectors=0
bpb.mediaDescriptor=248
bpb.sectorsPerFAT=0
bpb.sectorsPerTrack=63
bpb.heads=32
bpb.hiddenSectors=63
bpb.bigTotalSectors=1052289
bpb.bigSectorsPerFAT=514
bpb.extFlags=0
bpb.FS_Version=0
bpb.rootDirStrtClus=2
bpb.FSInfoSec=1
bpb.bkUpBootSec=6