hilsonma 发表于 2019-6-10 23:09:45

快速修复UEFI引导(Windows)

本帖最后由 hilsonma 于 2019-11-21 15:44 编辑

1.下载附件
2.解压后双击运行脚本 重建Win引导.cmd
    脚本会新建bcd文件到第一个Windows分区 \Windows\Boot\EFI\bcd

在efi引导菜单中指定引导 (Windows分区)\Windows\Boot\EFI\bootmgfw.efi,如:
      search -s -f \Windows\Boot\EFI\bootmgfw.efi
      chainloader \Windows\Boot\EFI\bootmgfw.efi

如果是使用windows 本身引导作为UEFI的主引导,就将Windows分区这两个文件
      \Windows\Boot\EFI\bootmgfw.efi
      \Windows\Boot\EFI\bcd
    复制到 efi分区
      \efi\boot\bootx64.efi
      \efi\boot\bcd
    注意bootmgfw.efi复制后改名为bootx64.efi。

如果是使用xorboot引导,建议系统类型不要使用 Windows NT 6+ , 直接使用 EFI应用程序,指定文件名为任意磁盘上的 \Windows\Boot\EFI\bootmgfw.efi

如果是通过引导 (Windows分区)\Windows\Boot\EFI\bootmgfw.efi 来启动windows,bootmgfw.efi会先找同分区下的 \Windows\Boot\EFI\bcd ,找不到再找同分区下的 \efi\microsoft\boot\bcd 。
这样每次重装系统只需重建 (Windows分区)\Windows\Boot\EFI\bcd,不需要更新efi分区。
u盘拿到另一台电脑启动windows也是只需在该电脑Windows分区建立 \Windows\Boot\EFI\bcd,不需要更改u盘efi区。

之前所见的uefi引导修复工具大多是针对windows引导,大多是基于bcdboot或bcdedit 。其实主要就是更新bcd文件,因为windows的uefi引导失败基本都是bcd文件与系统不匹配导致的。

附件已更新,如果是MBR硬盘会自动更新bios平台下的BCD,如果新安装的镜像缺少bootmgr会自动补上。

以上附件名可以看出,这是一个引导修复系列,相关的还有:
引导修复_WEE   ---------重建硬盘bios引导(wee)
引导修复_EFI   ---------重建硬盘uefi引导


朱玛12345678 发表于 2019-6-10 23:32:30

前排支持 {:1_186:}

879792799 发表于 2019-6-11 00:17:27

后排支持 {:1_186:}

新空气 发表于 2019-6-11 00:27:41

chishingchan 发表于 2019-6-11 08:17:55

879792799 发表于 2019-6-11 00:17
后排支持

尴尬!这贴你们俩玩了,各评5分!楼主没捞着好处。{:1_201:}

chishingchan 发表于 2019-6-11 08:20:31

编写似我的风格
@echo off
rem 获取管理员权限
%1 mshta vbscript:createobject("shell.application").shellexecute("""%~0""","::",,"runas",1)(window.close)&& exit

rem 设置当前目录为脚本所在目录
cd /d %~dp0

echo.
echo ==================================================
echo本脚本会删除原bcd菜单!!!
echo.
echo如果你原本使用bcd菜单进行多系统引导,请注意备份。
echo.
echo要取消本脚本请关闭此窗口
echo.
echo要继续更新bcd请按任意键...
echo ==================================================
pause>nul

rem 删除旧bcd文件
del bcd

rem 创建新bcd文件
set bcd1=bcd
bcdedit /createstore %bcd1%

rem 创建主菜单入口
bcdedit /store %bcd1% /create {bootmgr}

rem 不显示菜单
bcdedit /store %bcd1% /set {bootmgr} displaybootmenu 0

rem 创建一个菜单项并获取菜单项id
for /f "delims={,} tokens=2" %%a in ('bcdedit /store %bcd1% /create /d "Windows" /application osloader ') do set Guid={%%a}

rem 设置菜单显示顺序
bcdedit /store %bcd1% /displayorder %Guid%

rem 设置引导文件所在分区
bcdedit /store %bcd1% /set %Guid% device partition=c:

rem 设置系统所在分区
bcdedit /store %bcd1% /set %Guid% osdevice partition=c:

rem 设置系统所在文件夹
bcdedit /store %bcd1% /set %Guid% systemroot \windows

rem 操作完成暂停一下以便查看是否出错
pause

