sairen139 发表于 2019-9-19 15:24:49

uefi启动Windows10的EFI分区仅需最少2个文件同在一个Boot文件夹里的bootx64.efi和BCD

本帖最后由 sairen139 于 2019-9-21 13:58 编辑

uefi启动Windows10的EFI分区仅需最少2个文件同在一个Boot文件夹里的bootx64.efi和BCD

今天做了一个实验(实验过程在两张截图里)得到了一个结果是微软原生的启动分区\EFI\Boot下bootx64.efi文件(即微软系统盘C:\Windows\Boot\EFI\bootmgfw.efi文件改名而来的bootx64.efi)优先启动同一个目录里的BCD,如果bootx64.efi在自身的文件夹里找不到BCD才会继续去找另外一个EFI\Microsof\boot文件夹下的BCD!

也就是说微软自带的bootx64.efi先启动和自己同在一个文件夹的BCD,找不到再去启动EFI\Microsof\boot下的文件夹。由此我们对于uefi启动的ramos可以利用下面的BAT语句来便利化引导小镜像vdf的制作(直接把C:\Windows\Boot\EFI\bootmgfw.efi复制到\EFI\BOOT\里并改名为bootx64.efi,这里的bat批处理把drivers下所有文件都拷贝了其实该文件夹下SYS驱动文件可以继续精简成果见我发的2楼内容):
set SrcDrv=c:
set DstDrv=d:\aaaaaaaaaayindaoWindows10VDF
md %DstDrv%
%DstDrv%

md %DstDrv%\EFI\BOOT
cd /d %DstDrv%\EFI\Boot
copy %SrcDrv%\Windows\Boot\EFI\bootmgfw.efi bootx64.efi
copy %SrcDrv%\EFI\BOOT\BCD

md %DstDrv%\windows\boot\Fonts
cd /d %DstDrv%\windows\boot\Fonts
copy %SrcDrv%\windows\boot\Fonts\msyh_boot.ttf

md %DstDrv%\windows\inf
cd /d %DstDrv%\windows\inf
copy %SrcDrv%\windows\inf\errata.inf

md %DstDrv%\windows\system32
cd /d %DstDrv%\windows\system32
copy %SrcDrv%\windows\system32\apisetschema.dll
copy %SrcDrv%\windows\system32\BOOTVID.DLL
copy %SrcDrv%\windows\system32\C_936.NLS
copy %SrcDrv%\windows\system32\ci.dll
copy %SrcDrv%\windows\system32\hal.dll
copy %SrcDrv%\windows\system32\kd.dll
copy %SrcDrv%\windows\system32\l_intl.nls
copy %SrcDrv%\windows\system32\ntoskrnl.exe
copy %SrcDrv%\windows\system32\PSHED.DLL
copy %SrcDrv%\windows\system32\winload.efi

md %DstDrv%\windows\system32\CodeIntegrity
cd /d %DstDrv%\windows\system32\CodeIntegrity
copy %SrcDrv%\windows\system32\CodeIntegrity\driver.stl

md %DstDrv%\windows\system32\config
Reg save HKLM\system%DstDrv%\Windows\system32\config\SYSTEM /y

md %DstDrv%\windows\system32\drivers
cd /d %DstDrv%\windows\system32\drivers
xcopy /s %SrcDrv%\windows\system32\drivers

pause >nul

sairen139 发表于 2019-9-19 16:30:08

本帖最后由 sairen139 于 2019-9-19 20:14 编辑

如果要更少文件连windows开机转圈标志都不要了可以直接在bat批处理里删除以下这三行:
md %DstDrv%\windows\boot\Fonts
cd /d %DstDrv%\windows\boot\Fonts
copy %SrcDrv%\windows\boot\Fonts\msyh_boot.ttf
要是想要显示windows开机转圈标志的上面那个微软旗子图案,可以加上Windows文件夹下boot文件夹下Resources文件夹下的27k的bootres.dll文件!

顺便把drivers里的驱动sys文件也精简了一下得到的bat文本文件语句如下:
set SrcDrv=c:
set DstDrv=d:\aaaaaaaaaayindaoWindows10VDF
md %DstDrv%
%DstDrv%

md %DstDrv%\EFI\BOOT
cd /d %DstDrv%\EFI\Boot
copy %SrcDrv%\Windows\Boot\EFI\bootmgfw.efi bootx64.efi
copy %SrcDrv%\EFI\BOOT\BCD

md %DstDrv%\windows\boot\Fonts
cd /d %DstDrv%\windows\boot\Fonts
copy %SrcDrv%\windows\boot\Fonts\msyh_boot.ttf

md %DstDrv%\windows\inf
cd /d %DstDrv%\windows\inf
copy %SrcDrv%\windows\inf\errata.inf

