编写BIOS参数块的正确方法是什么? (引导程序)

时间:2016-03-30 00:46:16

标签: x86 boot bootloader bios

在为引导加载程序编写一些基本代码之后,我制作了一个.img图像来测试它。在Bochs上,它按预期运行;但是,当我将图像写入USB并尝试在真实设备上进行测试时,我突然收到No bootable device found消息。在互联网上进行了一些网络爬行之后,我发现我可能需要一个BIOS参数块(BPB)。我复制并粘贴了一个我找到的BPB,然后突然一切正常。以下是代码,如果需要的话:

bpbBytesPerSector:      DW 512
bpbSectorsPerCluster:   DB 1
bpbReservedSectors:     DW 1
bpbNumberOfFATs:        DB 2
bpbRootEntries:         DW 224
bpbTotalSectors:        DW 2880
bpbMedia:               DB 0xF0
bpbSectorsPerFAT:       DW 9
bpbSectorsPerTrack:     DW 18
bpbHeadsPerCylinder:    DW 2
bpbHiddenSectors:       DD 0
bpbTotalSectorsBig:     DD 0
bsDriveNumber:          DB 0
bsUnused:               DB 0
bsExtBootSignature:     DB 0x29
bsSerialNumber:         DD 0xa0a1a2a3
bsVolumeLabel:          DB "AOS Floppy "
bsFileSystem:           DB "FAT12   "

根据我的理解,BPB描述了存储设备的物理属性。我也理解BPB的各个组成部分。但是,我没有看到单个BPB如何描述可以从中加载引导加载程序的许多文件系统。

也就是说,根据最终用户决定用于安装和运行操作系统的设备,这些值中的某些值是否会发生变化? BPB是否描述了引导加载程序的卷?如果是这样,这些属性也不会因用户的设备而异吗?

0 个答案:

没有答案
相关问题