温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

如何制作一个通用的多系统安装U盘二(前期知识)

发布时间:2020-07-20 11:34:01 来源:网络 阅读:799 作者:智乐 栏目:移动开发

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


向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI