簡體   English   中英

bios如何知道BPB的類型?

[英]How does the bios know what type of BPB is present?

如果我希望我的引導加載程序從usb棒引導,我必須包含一個BPB。 usb棒在軟盤模擬模式下運行。 正如所看到這里 ,有許多不同版本的BPB。 bios如何知道BPB的類型? GRUB 0.97似乎正在使用另一種BPB格式?

我可以從偏移量0xb稍微填充我的引導加載程序,然后它也可以工作。 是否有標准/通用尺寸可供使用? 我沒有在USB上使用任何文件系統,只是原始的。

我想我需要BPB,因為bios嘗試更新一些值,這會覆蓋一些代碼。 由於每個BPB看起來有點不同,bios如何知道在哪里更新什么值?

如果您有BPB,並非所有BIOS實施都在關注。 具有MBR引導扇區開頭的BPB的一般格式如下:

bits 16
org 0                   ; BIOS will load the MBR to this location.

    bootStart:
            jmp     _start
            nop
            osType      db  'MSDOS6.0'
            bpb
            bps         dw  512
            spc         db  8
            rs          dw  1
            fats        db  2
            re          dw  512
            ss          dw  0
            media       db  0xf8
            spfat       dw  0xc900
            spt         dw  0x3f00
            heads       dw  0x1000
            hidden      dw  0x3f00, 0
            ls          dw  0x5142,0x0600
            pdn         db  0x80
            cheads          db  0
            sig         db  0x29
            serialno    dw  0xce13, 0x4630
            label       db  'NO NAME'
            fattype     db  "FAT32"

    _start:
                                ; set up the registers
            mov     ax, 0x07c0
            mov     ds, ax
            mov     fs, ax
            mov     gs, ax
            mov     ax, 0x0700
            mov     es, ax

這些字段總是在同一個地方。系統如果關心BPB,只需解析它就可以驗證它。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM