快速修复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引导
前排支持 {:1_186:} 后排支持 {:1_186:} 879792799 发表于 2019-6-11 00:17
后排支持
尴尬!这贴你们俩玩了,各评5分!楼主没捞着好处。{:1_201:} 编写似我的风格
@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 我也分享一个:双系统菜单修正 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
谢谢楼主的分享 楼书用心,支持了 朱玛12345678 发表于 2019-6-10 23:32
前排支持
大神都在请教一个问题?
MacBook Pro苹果笔记本安装了双系统,想分一个小区放pe系统(不是安装的)
1,怎么样添加pe系统启动项
2,怎么样把pe系统启动项放到苹果笔记本开机启动项上面
3,如图
995070995 发表于 2019-6-11 12:02
大神都在请教一个问题?
MacBook Pro苹果笔记本安装了双系统,想分一个小区放pe系统(不是安装的)
1, ...
能不能分享一下把你的启动软件? hilsonma 发表于 2019-6-11 12:20
能不能分享一下把你的启动软件?
以前用个XorBootUx64
没有其他的启动软件 本帖最后由 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
hilsonma 发表于 2019-6-11 12:59
就你上传的那个图的,貌似还可以鼠标操作的。
如果你不清楚的话,就把efi分区打包上传,当然如果有镜 ...
ESP分区的,文件大于2m不好上传
放到百度网盘再分享链接 cmd窗口切换到efi分区根目录,这个怎么操作?
995070995 发表于 2019-6-11 12:43
以前用个XorBootUx64
没有其他的启动软件
我听说有个CLOVER,没有去了解,不知道你的是不是,因为你的是MACBOOK,我想应该是clover,看了你的图片我感兴趣 本帖最后由 hilsonma 于 2019-6-11 13:38 编辑
995070995 发表于 2019-6-11 13:26
cmd窗口切换到efi分区根目录,这个怎么操作?
输入 cd /d f:\
假如ESP是F盘的话。是哪个盘就输入哪个字母
既然打包了就上传到百度网盘分享出来吧,有了这两个压缩包我应该可以学到 hilsonma 发表于 2019-6-11 13:35
输入 cd /d f:\
假如ESP是F盘的话。是哪个盘就输入哪个字母
是这个盘吗? 995070995 发表于 2019-6-11 13:49
是这个盘吗?
是的 ESP
链接: https://pan.baidu.com/s/1IqEGlmTG-N7ViBssF3wfKA 提取码: mg7e hilsonma 发表于 2019-6-11 13:50
是的
你看一下我这个esp是什么盘,你给一个完整的命令路径 995070995 发表于 2019-6-11 14:05
你看一下我这个esp是什么盘,你给一个完整的命令路径
esp分区一般是隐藏的,没有盘符。需要运行showdrive.exe或mountesp.exe之类的挂载工具后才会分配盘符。
所以在分配盘符之前也没有完整的路径。 chishingchan 发表于 2019-6-11 08:22
我也分享一个:双系统菜单修正 XP->10
求大大详细教程 本帖最后由 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引导,这个我现在做不到。 hilsonma 发表于 2019-6-12 10:06
看了,大概了解如下:
\EFI\APPLE\EXTENSIONS\Firmware.scap 这个是Clover引导生成的
非常感谢,热心回答
但是用优盘pe系统时,在启动界面有U盘的启动项和图标 wintoflash 发表于 2019-6-12 12:30
不是clover。那个是水果电脑uefi的设备选择界面。
哦,原来是水果的uefi 自身呀,没有见过,谢谢告知。 995070995 发表于 2019-6-12 12:21
非常感谢,热心回答
但是用优盘pe系统时,在启动界面有U盘的启动项和图标
经过wintoflash 的提醒才清楚你的回答是什么情况。
你可以尝试bootice或xorboot之类的工具,用其中的uefi启动序列管理功能,添加uefi启动项。
当然,需要试先准备好启动文件放在esp分区 hilsonma 发表于 2019-6-12 14:18
经过wintoflash 的提醒才清楚你的回答是什么情况。
你可以尝试bootice或xorboot之类的工具,用其中的uef ...
没那么复杂,搞定了。
本帖最后由 hilsonma 于 2019-6-13 13:02 编辑
995070995 发表于 2019-6-13 08:56
没那么复杂,搞定了。
分享一下你是怎么做的呀
象我的电脑,插个U盘当然会多个选项,如果不插U盘,好象esp区只认 efi\boot\bootx.efi,不知是不是多做一个fat分区就会多一个选项,我没有再试。
