U盘启动盘工具的工作原理
2024-05-24 21:12:19

目前市面上所有启动盘制作工具都可以说是套壳工具,核心都是依赖于finst和 分区助手DiskGenius

Legacy引导支持

fbinst的作用是在U盘上分出一个自创格式的分区,也就是所谓的 UD分区,这个分区不被系统识别,所以有较强的防病毒作用,只能通过fbinst来编辑分区文件。缺点是不支持UEFI引导。
fbinst工具有1.6和1.7两个版本,互相不兼容,且只有1.6版本有命令行支持,所以所有启动盘制作工具都是用的1.6版本。

用命令行来划分UD区,并添加进去一个ISO文件的例子

1
2
3
4
5
6
7
8
:: 在第1块磁盘上,格式化并创建UD区,分配300m空间
fbinst.exe (hd1) format --force --fat32 --align --extended 300m
:: 添加菜单文件
fbinst.exe (hd1) add-menu fb.cfg fb.cfg
:: 添加grldr引导管理器
fbinst.exe (hd1) add grldr grldr -e
:: 添加ISO文件
fbinst.exe (hd1) add wepe.iso wepe.iso -e

fb.cfg菜单

1
2
3
default 0
timeout 0
menu F1 grldr "grldr"

软件内置了grldr程序,但不是较新的版本,新的版本可以去 http://grub4dos.chenall.net/ 下载。然后手动添加到UD区并编辑内容为

1
2
3
map /wepe.iso (0xff)
map --hook
chainloader (0xff)

然后导出这个编辑过后的grldr即可,以后就可以通过命令行导入了。更多用法可以自行百度,这里不深究。
这样,这个U盘就支持Legacy引导了。

UEFI引导支持

UEFI引导还需要再划出一个分区,一般是使用 分区助手DiskGenius 来做。
并将支持UEFI引导的ISO文件解压到这个分区中,比如用分区助手大概是这样

1
2
3
4
5
6
7
8
:: 格式化
PartAssist.exe /hd:1 /fmt:0 /fs:fat32
:: 在U盘末尾分出300mb空间
PartAssistexe /hd:1 /resize:0 /reduce-right:300 /align
:: 在刚才的空间上创建一个隐藏分区
PartAssist.exe /hd:1 /cre /pri /size:auto /end /fs:fat16 /hide /align /label:EFI
:: 从EFI文件夹拷贝所有文件到隐藏分区
PartAssist /hd:1 /whide:1 /src:D:\fbinst\EFI

这样,这个U盘就支持UEFI引导了。

用户数据区

用户数据区也就是用户用来存放数据的分区,系统可见,不需要额外操作。
经过上面两轮操作后,U盘就有了三个分区:UD分区、EFI分区、用户数据分区。

最终就实现了市面上U盘制作工具所谓的三分区方案。

系统启动、封装相关技术可以去 无忧启动 论坛和 IT天空 网站学习。