如何製作一個通用的多系統安裝U盤二(前期知識)

MBR

    主引導記錄,是硬盤的0柱面0磁道第一個扇區的446字節。包含了440字節的引導代碼,4個磁盤標誌(磁盤簽名,用於在操作系統上標識磁盤爲基本或可移動))和2字節的空值。其後就是磁盤分區表,每個分區佔用16字節,一共64字節,每個分區的第一個字節爲80h(活動分區)或者00h(非活動分區)。最後2各字節爲MBR的有效標誌,固定爲55AAh。引導代碼不依賴任何的操作系統,主要的作用是檢查分區表並在自檢完成後移交控制權給硬盤上的其它引導程序。

 

U盤啓動原理

    因爲BIOS的種類和實現方式的差異,對U盤的支持也不盡相同。在BIOS決定是以軟盤還是以硬盤設備來映射U盤時,它首先要通過INT13中斷讀取U盤的第一個扇區(512字節)到內存地址07C0:0000h,檢測最後的55AAh並跳轉到內存裏的這段引導程序,然後通過BIOS預設的CPU DL寄存器檢測到正確的設備(00h或80h)。通常,00h或01h代表第一個和第二個軟驅。80h或81h代表第一塊和第二塊硬盤。之後啓動代碼通過DL寄存器獲取到U盤的映射方式,讀取其它的扇區內容並繼續引導。

    

根據U盤控制器的不同,會有兩種類型的U盤:

    Fixed(固定)

    Removable(可移動)

    

U盤通常有三種啓動模式

USB-FDD

    BIOS映射設備爲軟盤格式(INT13DL=00h)。通常這種格式沒有分區表和MBR。啓動後U盤的盤符是A:,通常格式化爲FAT16。

USB-ZIP

    模擬一個大容量的軟盤設備:ZIP。適用於一些較老的電腦。BIOS通常映射設備爲軟盤(INT13DL=0)。幷包含分區表且只有一個分區。BIOS啓動時不會加載第一個扇區的MBR代碼,而是會通過僅有的一個分區記錄找到並加載第一個分區的卷啓動記錄代碼。USB 驅動器在此模式下將被模擬成一個每磁道 32 扇區的驅動器

USB-HDD

    BIOS映射設備爲硬盤格式(INT13DL=80h)。如果U盤的控制器識別爲固定的(fixed),大部分的BIOS都會識別爲一個硬盤設備。當只有一個分區的時候有可能會被BIOS識別爲ZIP格式。


其它模式和工具:

USB-CDROM

    USB-CDROM顧名思義,就是將U盤量產成CDROM形式,具有隻讀特性。一般需要針對主控芯片和FLASH的類型通過量產工具製作。兼容性好,但是製作複雜。

Fbinst

    作者爲開源社區的bean(同時也是grub4dos和grub2開源項目在我國的開發/維護者)。Fbinst旨在解決BIOS對U盤CHS/LBA參數處理結果不同的問題。通過預留8M的隱藏區,在每個扇區固定位置都寫入該扇區在WIN下的LBA值,並在1-63扇區都寫入bootcode。BIOS啓動時,通過bootcode讀取預先寫入的LBA值,並與BIOS識別的LBA值進行比較,找出差距,倒推出當前BIOS對U盤的識別和訪問情況,根據這個情況來調整糾正對U盤的訪問。


參考資料:http://baike.baidu.com/view/2820577.htm?fr=aladdin


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章