令狐大虾 发表于 2017-1-9 09:28:34

本帖最后由 令狐大虾 于 2017-1-9 09:35 编辑

管用啊,实体机测试通过。你没看我改了文字啊。我需要的是判断是啥模式的磁盘就直接把引导文件写入C盘,不 ...
令狐大虾 发表于 2017-1-8 23:14 http://www.autoitx.com/images/common/back.gif

其实系统安装无论是何种方式启动(MBR启动或UEFI启动模式),默认的启动文件写入方式都是
bcdboot c:\windows /l zh-cn(将启动文件写入硬盘主分区活动区)。

只是我有特殊要求才折腾而已。下面是DIY
一、bcdboot c:\windows /l zh-cn和bcdboot c:\windows /l zh-cn /s c:的区别(注意/s后面必须指定分区)
1. MBR模式的磁盘(无隐藏分区)
MBR 8PE启动执行bcdboot c:\windows /l zh-cn则会将启动文件夹BOOT(属性为隐藏)写入活动区C盘。
MBR 8PE启动执行bcdboot c:\windows /l zh-cn /s c: 也会将启动文件夹BOOT(属性为隐藏)写入活动区C盘。
UEFI 8PE下执行bcdboot c:\windows /l zh-cn无效!
UEFI 8PE下执行bcdboot c:\windows /l zh-cn /s c:则会将启动文件夹EFI(属性为只读)写入活动区C盘。
2.GPT模式磁盘(带隐藏分区ESP及MSR)
MBR 8PE启动执行bcdboot c:\windows /l zh-cn则不会写入任何启动文件,需要挂载ESP假设为x并执行 bcdboot c:\windows /l zh-cn /f uefi /s x:
MBR 8PE启动执行bcdboot c:\windows /l zh-cn /s c:则将启动文件夹Boot写入非活动区C盘。(即GPT硬盘不支持系统MBR启动模式启动,安装中会出现"windows安装程序无法将 windows 配置为在此计算机的硬件上运行。")
UEFI 8PE 启动执行bcdboot c:\windows /l zh-cn则将启动文件夹EFI写入隐藏的活动区ESP。
UEFI 8PE 启动执行bcdboot c:\windows /l zh-cn /s c: 则将启动文件夹EFI(属性为只读)写入非活动区C,。

由以上两个例子看出,只有在MBR PE下启动bcdboot c:\windows /l zh-cn= bcdboot c:\windows /l zh-cn /s c:

二、UEFI或MBR交替启动(硬盘必须为MBR模式!)
UEFI 8PE和MBR 8PE分别启动,任意一PE下将WIM释放到C盘之后各运行一次bcdboot c:\windows /l zh-cn /s c:
MBR PE下C盘根目录生成了boot文件夹 (MBR引导,属性为隐藏),UEFI PE 下C盘根目录生成了EFI文件夹(UEFI引导,属性为只读)
然后在主板设置里面自选启动方式

我为啥这样做安装器,就是我可以无视硬盘模式,意思不管它是MBR模式磁盘或是GPT模式磁盘都可以做到UEFI启动。

austere 发表于 2017-1-9 10:01:13

回复 30# 令狐大虾


   没你那样用过,我用的时候GPT要把引导文件写esp分区里才可以引导的。
03PE的diskpart版本太低的原因,我一开始测试是在win10下测试的,你不是说有问题,所以我就用win8试了一下,确实有问题,然后才又改的,现在这个win7以上的pe用都是可以通过的,03版本不行

令狐大虾 发表于 2017-1-9 16:47:47

回复令狐大虾


   没你那样用过,我用的时候GPT要把引导文件写esp分区里才可以引导的。
03PE的disk ...
austere 发表于 2017-1-9 10:01 http://www.autoitx.com/images/common/back.gif
嗯,反正03PE不支持UEFI启动,不需要加这个代码判断。
我的理解:搞系统制作在做系统安装的时候尽量减少客户的工作量(当然包括自己)。不需要按部就班按照大多数人或者微软提出的安装模式进行,而只是需要傻瓜式的轻轻一键操作即可。

austere 发表于 2017-1-9 18:28:11

回复 33# 令狐大虾


    嗯,写代码的目的就是为了简化工作量,😁
页: 1 2 [3]
查看完整版本: [已解决]可否判断C盘是活动分区并执行程序?感谢austere 帮助