[原创](免改BIOS)使用Clover升级旧电脑-(骨灰级)修改Clover的config.plist文件

[简介]
常用网名: 猪头三
出生日期: 1981.XX.XX
QQ: 643439947
个人网站: 80x86汇编小站 https://www.x86asm.org
编程生涯: 2001年~至今[共22年]
职业生涯: 20年
开发语言: C/C++、80x86ASM、PHP、Perl、Objective-C、Object Pascal、C#、Python
开发工具: Visual Studio、Delphi、XCode、Eclipse、C++ Builder
技能种类: 逆向 驱动 磁盘 文件
研发领域: Windows应用软件安全/Windows系统内核安全/Windows系统磁盘数据安全/macOS应用软件安全
项目经历: 磁盘性能优化/文件系统数据恢复/文件信息采集/敏感文件监测跟踪/网络安全检测

[序言]
Clover引导工具虽然都比较自动化了, 但由于电脑硬件种类过于繁多, 所以还是会存在很多兼容性的问题. 比如最常见的就是没有办法找到正确的系统引导分区, 比如Windows, linux, macOS等各种系统. 那么遇到这种情况如何处理呢? 方法肯定有的, 那就是手工配置config.plist文件.

[通过手工配置config.plist文件, 硬性指向正确的Windows启动分区]
废话就不多说了, 马上开始进入主题...

1> 进入文件夹EFI\CLOVER, 找到config.plist, 并用文本编辑器打开
2> 搜索找到<key>#Scan</key>, 并把#去掉, 形成<key>Scan</key>, 表示引导扫描功能开启.
3> 搜索找到<key>GUI</key>之后,往下拉看到<key>#Custom</key>, 这是把#去掉, 形成<key>Custom</key>
4> 仔细看紧接的下面如下代码, 看到这样类似的代码片段, 就根据我下面标注的提示, 进行删除掉.

<key>Custom</key>
<dict>
    <key>Entries</key>
    <array>
        <dict> 
            //由于代码太多, 省略1.... 直接删除
        </dict>
        <dict>
            //由于代码太多, 省略1.... 直接删除
        </dict>
        <dict>
            //由于代码太多, 省略1.... 直接删除
        </dict>
    </array>
    <key>Legacy</key>
    <array>
        <dict>
            <key>Disabled</key>
            <true/>
            <key>Hidden</key>
            <false/>
            <key>Hotkey</key>
            <string>L</string>
            <key>Title</key>
            <string>MyLegacyEntry</string>
            <key>Type</key>
            <string>Windows</string>
            <key>Volume</key>
            <string>89433CD3-21F2-4D3C-95FC-722C48066D3A</string>
        </dict>
    </array>
    <key>Tool</key>
    <array>
        <dict>
            <key>Arguments</key>
            <string>-b</string>
            <key>Disabled</key>
            <false/>
            <key>Hidden</key>
            <false/>
            <key>Hotkey</key>
            <string>S</string>
            <key>Path</key>
            <string>\EFI\CLOVER\TOOLS\Shell64-v1.efi</string>
            <key>Title</key>
            <string>MyCustomShell</string>
            <key>Volume</key>
            <string>D68F1885-571C-4441-8DD5-F14803EFEF54</string>
        </dict>
    </array>
</dict>

5> 按照第4步骤的操作, 删除之后形成的效果如下:

<key>Custom</key>
<dict>
    <key>Entries</key>
    <array>
        // 补全代码
    </array>
    <key>Legacy</key>
    <array>
        <dict>
            <key>Disabled</key>
            <true/>
            <key>Hidden</key>
            <false/>
            <key>Hotkey</key>
            <string>L</string>
            <key>Title</key>
            <string>MyLegacyEntry</string>
            <key>Type</key>
            <string>Windows</string>
            <key>Volume</key>
            <string>89433CD3-21F2-4D3C-95FC-722C48066D3A</string>
        </dict>
    </array>
    <key>Tool</key>
    <array>
        <dict>
            <key>Arguments</key>
            <string>-b</string>
            <key>Disabled</key>
            <false/>
            <key>Hidden</key>
            <false/>
            <key>Hotkey</key>
            <string>S</string>
            <key>Path</key>
            <string>\EFI\CLOVER\TOOLS\Shell64-v1.efi</string>
            <key>Title</key>
            <string>MyCustomShell</string>
            <key>Volume</key>
            <string>D68F1885-571C-4441-8DD5-F14803EFEF54</string>
        </dict>
    </array>
</dict>

6> 完成第5步骤操作之后, 在"补全代码"处 添加如下代码

