FBinst+GRLDR:打开PE启动盘的无限可能
FBinst+GRLDR:打开PE启动盘的无限可能
之前的文章中我极其详细的介绍了FBinst的启动原理,配置安装方式.
今天我们继续介绍如何FBinst+GRLDR+BOOTMGR链式启动.
书接上回
上一节中,我们已经制作了一个”全能三分区”PE启动盘.我们先回忆一下:
首先,BIOS加载FBinst的启动引导MBR(前446字节代码),然后CPU找到位于UD分区中的GRLDR.然后GRLDR开始运行.
一旦GRLDR登场,电脑就是它大放异彩的舞台.
上次我们说,GRLDR可以直接启动PE系统的ISO光盘映像文件.所以我们用GRLDR启动了位于UD扩展分区中的WEPE.iso文件.
这次我们来说说如何用GRLDR引导启动微软的BOOTMGR,然后再用BOOTMGR启动PE系统.
GRLDR链式启动BOOTMGR
要想让GRLDR启动BOOTMGR,那一定要让GRLDR知道BOOTMGR位于什么位置.以下代码就是告诉GRLDR这个启动器BOOTMGR在哪里的.我们先看代码:
1 | |
一个磁盘上有那么多的分区,GRLDR怎么知道BOOTMGR在哪个分区中呢?
find --set-root /一个特殊的文件这行代码就是找到BOOTMGR的指路人.
上述代码中,find是寻找文件的函数.如果一个分区中有一个文件如下:
1 | |
那么我们的代码是:
1 | |
意思就是让GRLDR区所有的分区中寻找,哪一个分区中有\install\pe\boot\unique.abc这个文件.
一旦GRLDR找到了这个文件路径,那么执行--set-root,直接把这个文件所在的分区设置为根分区.
接着,chainloader /bootmgr,链式启动bootmgr.(注:/bootmgr的意思是bootmgr位于这个分区的根目录中)
然后bootmgr接管计算机,把Windows启动管理器界面显示在屏幕上.
那么上面那写代码应该写在什么地方呢?打开FBinstTool,点击Grldr菜单,直接另起一行输入上面所有的代码,然后右键点击保存即可.
所以我们可以发现,那个”特殊的文件”非常的重要.这个文件就决定了GRLDR能不能找到BOOTMGR.
这个文件是我们随意设置的.我们只需要新建文本文档,然后随意给他命名为一个你认为绝无仅有的名字(纯英文或数字名称),然后把它的路径放在find --set-root后面就行了.
注意!
在GRLDR的语法中,路径使用正斜杠!不要使用反斜杠!
既然能链式启动BOOTMGR,UD分区要它何用?
既然GRLDR链式启动了BOOTMGR,后续启动PE系统的wim文件之类都可以使用BOOTMGR解决,那我们为什么还非要在弄一个那么大的UD扩展分区,里面放一个PE系统的ISO文件呢?
还是为了兼容性.
对于古老的主板,可能甚至无法识别一个磁盘上有好几个分区,所以GRLDR可能就找不到我们设置的那个”特殊文件”,进而无法启动BOOTMGR.所以尽量让GRLDR自己完成所有的工作,让他在UD分区里做完所有的事情就是最好的选择.
当然,对于现在的主板来说,真的没有必要再使用FBinst+GRLDR这种搭配.因为现在的BIOS已经十分规范,可以直接启动BOOTMGR,而且最新一代的UEFI固件终将成为主流替代legacy BIOS.