md %DstDrv%\windows\system32
cd /d %DstDrv%\windows\system32
copy %SrcDrv%\windows\system32\apisetschema.dll
copy %SrcDrv%\windows\system32\BOOTVID.DLL
copy %SrcDrv%\windows\system32\C_936.NLS
copy %SrcDrv%\windows\system32\ci.dll
copy %SrcDrv%\windows\system32\hal.dll
copy %SrcDrv%\windows\system32\kd.dll
copy %SrcDrv%\windows\system32\l_intl.nls
copy %SrcDrv%\windows\system32\ntoskrnl.exe
copy %SrcDrv%\windows\system32\PSHED.DLL
copy %SrcDrv%\windows\system32\winload.efi

md %DstDrv%\windows\system32\CodeIntegrity
cd /d %DstDrv%\windows\system32\CodeIntegrity
copy %SrcDrv%\windows\system32\CodeIntegrity\driver.stl

md %DstDrv%\windows\system32\config
Reg save HKLM\system%DstDrv%\Windows\system32\config\SYSTEM /y

md %DstDrv%\windows\system32\drivers
cd /d %DstDrv%\windows\system32\drivers
COPY %SrcDrv%\Windows\System32\drivers\hwpolicy.SYS
COPY %SrcDrv%\Windows\System32\drivers\werkernel.sys
COPY %SrcDrv%\Windows\System32\drivers\CLFS.SYS
COPY %SrcDrv%\Windows\System32\drivers\tm.sys
COPY %SrcDrv%\Windows\System32\drivers\FLTMGR.SYS
COPY %SrcDrv%\Windows\System32\drivers\msrpc.sys
COPY %SrcDrv%\Windows\System32\drivers\ksecdd.sys
COPY %SrcDrv%\Windows\System32\drivers\clipsp.sys
COPY %SrcDrv%\Windows\System32\drivers\cmimcext.sys
COPY %SrcDrv%\Windows\System32\drivers\ntosext.sys
COPY %SrcDrv%\Windows\System32\drivers\cng.sys
COPY %SrcDrv%\Windows\system32\drivers\Wdf01000.sys
COPY %SrcDrv%\Windows\system32\drivers\WDFLDR.SYS
COPY %SrcDrv%\Windows\System32\Drivers\acpiex.sys
COPY %SrcDrv%\Windows\System32\Drivers\WppRecorder.sys
COPY %SrcDrv%\Windows\System32\drivers\ACPI.sys
COPY %SrcDrv%\Windows\System32\drivers\WMILIB.SYS
COPY %SrcDrv%\Windows\System32\drivers\intelpep.sys
COPY %SrcDrv%\Windows\system32\drivers\WindowsTrustedRT.sys
COPY %SrcDrv%\Windows\System32\drivers\WindowsTrustedRTProxy.sys
COPY %SrcDrv%\Windows\System32\drivers\pcw.sys
COPY %SrcDrv%\Windows\System32\drivers\msisadrv.sys
COPY %SrcDrv%\Windows\System32\drivers\pci.sys
COPY %SrcDrv%\Windows\System32\drivers\vdrvroot.sys
COPY %SrcDrv%\Windows\system32\drivers\pdc.sys
COPY %SrcDrv%\Windows\system32\drivers\CEA.sys
COPY %SrcDrv%\Windows\System32\drivers\partmgr.sys
COPY %SrcDrv%\Windows\System32\drivers\spaceport.sys
COPY %SrcDrv%\Windows\System32\drivers\volmgr.sys
COPY %SrcDrv%\Windows\System32\drivers\volmgrx.sys
COPY %SrcDrv%\Windows\System32\drivers\mountmgr.sys
COPY %SrcDrv%\Windows\System32\Drivers\AppleMNT.sys
COPY %SrcDrv%\Windows\System32\drivers\AppleSSD.sys
COPY %SrcDrv%\Windows\System32\drivers\storport.sys
COPY %SrcDrv%\Windows\System32\DRIVERS\fvevol.sys
COPY %SrcDrv%\Windows\System32\drivers\volsnap.sys
COPY %SrcDrv%\Windows\system32\drivers\uwfvol.sys
COPY %SrcDrv%\Windows\system32\drivers\uwfrtl.sys
COPY %SrcDrv%\Windows\System32\drivers\rdyboost.sys
COPY %SrcDrv%\Windows\System32\drivers\EhStorClass.sys
COPY %SrcDrv%\Windows\System32\drivers\disk.sys
COPY %SrcDrv%\Windows\System32\drivers\CLASSPNP.SYS
COPY %SrcDrv%\Windows\System32\drivers\fileinfo.sys
COPY %SrcDrv%\Windows\system32\drivers\uwfs.sys
COPY %SrcDrv%\Windows\system32\drivers\uwfreg.sys
COPY %SrcDrv%\Windows\System32\Drivers\NTFS.sys
COPY %SrcDrv%\Windows\System32\drivers\volume.sys
COPY %SrcDrv%\Windows\system32\drivers\iorate.sys
COPY %SrcDrv%\Windows\System32\Drivers\Fs_Rec.sys
COPY %SrcDrv%\Windows\System32\Drivers\AppleHFS.sys
COPY %SrcDrv%\Windows\system32\drivers\ndis.sys
COPY %SrcDrv%\Windows\system32\drivers\NETIO.SYS
COPY %SrcDrv%\Windows\System32\drivers\fancyrd.sys
COPY %SrcDrv%\Windows\System32\drivers\RXBSKNL.SYS
COPY %SrcDrv%\Windows\System32\Drivers\ksecpkg.sys
COPY %SrcDrv%\Windows\System32\drivers\tcpip.sys
COPY %SrcDrv%\Windows\System32\drivers\fwpkclnt.sys
COPY %SrcDrv%\Windows\System32\drivers\wfplwfs.sys
COPY %SrcDrv%\Windows\System32\Drivers\mup.sys
COPY %SrcDrv%\Windows\system32\drivers\filecrypt.sys
COPY %SrcDrv%\Windows\system32\drivers\tbs.sys

