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

news2024/11/28 4:46:26

[简介]
常用网名: 猪头三
出生日期: 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界面]

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

AIGC ChatGPT 4 快速整理不规则数据

从业务系统中采集到的数据如下: 序号 省份 英文 2022年销售额 2021年销售额 增量 1 广东guangDOng129068.58 124319.67 4748.91 2 江苏 JiangSu 122825.6 116314.2 6511.4 3 山东ShAnDong 87385 83045.9 4339.1 4 浙江…

云匣子 FastJson反序列化RCE漏洞复现

0x01 产品简介 云匣子是租户连接云资源的安全管理工具&#xff0c;帮助云租户更加安全、精细的管理云上的虚拟机、数据库等资源。 云安宝结合多年的运维和安全实践&#xff0c;将云上的运维和安全有机结合&#xff0c;实现对运维过程的事前规划、事中控制和 事后审计。在此之上…

部署Jenkins

一、介绍 Jenkins 、Jenkins概念 Jenkins是一个功能强大的应用程序&#xff0c;允许持续集成和持续交付项目&#xff0c;无论用的是什么平台。这是一个免费的源代码&#xff0c;可以处理任何类型的构建或持续集成。集成Jenkins可以用于一些测试和部署技术。Jenkins是一种软件允…

大语言模型损失函数详解

我们可以把语言模型分为两类&#xff1a; 自动回归式语言模型&#xff1a;自动回归式语言模型在本质上是单向的&#xff0c;也就是说&#xff0c;它只沿着一个方向阅读句子。正向&#xff08;从左到右&#xff09;预测&#xff1b;反向&#xff08;从右到左&#xff09;预测。…

Qt4利用MVC开发曲线数据编辑器

目录 1 需求 2 开发流程 1 搭建框架 2 构造函数 3 打开工程 4 实现应用程序参数加载 5 QCustomPlot和TableView的联动 6 数据的可视化修改 7 列表点击事件事先键盘控制 8 表格实现复制&#xff0c;粘贴&#xff0c;删除等一系列功能 9 曲线实现自适应范围和统一范围…

【Web】攻防世界Web_php_wrong_nginx_config

这题考察了绕过登录、目录浏览、后门利用 进来先是一个登录框&#xff0c;随便怎么输前端都直接弹窗 禁用js后再输入后登录 查看源码&#xff0c;好家伙&#xff0c;不管输什么都进不去 直接扫目录 访问/robots.txt 访问/hint.php 访问/Hack.php 抓包看一下 cookie里isLogin0…

【JAVA学习笔记】71 - JDBC入门

项目代码 https://github.com/yinhai1114/Java_Learning_Code/tree/main/IDEA_Chapter25/src/com/yinhai/dao_ 一、JDBC概述 1.基本介绍 1. JDBC为访问不同的数据库提供了统一的接口&#xff0c;为使用者屏蔽了细节问题。 2. Java程序员使用JDBC,可以连接任何提供了JDBC驱动…

菜单的hover不同动画背景

CSS常用示例100专栏目录 本专栏记录的是经常使用的CSS示例与技巧&#xff0c;主要包含CSS布局&#xff0c;CSS特效&#xff0c;CSS花边信息三部分内容。其中CSS布局主要是列出一些常用的CSS布局信息点&#xff0c;CSS特效主要是一些动画示例&#xff0c;CSS花边是描述了一些CSS…

虚拟化逻辑架构: LBR 网桥基础管理

目录 一、理论 1.Linux Bridge 二、实验 1.LBR 网桥管理 三、问题 1.Linux虚拟交换机如何增删 一、理论 1.Linux Bridge Linux Bridge&#xff08;网桥&#xff09;是用纯软件实现的虚拟交换机&#xff0c;有着和物理交换机相同的功能&#xff0c;例如二层交换&#…

IT问题解答类型网站源码

问答网是一款为IT工程师提供的问答平台&#xff0c;旨在帮助用户在线获取专业知识和相关问题的答案。在问答网&#xff0c;用户可以轻松找到其他人的问答问题&#xff0c;并在这里寻求解答。如果您有任何想要解决的问题&#xff0c;都可以在此发布问题并得到其他同行的解答。 …

