我编写了一个引导加载程序,我需要将其写入 USB 驱动器。由于我使用的是 Windows,所以我的引导加载程序必须支持 FAT32 和 FAT16 等文件系统。我BIOS Parameter Block
为此使用了 BPB ( )。我知道 USB 驱动器由扇区组成。
但是它有磁头、磁道等吗?因为这些信息将在 Bios 参数块中提及。
答案1
假设您使用 BIOS INT 13h 从 USB 驱动器读取数据,则 BIOS 将根据需要转换地址以与 USB 驱动器配合使用。当前的引导加载程序会检查 INT 13h 扩展,如果存在,则使用扩展版本的读取扇区,使用 64 位逻辑扇区地址而不是 CHS(柱面/磁头/扇区)来避免旧接口的大小限制。但是,经典的主引导记录只有 32 位值用于起始扇区和每个主分区的扇区数,这将驱动器大小限制为 2 TB。
维基文章:
http://en.wikipedia.org/wiki/INT_13H
http://en.wikipedia.org/wiki/Master_boot_record
http://en.wikipedia.org/wiki/Master_boot_record#Sector_layout
答案2
USB 驱动器没有磁头、磁道或扇区。只有硬盘才有。也许您的 Bios 参数块无法处理 USB 驱动器。