pause >nul

这里我特意排在第一个的Windows\System32\drivers\hwpolicy.SYS这个虽然在null.sys之后才加载的sys很重要关系到windows10开机是出现一个LogonUI.exe出错提示框的消除!H开头的sys全保留开机会显示山洞那张标志图,还没去找究竟是哪个sys里有这张图!

123help 发表于 2019-9-19 16:54:23

研究得很透切。

zhangmi 发表于 2019-9-19 17:02:54

efi文件在fat分区,系统文件在ntfs分区,不能在同一个分区吧?

窄口牛 发表于 2019-9-19 17:04:43

本帖最后由 窄口牛 于 2019-9-19 19:52 编辑

win10确实可以,win7的bcd必须是标准路径,放到其他位置的文件夹是不行的。

sairen139 发表于 2019-9-19 17:09:10

本帖最后由 sairen139 于 2019-9-20 12:16 编辑

SrcDrv即源驱动地址,SRC是source的缩写,表源。
DstDrv即目的驱动地址,DST是destination的缩写,表目的。
DRV   是Device driver (for hardware)的缩写, 即设备驱动程序(用于硬件)。驱动程序一般指的是设备驱动程序(Device Driver),是一种可以使计算机和设备进行相互通信的特殊程序。相当于硬件的接口,操作系统只有通过这个接口,才能控制硬件设备的工作,假如某设备的驱动程序未能正确安装,便不能正常工作。因此,驱动程序被比作“ 硬件的灵魂”、“硬件的主宰”、和“硬件和系统之间的桥梁”等。正是基于这个原因,驱动程序在系统中的所占的地位十分重要,一般当操作系统安装完毕后,首要的便是安装硬件设备的驱动程序。不过,大多数情况下,我们并不需要安装所有硬件设备的驱动程序,例如硬盘、显示器、光驱等就不需要安装驱动程序,而显卡、声卡、扫描仪、摄像头、Modem、蓝牙、WiFi等就需要安装驱动程序。另外,不同版本的操作系统对硬件设备的支持也是不同的,一般情况下版本越高所支持的硬件设备也越多。

chiannet 发表于 2019-9-19 22:14:00

学习了。

liujun2000 发表于 2019-9-19 23:04:40

你太细致了

2012adg3 发表于 2019-9-20 08:10:12

你这让微软怎么办?

bearxu 发表于 2019-9-20 13:20:17

这有什么用? 可以用来运行程序吗?

tulongwa 发表于 2019-9-21 05:22:07

这启动菜单背景不错嘛{:1_186:}

董大 发表于 2019-9-21 09:58:30

谢谢楼主的分享,辛苦啦

88899abc138 发表于 2020-7-31 15:11:02

赞一个,给力。

caige518 发表于 2020-10-15 16:32:19

认同感也快

cloudpig 发表于 2021-2-26 15:47:26

谢谢楼主分享

luosais 发表于 2023-8-3 06:00:32

谢谢分享

luosais 发表于 2023-8-3 08:37:55

谢谢分享

luosais 发表于 2023-8-3 13:10:03

谢谢分享

cntvic 发表于 2023-12-16 23:09:11

感谢分享

zzzlllxyt 发表于 2023-12-18 22:21:57

路过……

cntvic 发表于 2024-1-5 07:00:07

感谢分享
页: [1]
查看完整版本: uefi启动Windows10的EFI分区仅需最少2个文件同在一个Boot文件夹里的bootx64.efi和BCD