90年代初,是传统BIOS的天下,电脑启动方式为Legacy,硬盘分区表为MBR,由于MBR分区表自身设计的局限性,硬盘总容量不能大于2TB。对应Win7 64位之前的操作系统。随着时代发展进步,UEFI在2006年发布,新的主板开始支持UEFI启动,硬盘分区表一般是GPT,硬盘容量可以大于2TB。Win7 64位开始支持UEFI了。

Legacy启动使用Grub4dos做引导,用来引导运行PE以及MHDD之类的维护工具。Grub4dos是一个多功能启动引导管理器,官方地址:Grub4dos 拿grub4dos-0.4.6a版本来看,核心文件只有4个:grldr,grldr.mbr,grldr.pbr,以及sample文件夹下的menu.lst。grldr.mbr写入磁盘的主引导记录,用来搜索引导grldr;grldr.pbr是分区引导记录文件,一般用不到;grldr是Grub的主体程序,相当于windows xp的ntldr,win7的bootmgr;menu.lst是菜单配置文件。

bios uefi 双启动原理 uefilegacy双启动制作_windows


以下内容仅为了解Grub4dos原理,不是制作PE的必须步骤:

我们可以使用BOOTICE工具(文末已给出链接)给U盘写入mbr,然后拷贝grldr以及menu.lst文件到U盘根目录。

bios uefi 双启动原理 uefilegacy双启动制作_grub_02


从U盘启动的效果如下:

bios uefi 双启动原理 uefilegacy双启动制作_grub_03


回到Legacy启动,设计架构如下:

bios uefi 双启动原理 uefilegacy双启动制作_windows_04


UD为整个优盘分区,包含PE文件夹,里面放置两个PE(MiniPE以及Win10PE);BOOT文件夹以及grldr引导文件。BOOT文件夹下的BCD以及BOOT.SDI文件可不要,不是用于Grub4dos的;GRUB文件夹下放置菜单配置文件menu.lst以及message文件;TOOLS文件夹下放置一些DOS维护工具。关于message文件,是一个cpio格式的压缩文件,里面是Grub的配置信息,包括启动背景图,字体等文件,可以使用7z查看内部内容。message文件主要是美化启动界面,可以不使用。

bios uefi 双启动原理 uefilegacy双启动制作_bios uefi 双启动原理_05


message文件有专用工具可以修改制作,MsgDiyer.exe或者个性化启动菜单制作(1.0.3.3)完结版.exe,两个工具在文末已给出链接。

bios uefi 双启动原理 uefilegacy双启动制作_boot_06


bios uefi 双启动原理 uefilegacy双启动制作_boot_07


制作Legacy启动U盘之前还需要介绍一个工具,FbinstTool(文末已给出链接),FbinstTool其实就是网络上各种U盘启动盘制作工具的核心,大家都是基于它开发的外壳。它通过在磁盘上分出一个隐藏分区(即UD区)放置PE需要的各种文件,其特性是除了基于fbinst的工具可以进行读取之外的任何软件或者系统都无法读取其中的数据,具有防病毒、木马和防格式化的功能。但是使用第三方的磁盘工具是可以进行删除ud分区的。详细使用介绍参考无忧启动论坛。

下面使用一个全新的U盘开始介绍如何制作Legacy启动U盘:

  1. 使用FbinstTool格式化U盘:
    将整个U盘格式化为UD,bios uefi 双启动原理 uefilegacy双启动制作_bios uefi 双启动原理_08,格式化会自动创建一个8M的主分区。

    制作成功后U盘不可使用,打开会提示格式化,千万不要格式化:
  2. 导入文件,使用FbinstTool工具导入启动盘所需的各种文件:
    首先导入grldr文件:
    然后导入BOOT文件夹以及文件夹下所有工具:

    然后同样方法导入PE文件夹,完成结果展示:
  3. 调整数据存放区域
    导入文件或文件夹时,默认导入主分区,即8M预留分区,建议除了grldr、menu.lst、message文件放在主分区外,其他都移动到扩展分区,给主分区多预留一些空间。

    这样,一个支持Legacy启动的U盘启动盘就做好了,使用Fbinst工具模拟移动一下: