我寫了一個我自己的簡單的bootloader。 I,第一,具有初始典型3行代碼BIOS參數塊和磁盤格式化
bits 16
org 0x7c00
jmp main
隨後BIOS參數塊爲FAT 12和用於1.44MB軟盤,至多偏移字節0x003D。比方說,爲了簡單起見,主引導程序正在打印「Hello World」。
當我複製使用
PARTCOPY 0 200 -f0 0
我的引導程序也讓我的磁盤丟失其格式,引發「磁盤沒有格式化」的消息在Windows上。
在另一方面,如果我複製使用
PARTCOPY 0 3 -f0 0
PARTCOPY 3E 1C2 -f0 3E ; Do not copy BIOS Parameter Block
Windows不抱怨格式化我的引導程序。
有了這些不同的結果,我想知道BPB如何影響格式化和/或分區表。我提到了分區表,因爲我得到了一個建議,我需要在複製引導扇區後使用分區表來解決「磁盤未格式化」問題。
任何幫助或評論將不勝感激。
真誠,
感謝亞歷克斯明確的答案。它只是告訴我,我的代碼沒有「正確的」BPB。你知道我可以查找和學習的任何參考/鏈接嗎?搜索「FAT12 BPB」並沒有給我太多... – ElectroJunkie 2012-02-03 07:12:42
從格式化的軟盤讀取BPB字節。或者在線找到一個可啓動的1.44「DOS/Win9x軟盤鏡像,並從中提取BPB字節。 – 2012-02-03 07:17:58
您可能想試試這個[document](http://msdn.microsoft.com/en-us/windows/hardware/gg463080 )來自微軟,這幾乎就是FAT,我知道它說的是FAT32,但它也包含FAT12和FAT16的細節。 – 2012-02-03 08:17:26