<dict>
    <key>Disabled</key>
    <false/>
    <key>Hidden</key>
    <false/>
    <key>Image</key>
    <string>os_mageia</string>
    <key>Path</key>
    <string>\EFI\BOOT\BOOTX64.efi</string>
    <key>Title</key>
    <string>Windows 11 PE</string>
    <key>Type</key>
    <string>Windows</string>
    <key>Volume</key>
    <string>A179FB97-2A24-4B69-B96E-7E9CD5A3322C</string>
</dict>

这个代码表示: 当Clover引导进入界面之后, 会在界面上多出一个名为:Boot Microsoft EFI Boot from Windows 11 PE的引导选项.

7> 如果完成了第6步骤的操作, 那么最终效果如下:

<key>Custom</key>
<dict>
    <key>Entries</key>
    <array>
    <dict>
        <key>Disabled</key>
        <false/>
        <key>Hidden</key>
        <false/>
        <key>Image</key>
        <string>os_mageia</string>
        <key>Path</key>
        <string>\EFI\BOOT\BOOTX64.efi</string>
        <key>Title</key>
        <string>Windows 11 PE</string>
        <key>Type</key>
        <string>Windows</string>
        <key>Volume</key>
        <string>A179FB97-2A24-4B69-B96E-7E9CD5A3322C</string>
    </dict>   
    </array>
    <key>Legacy</key>
    <array>
        <dict>
            <key>Disabled</key>
            <true/>
            <key>Hidden</key>
            <false/>
            <key>Hotkey</key>
            <string>L</string>
            <key>Title</key>
            <string>MyLegacyEntry</string>
            <key>Type</key>
            <string>Windows</string>
            <key>Volume</key>
            <string>89433CD3-21F2-4D3C-95FC-722C48066D3A</string>
        </dict>
    </array>
    <key>Tool</key>
    <array>
        <dict>
            <key>Arguments</key>
            <string>-b</string>
            <key>Disabled</key>
            <false/>
            <key>Hidden</key>
            <false/>
            <key>Hotkey</key>
            <string>S</string>
            <key>Path</key>
            <string>\EFI\CLOVER\TOOLS\Shell64-v1.efi</string>
            <key>Title</key>
            <string>MyCustomShell</string>
            <key>Volume</key>
            <string>D68F1885-571C-4441-8DD5-F14803EFEF54</string>
        </dict>
    </array>
</dict>

[现在讲解一下补全代码的每一行意思]

<dict>
    <key>Disabled</key> // 是否禁用当前启动项
    <false/>            // false 表示不禁用
    <key>Hidden</key>   // 是否隐藏当前启动项
    <false/>            // false 表示不隐藏
    <key>Image</key>    // 为启动项设置图标
    <string>os_mageia</string> // 使用默认图标, 名为:os_mageia
    <key>Path</key>     // 设置引导文件路径
    <string>\EFI\BOOT\BOOTX64.efi</string> // Windows引导文件全路径+名字
    <key>Title</key>    // 引导项名称, 用于在引导界面显示的
    <string>Windows 11 PE</string> // 这里命名为Windows 11 PE, 当然根据你喜好可以随便起名字
    <key>Type</key>     // 操作系统类型
    <string>Windows</string> // 这里是Windows
    <key>Volume</key>   // 启动分区的卷名, 其实就是存放引导文件的分区
    <string>A179FB97-2A24-4B69-B96E-7E9CD5A3322C</string> // 启动分区的唯一标识符. (这个很重要, 下一节教你如何获取)
</dict>

[如何获取启动分区的唯一标识符]
这个是非常重要的, 因为Clover引起要启动一个操作系统, 是以来搜索启动分区来处理的. 如果你是手工指定的话, 就要自己去把启动分区对应的唯一标识符提取出来. 方式如下:

1> 根据我的第一篇文章成功安装Clover引导并进入引导界面之后, 移动光标至左下角第一个图标(文章的结尾会附上图片), 它会显示名称为: Start UEFI Shell 64
2> 进入"Start UEFI Shell 64"之后,就是一个黑黑的命令提示框, 然后输入 map > map_log.txt 这时map_log.txt会被生成在某个分区的根目录下.
   备注: 如果你不想生成文件, 也可以通过 map -b 命令, 通过翻页的形式进行查找.
3> 然后输入: exit 命令退出黑黑的命令提示框, 重新引导Windows系统
4> 然后一个一个分区去找, 在某个分区的根目录会有map_log.txt这个文件, 然后用文本编辑器打开, 得到如下内容(注意这个内容每个机器不一样的):