chishingchan 发表于 2019-6-11 08:22:32

我也分享一个:双系统菜单修正 XP->10
@echo off
title 修改项目:
echo 修改启动菜单界面(传统文本模式)
echo bcdedit /set {default} bootmenupolicy legacy
echo.
echo 修改项目显示名称:早期版本的 Windows =^> Windows XP
echo bcdedit /set {ntldr} Description "Windows XP"
echo.
echo 修改默认启动项目:Windows 10 =^> Windows XP
echo bcdedit /set {bootmgr} default {ntldr}
echo.
echo 修改菜单显示顺序:最前
echo bcdedit /displayorder {ntldr} /addfirst
echo.
echo 修改菜单默认启动时间:30 =^> 5
echo bcdedit /timeout 5
echo.
echo 按 任意键 开始修改!按 Ctrl+C 取消!&&echo. &&pause>nul 2>nul
bcdedit /set {default} bootmenupolicy legacy
bcdedit /set {ntldr} Description "Windows XP"
bcdedit /set {bootmgr} default {ntldr}
bcdedit /displayorder {ntldr} /addfirst
bcdedit /timeout 8
title 修改完成!
echo.&&echo 按 任意键 退出!&&pause>nul 2>nul

2011npwjm 发表于 2019-6-11 08:35:50

谢谢楼主的分享

studyggm 发表于 2019-6-11 09:25:13

楼书用心,支持了

995070995 发表于 2019-6-11 12:02:11

朱玛12345678 发表于 2019-6-10 23:32
前排支持

大神都在请教一个问题?
MacBook Pro苹果笔记本安装了双系统,想分一个小区放pe系统(不是安装的)
1,怎么样添加pe系统启动项
2,怎么样把pe系统启动项放到苹果笔记本开机启动项上面
3,如图

hilsonma 发表于 2019-6-11 12:20:35

995070995 发表于 2019-6-11 12:02
大神都在请教一个问题?
MacBook Pro苹果笔记本安装了双系统,想分一个小区放pe系统(不是安装的)
1, ...

能不能分享一下把你的启动软件?

995070995 发表于 2019-6-11 12:43:33

hilsonma 发表于 2019-6-11 12:20
能不能分享一下把你的启动软件?

以前用个XorBootUx64
没有其他的启动软件

hilsonma 发表于 2019-6-11 12:59:26

本帖最后由 hilsonma 于 2019-6-11 13:01 编辑

995070995 发表于 2019-6-11 12:43
以前用个XorBootUx64
没有其他的启动软件

就你上传的那个图的,貌似还可以鼠标操作的。
如果你不清楚的话,就把efi分区打包上传,当然如果有镜像文件就不要,只要相关启动文件结构,或者先上传efi分区文件结构图
像我的:(cmd窗口切换到efi分区根目录,输入tree /f >a.txt 再把a.txt的内容贴上来)
文件夹 PATH 列表
卷序列号为 00000087 0C01:107A
F:.
│wepe.wim
│a.txt

└─efi
    ├─boot
    │      bootx64.efi
    │      
    ├─grub
    ││grub.cfg
    ││grubfm.cfg
    ││
    │└─wimboot
    │          bcd
    │          boot.efi
    │          boot.sdi
    │         
    └─microsoft
            bcd
            bootx64.efi
            

995070995 发表于 2019-6-11 13:16:54

hilsonma 发表于 2019-6-11 12:59
就你上传的那个图的,貌似还可以鼠标操作的。
如果你不清楚的话,就把efi分区打包上传,当然如果有镜 ...

ESP分区的,文件大于2m不好上传

hilsonma 发表于 2019-6-11 13:24:48

放到百度网盘再分享链接

995070995 发表于 2019-6-11 13:26:15

cmd窗口切换到efi分区根目录,这个怎么操作?

hilsonma 发表于 2019-6-11 13:33:09

995070995 发表于 2019-6-11 12:43
以前用个XorBootUx64
没有其他的启动软件

我听说有个CLOVER,没有去了解,不知道你的是不是,因为你的是MACBOOK,我想应该是clover,看了你的图片我感兴趣

hilsonma 发表于 2019-6-11 13:35:06

本帖最后由 hilsonma 于 2019-6-11 13:38 编辑

995070995 发表于 2019-6-11 13:26
cmd窗口切换到efi分区根目录,这个怎么操作?

