单盘 多系统 自定义启动盘名称图标 及系统安装说明 ThinkPad E430 OpenCore + Clover
本帖最后由 SteVeNDraGoN 于 2021-9-1 18:11 编辑由于文章不能反复重复编辑,麻烦版主帮忙删帖 https://bbs.pcbeta.com/viewthread-1902012-1-1.html 我重新开贴整理后新开标题发文了。
文本重点:
单盘 多系统 EFI 分别管理 自定义启动盘 获取正确系统引导文件路径 自定义启动盘名称和图标
让 macOS Big Sur 及 macOS Monterey 告别 启动界面 Preboot 盘
先上图看下效果
Clover 自定义启动盘 注意这里显示的不是 Preboot 并且 Win7 Win10 双显示并且显示在 macOS Big Sur 系统前面
OpenCore 自定义启动盘:
正文开始
这篇分享主要说以下几个事:
1 单盘多系统,EFI 分别放置
2 OpenCore 和 Clover 自定义启动盘 指定正确的启动盘路径 指定自定义启动盘图标 并且指定启动盘名字
3 多系统时 Win 系统下 设备管理器 里的设备出现 感叹号 标志以及 Opencore 启动后重启系统时 Bios 报 0251:System CMOS checksum bad (系统 CMOS 效验和错误) 的问题。
Win7 设备管理器里没设备有感叹号标志
Win10 设备管理器里没设备有感叹号标志
Win7 Win 10 单独放置的 EFI 文件以及 OpenCore 下自定启动盘符后自定义盘图标的文件
先说我系统的环境,笔记本 ThinkPad E430 独显+核显 具体配置网上能查到,这里不详说了。
装了三个系统 Win7+Win10+macOS Big Sur 理论上这个 EFI 也是支持 macOS Monterey 前两天我装过,并且试着用补丁打了 HD4000 显卡的驱动,驱动是打上了,但经常自动重启,估计是测试版系统问题,这个等系统出正式版再说了。
纯 GPT 分区 单盘 多系统 EFI 方面 macOS 的引导利用主 EFI 分区里的 EFI 来引导,Win7 和 Win10 的引导 EFI 单独放到 Win7 Win10 根目录下,并删除了各自 EFI 目录里的 boot 目录。
好处是:1 互不干扰方便管理 2 Win7 启动界面那小球动画可以保持原生,而不会变成 Vista 那种滚动条,这里如果把三个系统的 EFI 放在一起来管理,并且利用 Win10 的 BCD 文件去管理并启动 Win7,Win7 启动时那个小球动画就会变成 Vista 滚动条那种。当然 Win7 Win10 的 EFI 也可以放在主 EFI 分区下 混合管理,但会有刚才说的这种问题,所以我分开管理了。
简单总结下上面这段:3 个系统,纯 GPT 分区,这里不要用 MBR 分区 或者 MBR+GPT 混合分区那种方式,后续麻烦一堆。EFI 分别放置,这么做也为后续 OpenCore Clover 自定义启动盘时自定义启动盘图标带来点方便,这个后续再说。
第一部分:系统安装
系统安装,随便先装哪个,顺序无所谓,Win7 Win10 首次安装时也不用先备份 EFI ,如果这块遇到问题,去虚拟机里装一个 UEFI 分区的 Win7 Win10 把里面的 EFI 提取出来 无法启动的话 去修改下提取出来的文件夹里的 BCD 文件里的启动盘路径就可以了。
安装 macOS 时记得用最少的驱动去装 原则是想办法先把系统装上再去玩驱动方面补丁方面的配置。这里我假设你们系统都装上了,然我我们开始进入正题了。
OpenCore 和 Clover 其它方面的具体设置我就不多讲了,原则是,能不设置的尽量不设置,只要保证系统先跑起来就行。我后续会说说关于自定义启动盘这方面的设置。具体提到那个时再详说。
系统装好后开始给 macOS 打驱动。这里我用的是老版本的 MaciASL v1.31 原因是更新版本的编译 Thinkpad E430 的 aml 文件会遇到一堆错误,老版本的基本直接编译通过。
ThinkPad E430 的 macOS 打的补丁如下:基本都是打的 RehabMan 的补丁
电池补丁方面:
1 Lenovo E430-E540 这个是 E430 的电池补丁
2 Fix Mutex with non-zero SyncLevel 这个也是电池方面的补丁,主要用于编译拆分子节。具体作用 可以去看 派奇 e430 补丁里提到的:
# 注意:如果打过电量补丁后,有获取的电池状态显示为0%的情况,还需要打 Rehabman的 “Fix Mutex with non-zero SyncLevel” 补丁。
显卡方面:
1 HD4000 Low Resolution 这个是显卡补丁
2 Brightness fix (HD3000-HD4000) 亮度调节方面的补丁
声卡方面:
1 先去打 Sourceforge 打 Insert DTGP 补丁,
2 然后去打 RehabMan 的 IRQ Fix 补丁,
3 然后去手动补下声卡补丁代码
MaciASL 里搜索 hdef 总共有两个,这里找到第二个处,也就是 _SB.PCI0 分枝下这个,代码如下:
Device (HDEF)
{
Name (_ADR, 0x001B0000) // _ADR: Address
OperationRegion (HDAR, PCI_Config, 0x4C, 0x10)
Field (HDAR, WordAcc, NoLock, Preserve)
{
DCKA, 1,
Offset (0x01),
DCKM, 1,
, 6,
DCKS, 1,
Offset (0x08),
, 15,
PMES, 1
}
在上述代码下方添加如下代码
Method (_DSM, 4, NotSerialized) // _DSM: Device-Specific Method
{
Store (Package (0x0C)
{
"codec-id",
Buffer (0x04)
{
0x6E, 0x50, 0xF1, 0x14
},
"layout-id",
Buffer (0x04)
{
0x0C, 0x00, 0x00, 0x00
},
"PinConfigurations",
Buffer (Zero) {},
"hda-gfx",
Buffer (0x0A)
{
"onboard-1"
},
"device-type",
Buffer (0x11)
{
"Conexant CX20590"
},
"MaximumBootBeepVolume",
Buffer (One)
{
0x4D
}
}, Local0)
DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
Return (Local0)
}
这里注意到数第三行这个 DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0)) 这也是声卡方面为什么要先去打 Sourceforge 的 Insert DTGP 补丁,不然待会编译无法顺利通过,会遇到 DTGP 没定义的错误。
好了,到了这里 上面这些补丁都是跟 macOS 系统相关的,这不是重点,重点是我要说的下面这个补丁:
去打 RehabMan 的 RCT Fix 补丁。这个补丁会影响你 Win10 系统设备管理器系统时钟的问题,如果不打,每次进入 Win 10 系统时钟那个设备都会出 !号,win 系统时间也是不同步的,并且还会让你的 ThinkPad E430 在 OpenCore 启动时会去写 Bios 还是 NVrame 导致 Bios 报 0251:System CMOS checksum bad (系统 CMOS 效验和错误)
这个很重要,重要的事说三遍,我因为这个问题,直接让另一台 ThinkPad E430 主板变砖了,那台时只有核显没独显的版本。E430 貌似好多款版本,这里也不多说,自己去网上查查看。
简单总结下上面这段然后我们继续话题:
声卡 主要两个补丁加补代码 一个 DTGP 这个补丁,用来定义 DTGP 不然编译没法通过 另一个 IRQ 补丁。
显卡 这里我打了两个补丁,如果你 需要自己搞亮度调节方面的,可以只打一个补丁,不打亮度那个补丁,这里补充说明一下,我在 E430 下试过怎么打补丁都没搞出亮度调节时那个 小太阳 图标,谁会告诉我一下,我这至少没整出来过,原因目前不明。
电池方面2个补丁,一个电池补丁一个电量显示为 0% 的补丁,这里也补充一下,电池方面我发现有个问题,当你在 Bios 里只开 核显的时候,打上述补丁后就过关了,但当你在 Bios 里把独立显卡也打开的时候,你会遇到电池这个 0% 显示有时候没问题,会显示出当前正确电量,有时候又会显示为 0% 不正确的状态,大多数时候都会显示 0% 错误状态这个,关掉独显问题修复,这里我也没驱动过独立显卡,会的朋友麻烦告诉我下怎么驱动。
RCT 这个补丁很重要,主要解决了我连个问题,一 CMOS 效验和报错间接导致一块主板变砖 二 Win系统设备管理器时钟冲突导致时间错误以及出现设备感叹号标志。把这个补丁打上,解决了上述2个问题.
这里补充说明下,如果你的 Win 系统里哪个设备出现了感叹号标志,我猜大概率可能跟你 DSDT SSDT 补丁有关,具体有没有,你可以试着用原版没修改过的 DSDT SSDT 替换回去,然后启动 Win 系统,看看设备是否还冲突,如果不冲突,那就是有关,至于如何解决,去看下 DSDT 里有关几个关于 Win 系统判断并返回值的那类补丁,比如 RehabMan 的 OS Check Fix (Windows 7) 这类补丁,我看到他写了好几个,有 linux win7 win10 等等。在 MaciASL 补丁源里就有。
具体这里不多说了,总之作用就是 OpenCore 引导时会用 DSDT 判断下系统,然后返回是否需要修补 DSDT 代码,如果是 Win 系统,那就不改,是 macOS 系统,那就改。这样就应该不会出现 win 系统里设备管理器里的设备出现感叹号标志的问题了,个人理解。
本帖最后由 SteVeNDraGoN 于 2021-9-1 18:35 编辑
第二部分 自定义启动盘
上面说了一大堆,现在我们的系统都装上了,驱动也打上了,但每次 OpenCore Clover 启动时,启动盘名字,图标,顺序都是乱的,尤其是 Clover 启动时名字还是 Preboot,这个是病,要治,接下来就说说这些方面的内容。
这方面分开来说,先说在 OpenCore 的 Shell 下获取磁盘信息,原因是 Clover 下 Shell 会死机,我本想先说 Clover 方面的,无所谓了,重点就是我们需要获取启动盘的正确路径,只要能在 OpenCore 或者 Clover 启动画面下进入 OpenShell 或者 Shell 就行了。
我们在 OpenCore 启动画面下按下空格键 会出现隐藏的启动盘,选择 OpenShell 进入 Shell 环境。就能获得所有磁盘分区以及 apfs 容器方面的信息了。
下图注意别选错了,选 OpenShell 那个,到数第二个,
别错选 Reset NVRAME这个,选这个 NVRam会被重置 。我这图截的不太对。对付看。
获取信息后,可以利用 F10 截图保存,也可以利用 map > xx.txt 保存文本信息。比如输入 FS0: 进入 EFI 所在分区后输入 map > xx.txt 就可以把上面这些设备信息保存到 EFI 分区下 xx.txt 文件里。如下:
Mapping table
FS0: Alias(s):HD0a0a1:;BLK1:
PciRoot(0x0)/Pci(0x1F,0x2)/Sata(0x0,0x0,0x0)/HD(1,GPT,B2C90D78-D6FA-4FBF-824B-EF684A330BC5,0x1000,0xFA000)
FS1: Alias(s):HD0a0a3:;BLK3:
PciRoot(0x0)/Pci(0x1F,0x2)/Sata(0x0,0x0,0x0)/HD(3,GPT,5C7218A2-F2C3-4813-8FAD-DC8ED056435A,0x13B000,0xAB5C000)
FS2: Alias(s):HD0a0a4:;BLK4:
PciRoot(0x0)/Pci(0x1F,0x2)/Sata(0x0,0x0,0x0)/HD(4,GPT,55868914-5DD7-46E2-0CC2-7CD392FD742A,0xAC97000,0x3C00000)
FS3: Alias(s):HD0a0a5:;BLK5:
PciRoot(0x0)/Pci(0x1F,0x2)/Sata(0x0,0x0,0x0)/HD(5,GPT,50FCD0DC-1009-44A6-E6FB-211CEFBBA2E9,0xE898000,0x1400000)
FS4: Alias(s):HD0a0a6:;BLK6:
PciRoot(0x0)/Pci(0x1F,0x2)/Sata(0x0,0x0,0x0)/HD(6,GPT,C69654A1-C0E4-4663-B60E-610CC24F15E2,0xFC98000,0x148800)
FS8: Alias(s):HD0a0a7:;BLK11:
PciRoot(0x0)/Pci(0x1F,0x2)/Sata(0x0,0x0,0x0)/HD(7,GPT,87D0311D-699B-4055-8ED1-573E5E715798,0xFDE1000,0x12C01000)/VenMedia(BE74FCF7-0B7C-49F3-9147-01F4042E6842,E47D328926FE914DA2728BA1D50718EC)
FS7: Alias(s):HD0a0a7:;BLK10:
PciRoot(0x0)/Pci(0x1F,0x2)/Sata(0x0,0x0,0x0)/HD(7,GPT,87D0311D-699B-4055-8ED1-573E5E715798,0xFDE1000,0x12C01000)/VenMedia(BE74FCF7-0B7C-49F3-9147-01F4042E6842,CAB4700425763D43B2601A1296E2F4D2)
FS5: Alias(s):HD0a0a7:;BLK8:
PciRoot(0x0)/Pci(0x1F,0x2)/Sata(0x0,0x0,0x0)/HD(7,GPT,87D0311D-699B-4055-8ED1-573E5E715798,0xFDE1000,0x12C01000)/VenMedia(BE74FCF7-0B7C-49F3-9147-01F4042E6842,7B96D6ABCA0B9D4690B33073F011EEB5)
FS6: Alias(s):HD0a0a7:;BLK9:
PciRoot(0x0)/Pci(0x1F,0x2)/Sata(0x0,0x0,0x0)/HD(7,GPT,87D0311D-699B-4055-8ED1-573E5E715798,0xFDE1000,0x12C01000)/VenMedia(BE74FCF7-0B7C-49F3-9147-01F4042E6842,8B2CA9EBD47AA74295443A7871C35661)
FS9: Alias(s):HD0a0a7:;BLK12:
PciRoot(0x0)/Pci(0x1F,0x2)/Sata(0x0,0x0,0x0)/HD(7,GPT,87D0311D-699B-4055-8ED1-573E5E715798,0xFDE1000,0x12C01000)/VenMedia(BE74FCF7-0B7C-49F3-9147-01F4042E6842,E7D1FE703BCE624A8EAB6183C757832F)
FS10: Alias(s):HD0a0a7:;BLK13:
PciRoot(0x0)/Pci(0x1F,0x2)/Sata(0x0,0x0,0x0)/HD(7,GPT,87D0311D-699B-4055-8ED1-573E5E715798,0xFDE1000,0x12C01000)/VenMedia(BE74FCF7-0B7C-49F3-9147-01F4042E6842,F70E650D893E894AA84F3BA919826467)
BLK0: Alias(s):
PciRoot(0x0)/Pci(0x1F,0x2)/Sata(0x0,0x0,0x0)
BLK16: Alias(s):
PciRoot(0x0)/Pci(0x1F,0x2)/Sata(0x1,0x0,0x0)
BLK2: Alias(s):
PciRoot(0x0)/Pci(0x1F,0x2)/Sata(0x0,0x0,0x0)/HD(2,GPT,A499B188-A73D-43F2-8826-C942186B326D,0xFB000,0x40000)
BLK7: Alias(s):
PciRoot(0x0)/Pci(0x1F,0x2)/Sata(0x0,0x0,0x0)/HD(7,GPT,87D0311D-699B-4055-8ED1-573E5E715798,0xFDE1000,0x12C01000)
BLK14: Alias(s):
PciRoot(0x0)/Pci(0x1F,0x2)/Sata(0x0,0x0,0x0)/HD(8,GPT,61887D33-5899-4155-947D-32A9C4A0D896,0x229E2000,0x12C00000)
BLK15: Alias(s):
PciRoot(0x0)/Pci(0x1F,0x2)/Sata(0x0,0x0,0x0)/HD(9,GPT,4ECC7149-0435-4D1D-B855-1EF6DC71CD76,0x355E2000,0x63FF000)
保存后输入 exit 退出 shell 环境 然后选择 macOS盘进入 macOS 系统
来到 macOS 系统下 开个终端窗口 输入 diskutil list 可以看到磁盘信息如下
steven@ThinkPadE430MBP ~ % diskutil list
/dev/disk0 (internal, physical):
#: TYPE NAME SIZE IDENTIFIER
0: GUID_partition_scheme *512.1 GB disk0
1: EFI EFI 524.3 MB disk0s1
2: Microsoft Reserved 134.2 MB disk0s2
3: Microsoft Basic Data Win10 92.0 GB disk0s3
4: Microsoft Basic Data Win7 32.2 GB disk0s4
5: Microsoft Basic Data TooLs 10.7 GB disk0s5
6: Windows Recovery 688.9 MB disk0s6
7: Apple_APFS Container disk1 161.1 GB disk0s7
8: Microsoft Basic Data exFAT Swap 161.1 GB disk0s8
9: Microsoft Basic Data SystemBAK 53.7 GB disk0s9
/dev/disk1 (synthesized):
#: TYPE NAME SIZE IDENTIFIER
0: APFS Container Scheme - +161.1 GB disk1
Physical Store disk0s7
1: APFS Volume Macintosh HD - 数据 117.9 GB disk1s1
2: APFS Volume Macintosh HD 15.3 GB disk1s2
3: APFS Snapshot com.apple.os.update-... 15.3 GB disk1s2s1
4: APFS Volume Preboot 284.1 MB disk1s3
5: APFS Volume Recovery 623.3 MB disk1s4
6: APFS Volume VM 1.1 GB disk1s5
这是我的盘,单盘 多分区而已,这里我们只关注以下几个:
1: EFI EFI 524.3 MB disk0s1
3: Microsoft Basic Data Win10 92.0 GB disk0s3
4: Microsoft Basic Data Win7 32.2 GB disk0s4
7: Apple_APFS Container disk1 161.1 GB disk0s7
1: APFS Volume Macintosh HD - 数据 117.9 GB disk1s1
4: APFS Volume Preboot 284.1 MB disk1s3先把这几个标记处理,等下用到哪个再去关注哪个。
这里 win7 win10 方面主要关注以下这几个
1: EFI EFI 524.3 MB disk0s1
3: Microsoft Basic Data Win10 92.0 GB disk0s3
4: Microsoft Basic Data Win7 32.2 GB disk0s4Clover 下 macOS 的主要关注这一个:
7: Apple_APFS Container disk1 161.1 GB disk0s7OpenCore 下 的 macOS 稍微麻烦点,主要关注以下这几个:
7: Apple_APFS Container disk1 161.1 GB disk0s7
4: APFS Volume Preboot 284.1 MB disk1s3另外这个稍后再说:
1: APFS Volume Macintosh HD - 数据 117.9 GB disk1s1
好了,大概心里有数后,我们要进入自定义启动盘图标,名字,以及正确路径方面的内容了:
先来把 Clover 方面的搞定,注意:这里我的 Win7 Win10 的 EFI 是单独放到 Win7 Win 10 根目录下的,所以:
去 Clover 里 引导界面-自定义条目 添加三个新项目,先来搞定 Win7 Win10 前两个,最后再去搞 macOS 那个
Win7
卷 选 Win7(disk0)
路径 \EFI\Microsoft\Boot\bootmgfw.efi
标题 Windows 7
隐藏 NO
类型 Windows
Win10
卷 选Win10 (disk0)
路径也是 \EFI\Microsoft\Boot\bootmgfw.efi
标题 Windows 10
隐藏 NO
类型 Windows
这里简单解释下,Win7 Win10 卷就是你 Win7 Win10 系统所做盘那个盘 这里不要选成 EFI 所在那个盘,因为我 Win7 Win10 的 EFI 是放置在它们各自系统盘所在位置的。图标图像方面不用填,用主题自带的就行,如果你想换比如 win7用win7 win10 用win10 ,自定义两个图标放到你主题所在目录,然后 图像 那填图标名就行,应该不用写完整路径。
再说下 macOS Big Sur 的添加方法:
卷选 APFS 容器那个卷 也就是上面通过命令看到那个 APFS Container
7: Apple_APFS Container disk1 161.1 GB disk0s7这里是 Untitled (disk0) 因为没卷标,所以才这么显示这里无所谓的,你注意去看上面命令获得到的信息去数位置就行,比如我这里的刚好就是8号上面的
8: Microsoft Basic Data exFAT Swap 161.1 GB disk0s8这块盘上面那个。
路径 \0470B4CA-7625-433D-B260-1A1296E2F4D2\System\Library\CoreServices\boot.efi
标题 macOS Big Sur
隐藏 NO
类型 OSX
这里要说下路径的获取方式
0470B4CA-7625-433D-B260-1A1296E2F4D2 这个怎么获取的?
这里先说个取巧的方法,去你 macOS 的系统偏好设置-启动磁盘 把你的 macOS 设置为启动盘 然后重启系统就会看到 UEFI 启动项里多了一个 mac OS 的项目
在 Windows 系统下 用 BOOTICE v1.3.4 工具 编辑一下 UEFI 启动顺序 在里面就能看到 macos 给你添加的那个项目的路径就是 \0470B4CA-7625-433D-B260-1A1296E2F4D2\System\Library\CoreServices\boot.efi 这个
当然,这个是不能通过 Bios UEFI 直接启动的,否则我们也就不需要 Clover OpenCore 来引导了。
这里我们只是利用上面取巧方法来获取这个路径里的 0470B4CA-7625-433D-B260-1A1296E2F4D2 这个值,这个值稍后我们在 OpenCore 自定义启动盘时再说,那里我们会有新的获取方法,而不用这种。
上述设置好后 记得去 Clover-引导参数-默认引导卷名 里设置为 Preboot。
简单总结下 Clover 下 macOS 引导卷逻辑:
Clover 下 macOS 引导 其实就是指定 Clover 去找 macOS APFS 容器这个卷,找到后 这个容器卷下 有个 UUID 值为 0470B4CA-7625-433D-B260-1A1296E2F4D2 这个文件夹,这个文件夹里才有我们需要 \System\Library\CoreServices\boot.efi 这个文件夹以及引导文件boot.efi
这里为什么要提这事?因为 OpenCore 下 启动时 不是这么直接寻找的,而是找的 Preboot 文件夹里的 \System\Library\CoreServices\boot.efi
所以 Clover 下比较简单,OpenCore 下稍微麻烦那么一点而已。这里区别一下先。Clover 方面到此结束。
接下来我们具体说说 OpenCore 下如何找出这个正确路径,以及如何设置自定义启动盘图标,并且还要说说自定义启动盘名字时的一些问题。
OpenCore 下大致的流程是这样:
1 先整出图形界面而不是在文字界面下,也可以就在文本界面下,我这里说的是图形界面的,所以文本界面下其实本质也一样的。
这方面怎么整出来,这文不说了,是重点,我假设你已经是图形界面启动 OpenCore 了。
2 关注 Misc-其它设置 这里面的两个项目
Misc-Boot-Picker Attributes GUI 界面设置属性
Misc-Security-Scan Policy 这个也关注下先,稍后用到这两个
3 找出正确的启动盘设备路径并正确填写,然后关掉 Misc-Security-Scan Policy 项目里面不需要的项目,以达到隐藏不需要的启动盘项目的目的,同时避免启动界面里启动盘项目重复出现的问题。Misc-Boot-Picker Attributes GUI 这个和自定义启动盘图标有关,稍后再说。
这里我尽量说详细点吧,想到什么说什么,想不到稍后想到再补充了。
首先你要确保你 Clover 和 OpenCore 在没自定义启动盘项目时时可以正确显示 Win 和 macOS 启动盘的,因为这里如果显示不出 Win 启动盘,那你就驱动目录下添加 NTFS.efi 这个驱动,这个问题解决后,我们开始找路径了。
先把 Win7 Win10 搞定,然后再说 macOS Big Sur,因为 后面这个后面还有埋雷。
Win7 Win10 参照前面 Clover 里的设置,我们很容易就搞定了,选对盘就行了。这里我们来说说怎么用另一种方法获取路径的问题。
macOS 系统终端窗口下输入 diskutil list
3: Microsoft Basic Data Win10 92.0 GB disk0s3
4: Microsoft Basic Data Win7 32.2 GB disk0s4很容易找到 Win7 是 disk0s4 而 Win10 是 disk0s3 ,题外话,我装系统的时候是先装的 Win10 没打算装 Win7 后续才在 Win10 盘下重新调整个空间出来装的 Win7 所以这里 GPT 分区表下就这顺序来。
macOS 系统终端窗口下输入 diskutil info disk0s4 找出 Win7 盘对应的 UUID
Disk / Partition UUID: 55868914-5DD7-46E2-0CC2-7CD392FD742A
我这里是 55868914-5DD7-46E2-0CC2-7CD392FD742A 注意这里不是要找 Volume UUID 那个不是我们需要的 UUID
找到这个 UUID 后,还记得我们前面是怎么弄到 xx.txt 那个文件的吧?去 EFI 分区里把那个文件打开,找到对应的项目
我只里是:
FS2: Alias(s):HD0a0a4:;BLK4:
PciRoot(0x0)/Pci(0x1F,0x2)/Sata(0x0,0x0,0x0)/HD(4,GPT,55868914-5DD7-46E2-0CC2-7CD392FD742A,0xAC97000,0x3C00000)也就是 HD(4,GPT 这个。
上面那个 HD(3 也就是我 Win10 的盘 UUID 这个也刚好按顺序对应通过 diskutil list 命令获取的顺序
3: Microsoft Basic Data Win10 92.0 GB disk0s3
4: Microsoft Basic Data Win7 32.2 GB disk0s4Win10 盘刚好在我 Win7 盘上面,对应的也就是下面这个设备路径了:
FS1: Alias(s):HD0a0a3:;BLK3:
PciRoot(0x0)/Pci(0x1F,0x2)/Sata(0x0,0x0,0x0)/HD(3,GPT,5C7218A2-F2C3-4813-8FAD-DC8ED056435A,0x13B000,0xAB5C000)
好了我们已经获取了 Win7 Win10 的设备路径 然后再在路径后添加个 /\EFI\Microsoft\Boot\bootmgfw.efi 就是启动盘的正确路径了,注意 这里的 "/\EFI\"
在 \EFI\Microsoft\Boot\bootmgfw.efi 前面是有个 / 的。这里注意下。
获取后如下:
Win7 自定义启动盘正确完整路径是:
PciRoot(0x0)/Pci(0x1F,0x2)/Sata(0x0,0x0,0x0)/HD(4,GPT,55868914-5DD7-46E2-0CC2-7CD392FD742A,0xAC97000,0x3C00000)/\EFI\Microsoft\Boot\bootmgfw.efi
Win10 自定义启动盘正确完整路径是:
PciRoot(0x0)/Pci(0x1F,0x2)/Sata(0x0,0x0,0x0)/HD(3,GPT,5C7218A2-F2C3-4813-8FAD-DC8ED056435A,0x13B000,0xAB5C000)/\EFI\Microsoft\Boot\bootmgfw.efi
把这两个填入 Misc-Entries-自定义条目这里
名称说明写 Windows 7 Windows 10 就行了,风格选默认 Auto 启用打勾,其它默认
搞定了他俩,我们可以重启系统了,路径没错的话,应该能看到自定义启动盘了,但会遇到启动盘图标是苹果系统的而不是 Win 系统的。
这里也简单,去 Win7 Win10 系统根目录下放置个图标文件就行了,如果你的 macOS 跟我一样,没装 NTFS 写盘 APP 只能读不能写的话,那就去 Win 系统下添加图标文件就行了,我没装,因为我用 NAS 存储文件,不存在这个写 NTFS 盘的需求。图标文件名为:.VolumeIcon.icns 注意文件名前面的点在 linux 系统里代表隐藏文件,其实这个图标文件的本质就是 macOS 系统下给文件夹换图标那种玩意,本质一样的。OpenCore 官方文档里也是这样说的。
搞定上述再重启系统,OpenCore 里应该能看到正确图标了,如果有其它问题,去检查下你的 Misc-Boot-Picker Attributes 这个项目的选择问题。我这里填的 27.
最后来搞 macOS Big Sur 理论上 macOS Monterey 系统应该也一样,我没具体测试,因为 macOS Monterey 系统还是测试版不稳定,但应该是没问题的,本质一样的。
OpenCore 下 不能用 Clover 下那种,指定 APSF 盘,然后路径指定为 APFS 盘下 UUID 为 55868914-5DD7-46E2-0CC2-7CD392FD742A 路径为 \0470B4CA-7625-433D-B260-1A1296E2F4D2\System\Library\CoreServices\boot.efi 这种,这样 OpenCore 会找不到 macOS 启动盘。
我们首先也是用 APFS 容器这个盘
7: Apple_APFS Container disk1 161.1 GB disk0s7然后通过终端命令 diskutil info disk0s7 行获取这个盘的 UUID
Disk / Partition UUID: 87D0311D-699B-4055-8ED1-573E5E715798
也就是对应前面 xx.txt 里的这块盘
FS8: Alias(s):HD0a0a7:;BLK11:
PciRoot(0x0)/Pci(0x1F,0x2)/Sata(0x0,0x0,0x0)/HD(7,GPT,87D0311D-699B-4055-8ED1-573E5E715798,0xFDE1000,0x12C01000)/VenMedia(BE74FCF7-0B7C-49F3-9147-01F4042E6842,E47D328926FE914DA2728BA1D50718EC)
这方面你也可以通过在 OpenCore 启动界面进 Shell 环境后在 Shell 提示符下输入 FS8: 回车后进入这块盘看下里面的目录
Ls 命令可以查到这块盘里有个 0470B4CA-7625-433D-B260-1A1296E2F4D2 这个目录,这个目录也就是 UUID 也就是我们需要的路径了,
你可以在这个目录里找到下面这些目录和文件了:
\System\Library\CoreServices\boot.efi
我们在 macOS 命令提示符下查看下这个对应关系 输入 diskutil apfs list 后得到下面信息
steven@ThinkPadE430MBP ~ % diskutil apfs list
APFS Container (1 found)
|
+-- Container disk1 2145FFCA-D263-4684-9355-003060C664FB
====================================================
APFS Container Reference: disk1
Size (Capacity Ceiling): 161063370752 B (161.1 GB)
Capacity In Use By Volumes: 135402520576 B (135.4 GB) (84.1% used)
Capacity Not Allocated: 25660850176 B (25.7 GB) (15.9% free)
|
+-< Physical Store disk0s7 87D0311D-699B-4055-8ED1-573E5E715798
| -----------------------------------------------------------
| APFS Physical Store Disk: disk0s7
| Size: 161063370752 B (161.1 GB)
|
+-> Volume disk1s1 0470B4CA-7625-433D-B260-1A1296E2F4D2
| ---------------------------------------------------
| APFS Volume Disk (Role): disk1s1 (Data)
| Name: Macintosh HD - 数据 (Case-insensitive)
| Mount Point: /System/Volumes/Data
| Capacity Consumed: 117956165632 B (118.0 GB)
| Sealed: No
| FileVault: No
|
+-> Volume disk1s2 ABD6967B-0BCA-469D-90B3-3073F011EEB5
| ---------------------------------------------------
| APFS Volume Disk (Role): disk1s2 (System)
| Name: Macintosh HD (Case-insensitive)
| Mount Point: Not Mounted
| Capacity Consumed: 15330865152 B (15.3 GB)
| Sealed: Broken
| FileVault: No
| |
| Snapshot: EC9FB9A5-99F0-42E5-B1A4-664DD3B66F4C
| Snapshot Disk: disk1s2s1
| Snapshot Mount Point: /
| Snapshot Sealed: Yes
|
+-> Volume disk1s3 89327DE4-FE26-4D91-A272-8BA1D50718EC
| ---------------------------------------------------
| APFS Volume Disk (Role): disk1s3 (Preboot)
| Name: Preboot (Case-insensitive)
| Mount Point: /System/Volumes/Preboot
| Capacity Consumed: 284106752 B (284.1 MB)
| Sealed: No
| FileVault: No
|
+-> Volume disk1s4 EBA92C8B-7AD4-42A7-9544-3A7871C35661
| ---------------------------------------------------
| APFS Volume Disk (Role): disk1s4 (Recovery)
| Name: Recovery (Case-insensitive)
| Mount Point: Not Mounted
| Capacity Consumed: 623345664 B (623.3 MB)
| Sealed: No
| FileVault: No
|
+-> Volume disk1s5 70FED1E7-CE3B-4A62-8EAB-6183C757832F
---------------------------------------------------
APFS Volume Disk (Role): disk1s5 (VM)
Name: VM (Case-insensitive)
Mount Point: /System/Volumes/VM
Capacity Consumed: 1074810880 B (1.1 GB)
Sealed: No
FileVault: No
这里可以详细看到这块盘其实并不是 Preboot 那块盘,而是 Macintosh HD - 数据 那块盘,
+-> Volume disk1s1 0470B4CA-7625-433D-B260-1A1296E2F4D2
| ---------------------------------------------------
| APFS Volume Disk (Role): disk1s1 (Data)
| Name: Macintosh HD - 数据 (Case-insensitive)
| Mount Point: /System/Volumes/Data
| Capacity Consumed: 117956165632 B (118.0 GB)
| Sealed: No
| FileVault: No
这里我先给出 macOS 启动盘完整的正确路径,然后我们再来看下对应关系,以及与 Clover 下那种对应关系的区别和问题。
OpenCore 下 macOS Big Sur 完整正确的启动盘路径:
PciRoot(0x0)/Pci(0x1F,0x2)/Sata(0x0,0x0,0x0)/HD(7,GPT,87D0311D-699B-4055-8ED1-573E5E715798,0xFDE1000,0x12C01000)/VenMedia(BE74FCF7-0B7C-49F3-9147-01F4042E6842,E47D328926FE914DA2728BA1D50718EC)/\0470B4CA-7625-433D-B260-1A1296E2F4D2\System\Library\CoreServices\boot.efi
这里我们分段来看
1 PciRoot(0x0)/Pci(0x1F,0x2)/Sata(0x0,0x0,0x0)/HD(7,GPT,87D0311D-699B-4055-8ED1-573E5E715798,0xFDE1000,0x12C01000)
这段代表的是 APFS Container 容器所在盘也就是 disk0s7 这里我们取后 4位 作为区分,这里是 -xxxxxxxx5798
2 VenMedia(BE74FCF7-0B7C-49F3-9147-01F4042E6842,E47D328926FE914DA2728BA1D50718EC)
这里后4位 18EC 对应的其实就是 Preboot 这块盘
+-> Volume disk1s3 89327DE4-FE26-4D91-A272-8BA1D50718EC
| ---------------------------------------------------
| APFS Volume Disk (Role): disk1s3 (Preboot)
| Name: Preboot (Case-insensitive)
| Mount Point: /System/Volumes/Preboot
| Capacity Consumed: 284106752 B (284.1 MB)
| Sealed: No
| FileVault: No
3 /\0470B4CA-7625-433D-B260-1A1296E2F4D2\System\Library\CoreServices\boot.efi
这里后4位 F4D2 其实对应的就是 Macintosh HD - 数据 这块盘
+-> Volume disk1s1 0470B4CA-7625-433D-B260-1A1296E2F4D2
| ---------------------------------------------------
| APFS Volume Disk (Role): disk1s1 (Data)
| Name: Macintosh HD - 数据 (Case-insensitive)
| Mount Point: /System/Volumes/Data
| Capacity Consumed: 117956165632 B (118.0 GB)
| Sealed: No
| FileVault: No
其实在 Shell 模式下 也就是如下的顺序:
APFS 容器盘 -> Preboot 盘 -> Macintosh HD - 数据盘 -> \System\Library\CoreServices\boot.efi
这就是我们所需要的全部信息了。
这里区别下 Clover 和 OpenCore 指向的区别,
1 Clover 下 APFS 容器盘 -> \0470B4CA-7625-433D-B260-1A1296E2F4D2\System\Library\CoreServices\boot.efi
其实也就是 APFS 容器盘 ->Macintosh HD - 数据盘
2 而 OpenCore下 的指向却是
APFS 容器盘 -> Preboot 盘 - Macintosh HD - 数据盘
个人感觉本质上是一样的,但我不太了解 macOS 系统,接触时间也比较晚,这里不多解释,我想说说下面这个问题
问题:如果你按照 Clover 那种方式去指定路径,你可能会遇到两个问题:
1 路径设置错误 OpenCore 没找到 macOS 启动盘
2 路径设置正确 OpenCore 找到了 macOS 启动盘,并且这个启动盘是可以自定义名字的,比如定义成 macOS Big Sur ,但当你启动系统是,系统会在 跑码模式下启动到 macOS LOGO 那图形画面时挂掉并自动重启。
而如果你按我上述正确的方式指定 macOS 启动盘路径的话,会遇到如下问题:
1 macOS 系统可以正常启动
2 自定义启动盘的名字即使自定义了,也改不掉,还是安装系统时的 Macintosh HD 即使你去 macOS 系统偏好设置里把 APFS 容器和它下面的 Macintosh HD 改名并重启系统后 名字依然是 Macintosh HD,而不是你改的名字,这里我只测试过一次,没更详细去测试其它改名方式。
补充说明一下,OpenCore Shell 模式下 一堆 FSx 盘那里,其实有两个地方有 boot.efi
一个时我们上面指定那个路径的,这个是可以正确启动 macOS 系统的。
另一个是在 FS5: 下的
FS5: Alias(s):HD0a0a7:;BLK8:
PciRoot(0x0)/Pci(0x1F,0x2)/Sata(0x0,0x0,0x0)/HD(7,GPT,87D0311D-699B-4055-8ED1-573E5E715798,0xFDE1000,0x12C01000)/VenMedia(BE74FCF7-0B7C-49F3-9147-01F4042E6842,7B96D6ABCA0B9D4690B33073F011EEB5)也就是后四位为 EEB5 也就是 Macintosh HD 这块盘而不是 Macintosh HD 数据那块。
+-> Volume disk1s2 ABD6967B-0BCA-469D-90B3-3073F011EEB5
| ---------------------------------------------------
| APFS Volume Disk (Role): disk1s2 (System)
| Name: Macintosh HD (Case-insensitive)
| Mount Point: Not Mounted
| Capacity Consumed: 15330865152 B (15.3 GB)
| Sealed: Broken
| FileVault: No
| |
| Snapshot: EC9FB9A5-99F0-42E5-B1A4-664DD3B66F4C
| Snapshot Disk: disk1s2s1
| Snapshot Mount Point: /
| Snapshot Sealed: Yes在这块盘里,有个没有 UUID 目录名的 \System\Library\CoreServices\boot.efi 路径和文件。
如果你用这个路径去自定义 macOS Big sur 为启动路径,那就会遇到上面我说的那个指定了正确的路径并且能在 OpenCore 下看到 macOS 启动盘 在 -v 跑码模式下但只能启动到 macOS LOGO 画面时自动重启的问题,当然重启前好像会报个错。
注意:附件里有个隐藏文件 “.VolumeIcon.icns” 这文件也就是自定义启动盘图标的文件,放在 Win 系统根目录下
macOS 系统里看不到的话按 键盘的 Shift+Alt+. 就可以显示隐藏文件了。
全文完
技术贴,顶楼主,引导器主题很好看。 感谢分享 OC引导的话mac启动项让他自动扫描出来,只需添加Windows的自定义启动项即可 学习一下 一直怕麻烦安装的单系统 准备win11成熟了 搞个win11 好文,顶LZ,同机型,谢谢分享。 18320070639 发表于 2021-9-1 20:22 https://bbs.pcbeta.com/static/image/common/back.gif
OC引导的话mac启动项让他自动扫描出来,只需添加Windows的自定义启动项即可
不清楚是不是 OC 的 Bug 自定义 macOS 启动盘改名无效。没测试,但我觉得 Big Sur 之前版本应该是有效的,如果 Catalina 下有效,那就是 OC 的 Bug 了。新系统,OC 还没跟进这块的更新。 gpt分区方案uefi引导,还是直接按物理键选择启动各系统方便,且高效省时。全用oc引导麻烦不说,配置也多事。oc引导win系统不觉得多此一举,本来uefi直接加载就引导win了,结果不直接引导却加载个oc再来加载win。之所以用oc引导mac是黑果不能直接uefi选择引导启动系统盘,(白果就是原生直接引导)。 随便测试了几个,终于知道怎么回事了,这次搞定 ,自定义名字,自定义图标。OC 自带的 icns 文件有问题,应该不是标准的 icns,换成 Big Sur 安装盘里自带的big Sur logo 那个icns就是标准系统兼容的,其它几个我用工具软件转换了一下,显示出来了,icns 按官方文档说的位置换就行,不一定必须放UUID目录下,放Preboot目录下也行。
睡眠唤醒后重启系统时 Bios 如果还报 0251:System CMOS checksum bad (系统 CMOS 效验和错误) 参考下图这两个设置,主要是右边那个设置。
感谢分享 忘了说了,至于 OpenCore 下 Big Sur 盘自定义名 参考下面这个命令自己搞定就行了。
sudo bless --folder /System/Volumes/Preboot/BDC59949-FE3E-481B-AFBC-417A19BA88C1/System/Library/CoreServices --label "macOS Big Sur"
/System/Volumes/Preboot/BDC59949-FE3E-481B-AFBC-417A19BA88C1/System/Library/CoreServices
这个就是 .efi 所在路径,Big Sur 的 Boot.efi 就这个路径了, /Preboot// 这种写法,至于 Win7 Win10,方法类似,具体看你怎么安排的 EFI 文件放置位置了,比如是都放硬盘主要那个 EFI 分区中集中管理,还是分开独立放置独立管理了。
来了看一下
页:
[1]