Mapping table
      FS2: Alias(s):HD1e0e0b:;BLK7:
          PciRoot(0x0)/Pci(0x15,0x1)/Pci(0x0,0x0)/USB(0x4,0x0)/USB(0x4,0x0)/HD(1,MBR,0x0070105A,0x3F,0x64000)
      FS0: Alias(s):HD0d65535a2:;BLK2:
          PciRoot(0x0)/Pci(0x11,0x0)/Sata(0x3,0xFFFF,0x0)/HD(2,GPT,3A857A4A-94E3-452D-B1C1-3A1B0B316259,0x8000,0x96000)
      FS1: Alias(s):HD0d65535a5:;BLK5:
          PciRoot(0x0)/Pci(0x11,0x0)/Sata(0x3,0xFFFF,0x0)/HD(5,GPT,A179FB97-2A24-4B69-B96E-7E9CD5A3322C,0x37866800,0x5DC000)
      FS3: Alias(s):HD2b:;BLK10:
          PciRoot(0x0)/Pci(0x3,0x0)/Pci(0x0,0x0)/NVMe(0x1,9A-47-B3-11-59-38-25-00)/HD(1,GPT,11416C46-6A57-4FC3-B21F-33AF2BA3766A,0x800,0x32000)
     BLK6: Alias(s):
          PciRoot(0x0)/Pci(0x15,0x1)/Pci(0x0,0x0)/USB(0x4,0x0)/USB(0x4,0x0)
     BLK8: Alias(s):
          PciRoot(0x0)/Pci(0x15,0x1)/Pci(0x0,0x0)/USB(0x4,0x0)/USB(0x4,0x0)/HD(2,MBR,0x0070105A,0x6403F,0x1CE1FC1)
     BLK0: Alias(s):
          PciRoot(0x0)/Pci(0x11,0x0)/Sata(0x3,0xFFFF,0x0)
     BLK1: Alias(s):
          PciRoot(0x0)/Pci(0x11,0x0)/Sata(0x3,0xFFFF,0x0)/HD(1,GPT,D69A03EF-6BB4-422F-8826-7CBECBCBB8AE,0x22,0x7FDE)
     BLK3: Alias(s):
          PciRoot(0x0)/Pci(0x11,0x0)/Sata(0x3,0xFFFF,0x0)/HD(3,GPT,11C70982-7A7D-4741-99CD-612DC5419F6F,0x9E000,0x1388000)
     BLK4: Alias(s):
          PciRoot(0x0)/Pci(0x11,0x0)/Sata(0x3,0xFFFF,0x0)/HD(4,GPT,8E63086E-E02A-47B5-AACF-568A4C1824EA,0x1426000,0x36440800)
     BLK9: Alias(s):
          PciRoot(0x0)/Pci(0x3,0x0)/Pci(0x0,0x0)/NVMe(0x1,9A-47-B3-11-59-38-25-00)
    BLK11: Alias(s):
          PciRoot(0x0)/Pci(0x3,0x0)/Pci(0x0,0x0)/NVMe(0x1,9A-47-B3-11-59-38-25-00)/HD(2,GPT,C8CD8CF9-BE1D-4DD7-A0E7-61C7D9139D1A,0x32800,0x8000)
    BLK12: Alias(s):
          PciRoot(0x0)/Pci(0x3,0x0)/Pci(0x0,0x0)/NVMe(0x1,9A-47-B3-11-59-38-25-00)/HD(3,GPT,C84330C4-A1AD-454A-A5D4-74B77356CBF4,0x3A800,0x3A1A8A7D)
    BLK13: Alias(s):
          PciRoot(0x0)/Pci(0x3,0x0)/Pci(0x0,0x0)/NVMe(0x1,9A-47-B3-11-59-38-25-00)/HD(4,GPT,D12D9342-A6C6-4CDA-9197-42B8BA561B8C,0x3A1E3800,0x1A1800)

5> 看到上面内容不要惊慌, 只需要关注有FS前缀就行了, 因为FS表示包含有引导文件的分区. 上面表示有FS0 FS1 FS2 FS3. 这4个FS行, 都对应有一串GUI字符, 这就是启动分区的唯一标识符. 

FS0 对应 3A857A4A-94E3-452D-B1C1-3A1B0B316259
FS1 对应 A179FB97-2A24-4B69-B96E-7E9CD5A3322C
FS2 对应 0x0070105A (这个有点特殊, 因为他是U盘)
FS3 对应 11416C46-6A57-4FC3-B21F-33AF2BA3766A

[如何区分哪个是你要的启动分区标识符呢]

