某个逗比安装完MacOS之后吧U盘弄丢了,然后还进Windows吧Windows的引导项给给删除了,并且无法进入BIOS设置 [服气.jpg]
唯一令人欣慰的是Clover还能正常引导MacOS。
这个现象和以前玩GRUB吧BIOS玩炸是一样的,PE修复引导即可。
问题是这货吧唯一的U盘给丢了……
思路一:使用clover自带的 UEFI SHELL 修复引导
查了一晚上的资料,这个shell在我手里基本残废无法进行引导修复。
思路二:把PE写在硬盘,使用PE修复引导
我使用的PE镜像 下载地址 厚码: l3t0
相关文件说明
文件名 | 作用 | 备注 |
---|---|---|
BOOTX64.EFI | UEFI默认引导程序 | 实际上就是 bootmgfw.efi |
bootmgfw.efi | 默认引导文件 | |
bootmgr.efi | 默认引导文件 | 用于U盘引导 |
BCD | 引导配置文件 | 该文件记录了操作系统的分区记录,不建议手动修改 |
/WEPE/WEPE.SDI | 映像加载程序 | |
/WEPE/WEPE64.WIM | PE映像文件 | |
/WEPE/B64 | 实际上就是BCD | BCD不小心丢了复制他改名即可 |
Windows启动流程
- 开始引导后会调用
bootmgfw.efi
,然后读取同目录的BCD
- 读取EFI/MICROSOFT/Boot/的BCD……(好蛋疼的设计)
- BCD根据记录的UUID值开始加载Windows
不得不说Windows很霸道,直接替换了UEFI的BOOTX64.EFI,假装自己遵循UEFI规范。
然后自己在BIOS强制注册使用bootmgfw.efi……
开搞
1. 使用磁盘工具创建一个空分区
分区格式:FAT32
!
分区大小:比你的PE略大20M左右。
分区位置:随意,不一定要在磁盘首。
我这里直接使用我的文件交换分区做实验理论上
FAT16
也可以旧版的WindowsESP
分区也是FAT16
格式
2. 将PE中的内容复制到刚创建的分区
这里的PE可以随意,我这里找了一个仅有200M的WEPE(it天空的U启实在太大了……)
3. 检查文件/文件夹
-
bootmgr.efi
/bootmgfw.efi
(二选一)
这个是Windows通用的启动程序,存在于/EFI/MICROSOFT/BOOT
中,若没有原来的ESP
分区复制一个过来,Windows安装镜像中也有。
保险起见我两个都复制了。
-
BCD
BCD
现在应该和bootmgr.efi
在同级目录 -
EFI
文件夹
我也不知道为啥没有这个EFI文件夹clover就无法扫描到,添加自定义引导项目也不行。
我最终的目录树是这样的
HSAWP
├── EFI
│ └── MICROSOFT
│ └── BOOT
│ ├── BCD //注意检查该文件是否存在
│ ├── BOOTMGR
│ ├── bootmgfw.efi //还有这货
│ └── bootmgr.efi
└── WEPE
├── B64
├── MESSAGE
├── PELOAD
├── WALLPAPER.JPG //壁纸文件
├── WEIPE
├── WEPE.INI //PE配置文件
├── WEPE.SDI
├── WEPE.TXT //说明文件
├── WEPE64
└── WEPE64.WIM
EFI 下的BOOT没用被我删了。
-
重启
emm熟悉的界面
后续
1. 使用完后多一个引导项影响心情?
clover Config设置直接隐藏即可
对应的config.plist变化
<key>Hide</key>
<array>
<string>Preboot</string>
<string>Recovery</string>
<string>HSAWP</string> //添加这一项,只要填写Title就好了。
</array>
2. 文件检查无误仍然无法被Clover扫描到
手动创建引导项目即可。
注意几点
- 路径请填写
bootmgr.efi
或者bootmgfw.efi
的绝对路径
如/EFI/MICROSOFT/BOOT/bootmgr.efi
- 类型选择
Windows
-
磁盘UUID要写对(图中选中的就是)
创建自定义条目
对应的config.plist变化
在GUI
的dict
下添加了以下代码
<key>Custom</key>
<dict>
<key>Entries</key>
<array>
<dict>
<key>Disabled</key>
<false/>
<key>FullTitle</key>
<string>HSAWP</string>
<key>Hidden</key>
<true/>
<key>Ignore</key>
<false/>
<key>Path</key>
<string>/bootmgr.efi</string>
<key>Type</key>
<string>Windows</string>
<key>Volume</key>
<string>3B0342BB-9819-4046-93EF-8F99B74C3A27</string> //这里要换成你自己分区的UUID
</dict>
</array>
</dict>
网友评论