溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

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

發(fā)布時間:2020-07-20 11:34:01 來源:網(wǎng)絡 閱讀:808 作者:智樂 欄目:移動開發(fā)

MBR

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

 

U盤啟動原理

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

    

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

    Fixed(固定)

    Removable(可移動)

    

U盤通常有三種啟動模式

USB-FDD

    BIOS映射設備為軟盤格式(INT13DL=00h)。通常這種格式?jīng)]有分區(qū)表和MBR。啟動后U盤的盤符是A:,通常格式化為FAT16。

USB-ZIP

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

USB-HDD

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


其它模式和工具:

USB-CDROM

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

Fbinst

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


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


向AI問一下細節(jié)

免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權內(nèi)容。

AI