方法1: FS行内容是否包含有/HD /NVMe的就行了, /USB的基本排除, 因为/USB表示U盘启动
方法2: 通过上面的过滤,剩下就是 FS0 FS1 FS3了. 这时需要重启Windows系统再次进入Clover界面选择"Start UEFI Shell 64"进入, 在黑黑的命令提示框, 输入 FS0 或者 FS1 或者 FS3, 然后回车, 就可以进入对应的启动分区了, 然后通过ls命令列出分区里面的文件并查看, 只能通过这样原始的方式来判断是不是你想要的目标启动分区.

其实我也是按照上面的2个方法来确定的, 最终确定我想要的启动分区是 FS3 对应 11416C46-6A57-4FC3-B21F-33AF2BA3766A

[总结]
这篇文章的内容比较多, 也繁琐, 你们在按照内容去摸索的时候, 要多操作几次, 才会找到感觉. 一开始会比较生疏, 不要着急, 多折腾几次就熟悉了. 最后希望这篇文章对大家有帮助. 目前Clover引导工具的玩法, 也介绍完了. 因为平时我用到的维护技术也就是这些, 没有其他太过于深奥的东西的了. Clover引导工具是很强大的, 需要慢慢体会, 比如装黑苹果, 装多操作系统并存, 它是最佳的选择.

[关于Clover的UEFI Shell 64界面]

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/191502.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Grabcut算法在图片分割中的应用

GrabCut算法原理 Grabcut是基于图割(graph cut)实现的图像分割算法&#xff0c;它需要用户输入一个bounding box作为分割目标位置&#xff0c;实现对目标与背景的分离/分割&#xff0c;与KMeans与MeanShift等图像分割方法不同。 Grabcut分割速度快&#xff0c;效果好&#xff0…

关于微服务的思考

目录 什么是微服务 定义 特点 利弊 引入时机 需要哪些治理环节 从单体架构到微服务架构的演进 单体架构 集群和垂直化 SOA 微服务架构 如何实现微服务架构 服务拆分 主流微服务解决方案 基础设施 下一代微服务架构Service Mesh 什么是Service Mesh&#xff1f…

ElasticSearch学习笔记(狂神说)

ElasticSearch学习笔记&#xff08;狂神说&#xff09; 视频地址&#xff1a;https://www.bilibili.com/video/BV17a4y1x7zq 在学习ElasticSearch之前&#xff0c;先简单了解一下Lucene&#xff1a; Doug Cutting开发是apache软件基金会 jakarta项目组的一个子项目是一个开放…

4面试题--数据库(补充)

隔离性问题 若不考虑隔离性则会出现以下问题 1. 脏读&#xff1a;指⼀个事务在处理数据的过程中&#xff0c;读取到另⼀个 未提交 事务的数据 2. 不可重复读&#xff1a;指对于数据库中的某个数据&#xff08;同⼀个数据项&#xff09;&#xff0c;⼀个事务内的多次查询却…

ICPC合肥退役小记

退役了。 现在我坐在合肥回济南的高铁上&#xff0c;外面天都黑了&#xff0c;刚刚刷小红书刷到一句话&#xff0c;“后来啊&#xff0c;一个清晨&#xff0c;大雾散尽&#xff0c;不止清晨&#xff0c;不止大雾”。 遗憾必然是有的。从大一开始每天熬夜刷题打cf…

电子学会C/C++编程等级考试2021年09月(三级)真题解析

C/C++等级考试(1~8级)全部真题・点这里 第1题:余数相同问题 已知三个正整数 a,b,c。 现有一个大于1的整数x,将其作为除数分别除a,b,c,得到的余数相同。 请问满足上述条件的x的最小值是多少? 数据保证x有解。输入: 一行,三个不大于1000000的正整数a,b,c,两个整数…

Linux系统---僵尸进程、孤儿进程

顾得泉&#xff1a;个人主页 个人专栏&#xff1a;《Linux操作系统》 《C/C》 键盘敲烂&#xff0c;年薪百万&#xff01; 有了上一篇博客的学习&#xff0c;我们已经简单了解了进程的基础知识&#xff0c;今天我们再来学习两个特殊的进程&#xff0c;僵尸进程和孤儿进程。 …

【虚拟机】在VM中安装 CentOS 7

1.2.创建虚拟机 Centos7是比较常用的一个Linux发行版本&#xff0c;在国内的使用比例还是比较高的。 大家首先要下载一个Centos7的iso文件&#xff0c;我在资料中给大家准备了一个mini的版本&#xff0c;体积不到1G&#xff0c;推荐大家使用&#xff1a; 我们在VMware《主页》…

【docker系列】docker高阶篇