输入 cd /d f:\
假如ESP是F盘的话。是哪个盘就输入哪个字母

既然打包了就上传到百度网盘分享出来吧,有了这两个压缩包我应该可以学到

995070995 发表于 2019-6-11 13:49:07

hilsonma 发表于 2019-6-11 13:35
输入 cd /d f:\
假如ESP是F盘的话。是哪个盘就输入哪个字母



是这个盘吗?

hilsonma 发表于 2019-6-11 13:50:39

995070995 发表于 2019-6-11 13:49
是这个盘吗?

是的

995070995 发表于 2019-6-11 13:52:16

ESP
链接: https://pan.baidu.com/s/1IqEGlmTG-N7ViBssF3wfKA 提取码: mg7e

995070995 发表于 2019-6-11 14:05:40

hilsonma 发表于 2019-6-11 13:50
是的

你看一下我这个esp是什么盘,你给一个完整的命令路径

hilsonma 发表于 2019-6-11 15:16:39

995070995 发表于 2019-6-11 14:05
你看一下我这个esp是什么盘,你给一个完整的命令路径

esp分区一般是隐藏的,没有盘符。需要运行showdrive.exe或mountesp.exe之类的挂载工具后才会分配盘符。
所以在分配盘符之前也没有完整的路径。

879792799 发表于 2019-6-11 23:09:54

chishingchan 发表于 2019-6-11 08:22
我也分享一个:双系统菜单修正 XP->10

求大大详细教程

hilsonma 发表于 2019-6-12 10:06:31

本帖最后由 hilsonma 于 2019-6-12 10:18 编辑

995070995 发表于 2019-6-11 13:52
ESP
链接: https://pan.baidu.com/s/1IqEGlmTG-N7ViBssF3wfKA 提取码: mg7e

看了,大概了解如下:

\EFI\APPLE\EXTENSIONS\Firmware.scap 这个是Clover引导生成的

其余的都是引导windows的相关文件,其实可以简化为这两个:
\EFI\Microsoft\Boot\bootmgfw.efi (这个可能需要复制改名存放一份为 \efi\boot\bootx64.efi)
\EFI\Microsoft\Boot\BCD

由于没有clover的实例,我也没有接触过mac os x ,所以没办法做到你要的引导效果。

我能想到的就是拿 \efi\microsoft\boot\bcd 修改,添加一个引导PE的菜单项。这样每次进windows需要多一次二级菜单等待所以并不令人满意,最好还是象你要求的修改clover添加PE引导,这个我现在做不到。

995070995 发表于 2019-6-12 12:21:32

hilsonma 发表于 2019-6-12 10:06
看了,大概了解如下:

\EFI\APPLE\EXTENSIONS\Firmware.scap 这个是Clover引导生成的


非常感谢,热心回答
但是用优盘pe系统时,在启动界面有U盘的启动项和图标

hilsonma 发表于 2019-6-12 14:10:27

wintoflash 发表于 2019-6-12 12:30
不是clover。那个是水果电脑uefi的设备选择界面。

哦,原来是水果的uefi 自身呀,没有见过,谢谢告知。

hilsonma 发表于 2019-6-12 14:18:10

995070995 发表于 2019-6-12 12:21
非常感谢,热心回答
但是用优盘pe系统时,在启动界面有U盘的启动项和图标

经过wintoflash 的提醒才清楚你的回答是什么情况。
你可以尝试bootice或xorboot之类的工具,用其中的uefi启动序列管理功能,添加uefi启动项。
当然,需要试先准备好启动文件放在esp分区

995070995 发表于 2019-6-13 08:56:43

hilsonma 发表于 2019-6-12 14:18
经过wintoflash 的提醒才清楚你的回答是什么情况。
你可以尝试bootice或xorboot之类的工具,用其中的uef ...

没那么复杂,搞定了。

hilsonma 发表于 2019-6-13 12:59:15

本帖最后由 hilsonma 于 2019-6-13 13:02 编辑

995070995 发表于 2019-6-13 08:56
没那么复杂,搞定了。

分享一下你是怎么做的呀

象我的电脑,插个U盘当然会多个选项,如果不插U盘,好象esp区只认 efi\boot\bootx.efi,不知是不是多做一个fat分区就会多一个选项,我没有再试。
页: [1] 2 3 4 5
查看完整版本: 快速修复UEFI引导(Windows)