YARN工作流程详解

图1 图2 图1 -作业提交阶段&#xff1a; 1、client 提交job,向 ResourceManager【RM】 申请job_id; 2、RM 返回 job_id 及资源提交路径 给 client 3、client 把job所需的资源提交 到 3中指定的路径中 4、client 上传完成资源后&#xff0c;向RM 发送执行作业请求&#xff0c;RM…

React中通过children prop或者React.memo来优化子组件渲染【react性能优化】

文章目录 前言未优化之前的代码问题解决方案一&#xff0c;通过children prop解决方案二&#xff0c;通过React.memo后言 前言 hello world欢迎来到前端的新世界 &#x1f61c;当前文章系列专栏&#xff1a;react.js &#x1f431;‍&#x1f453;博主在前端领域还有很多知识和…

1.9 字符数组

1.9 字符数组 一、字符数组概述二、练习 一、字符数组概述 所谓字符数组&#xff0c;就是char类型的数组&#xff0c;比如 char a[]&#xff0c;是C语言中最常用的数组类型&#xff0c;先看一个程序 #include <stdio.h> #define MAXLINE 1000 //最大行长度限制 int get…

Telesquare TLR-2005Ksh 路由器 RCE漏洞复现

0x01 产品简介 Telesquare Tlr-2005Ksh是韩国Telesquare公司的一款 Sk 电讯 Lte 路由器。 0x02 漏洞概述 Telesquare TLR-2005Ksh存在安全漏洞&#xff0c;未经授权的攻击者可通过setSyncTimeHost执行任意命令获取服务器权限。 0x03 复现环境 FOFA&#xff1a;app"TELE…

Windows开启SQL Server服及1433端口

需求&#xff1a;Windows开启SQL Server服务及1433端口 目前端口没有启动 解决&#xff1a; 打开SQL Server配置管理器&#xff08;winR&#xff09; 各个sqlserver版本在textbox中输入对应的命令如下&#xff1a; SQLServerManager15.msc&#xff08;对于 SQL Server 2019 &am…

序列化基础

1、简介 对象序列化的目标是将对象保存到磁盘中&#xff0c;或允许在网络中直接传输对象。它允许把内存中的 Java 对象转换成平台无关的二进制流&#xff08;序列化&#xff0c;也称编码&#xff09;&#xff0c;并持久地保存在磁盘上或通过网络把这种二进制流传输到另一个网络…

2023年第十六届山东省职业院校技能大赛中职组“网络安全”赛项竞赛正式试题

第十六届山东省职业院校技能大赛中职组 “网络安全”赛项竞赛试题 目录 一、竞赛时间 二、竞赛阶段 三、竞赛任务书内容 &#xff08;一&#xff09;拓扑图 &#xff08;二&#xff09;A模块基础设施设置/安全加固&#xff08;200分&#xff09; &#xff08;三&#xf…

【学习记录】从0开始的Linux学习之旅——驱动模块编译与加载

一、概述 Linux操作系统通常是基于Linux内核&#xff0c;并结合GNU项目中的工具和应用程序而成。Linux操作系统支持多用户、多任务和多线程&#xff0c;具有强大的网络功能和良好的兼容性。本文主要讲述如何编译及加载linux驱动模块。 二、概念及原理 应用程序通过系统调用与内…

【C/C++】如何不使用 sizeof 求数据类型占用的字节数

实现代码&#xff1a; #include <stdio.h>#define GET_TYPE_SIZE(TYPE) ((char *)(&TYPE 1) - (char *) & TYPE)int main(void) {char a a;short b 0;int c 0;long d 0;long long e 0;float f 0.0;double g 0.0;long double h 0.0;char* i NULL;print…

STK Components 二次开发-创建地面站

1.地面站只需要知道地面站的经纬高。 // Define the location of the facility using cartographic coordinates.var location new Cartographic(Trig.DegreesToRadians(-75.596766667), Trig.DegreesToRadians(40.0388333333), 0.0); 2.创建地面站 创建方式和卫星一样生成对…