&#x1f49d;&#x1f49d;&#x1f49d;欢迎来到我的博客&#xff0c;很高兴能够在这里和您见面&#xff01;希望您在这里可以感受到一份轻松愉快的氛围&#xff0c;不仅可以获得有趣的内容和知识&#xff0c;也可以畅所欲言、分享您的想法和见解。 推荐:kwan 的首页,持续学…

主机怎么通过命令行方式向虚拟机传输文件

这是几个月前遇到的问题了&#xff0c;那时候想着要记录下来&#xff0c;但后来忙忘了&#xff0c;这次想起来了&#xff0c;于是记录一下。 之前打靶场的时候需要将netcat-win32-1.12放入虚拟机的/var/www/html下&#xff0c;但是我虚拟机无法上网&#xff0c;也就是说无法直…

【算法】装备合成(二分)

链接&#xff1a;登录—专业IT笔试面试备考平台_牛客网 来源&#xff1a;牛客网 题目描述 牛牛有x件材料a和y件材料b&#xff0c;用2件材料a和3件材料b可以合成一件装备&#xff0c;用4件材料a和1件材料b也可以合成一件装备。牛牛想要最大化合成的装备的数量&#xff0c;于是…

TPLink-Wr702N 通过OpenWrt系统打造打印服务器实现无线打印

最近淘到了一个TPLink-Wr702N路由器&#xff0c;而且里面已经刷机为OpenWrt系统了&#xff0c;刚好家里有一台老的USB打印机&#xff0c;就想这通过路由器将打印机改为无线打印机&#xff0c;一番折腾后&#xff0c;居然成功了&#xff0c;这里记录下实现过程&#xff0c;为后面…

【第二部分:结构】ARM Realm Management Monitor specification

目录 概念Realm概述Realm执行环境Realm寄存器Realm内存Realm处理器功能IMPDEF系统寄存器 Realm属性Realm活性Realm生命周期状态状态转换 Realm参数Realm描述符 颗粒Granule颗粒属性颗粒所有权颗粒生命周期状态状态转换颗粒抹除 Realm执行上下文概述REC属性REC指数和MPIDR值REC生…

8.前端--CSS-文本属性【2023.11.26】

CSS Text&#xff08;文本&#xff09;属性可定义文本的外观&#xff0c;比如文本的颜色、对齐文本、修饰文本、文本缩进、行间距等 1.文本颜色 color 属性用于定义文本的颜色。 语法&#xff1a; div { color: red; }属性&#xff1a; 2.文本对齐 text-align 属性用于设置元…

阿里云MQTT: 子设备上线流程

0. 背景 阿里云网关子设备上平台的资料很少。有些厂家直接配置每个子设备的DeviceSecret到网关里&#xff0c;显然太麻烦了&#xff01;我经过阅读阿里文档&#xff0c;发现有些简化的方法&#xff0c;更便于客户使用&#xff0c;因此分享给大家。 1. 主要信息片段 子设备 $…

Spring RabbitMQ那些事(2-两种方式实现延时消息订阅)

目录 一、序言二、死信交换机和消息TTL实现延迟消息1、死信队列介绍2、代码示例(1) 死信交换机配置(2) 消息生产者(3) 消息消费者 3、测试用例 三、延迟消息交换机实现延迟消息1、安装延时消息插件2、代码示例(1) 延时消息交换机配置(2) 消息生产者(3) 消息消费者 3、测试用例 …

C语言:有一篇文章,共三行文字,每行有80个字符。要求分别统计出单词个数、空格数。

分析&#xff1a; #include<stdio.h>&#xff1a;这是一个预处理指令&#xff0c;将stdio.h头文件包含到程序中&#xff0c;以便使用输入输出函数。 int main()&#xff1a;这是程序的主函数&#xff0c;是程序执行的入口点。 char a[3][80];&#xff1a;定义了一个二维…

Java之API(上):Boolean

一、前言&#xff1a; 上次我们将到了 java.lang.* 下的包装类&#xff1a;Integer。这次我讲一下基本数据类型中的&#xff1a;布尔型&#xff08;boolean&#xff09;对应的包装类&#xff08;Boolean&#xff09;。注意&#xff1a;还有对包装类&#xff1a;Integer进行一些…

PCIE链路训练-状态机描述4

Recovery Recovery.RcvrLock &#xff08;1&#xff09;如果link是在8.0GT/s或以上的速率工作&#xff0c;那么rx只会认为当前lane获得Block alignment之后收到的TS0&#xff0c;TS1&#xff0c;TS2是有效的。如果进入当前状态是从L1或recovery.speed或L0s&#xff0c;获取Blo…

redis报错3

INFO: Initializing SpringDispatcherServletdispatcherServlet