关于EFI分区下win、linux、macosx引导的实验
.
感谢:
zxystd大佬的Intel无线网卡驱动方案,包括itlwmx、AirportItlwm、heliport。
acidanthera大佬的OpenCore引导方案。
.
环境:
.
关键硬件:
主盘位(pciex4):三星SM961 512G;
wwan盘位(pciex1):西数SN520 512G;
无线网卡:Intel AC8265。
引导类型:
UEFI(关闭csm)
.
第一次失败的实验:
我在主盘位上安装了win10,在wwan盘位安装了macosx 11.0.1。
但是主板bios不识别wwan盘硬盘,进系统可正常识别,或者使用u盘引导可正常进入系统。研究无果后改第二种方案。
第二次成功的实验:
1、把wwan硬盘做仓库盘;
2、使用DiskGenius把主盘位硬盘转换为gpt格式,创建esp(我分了426MB)、msr分区(默认大小16MB);
3、剩余空间分为3个分区,分别安装windows10(默认安装)、centos7.2(安装时候把esp分区挂载为linux的/boot/efi分区)、macosx 11.0.1(安装完成后,复制的opencore到esp分区内,使用qcwap2012大佬的itlwmx、AirportItlwm、heliport加载Intel无线网卡使用);
4、安装完成后已有引导项为Windows Boot Manager(windows)、grub(包含windows、centos)、opencore(包含windows、macosx);
5、修改esp分区内的EFI\OC\config.plist,在Misc–Entries节点里添加grub引导实体:
1.在Misc--Tools开启OpenShell.efi;
2.重启选择openshell,进入openshell界面;
3.输入FS0:,然后ls,查看是否有EFI文件夹,若有进行下一步,若没有依次切换FS1:,直到找到EFI文件夹,记录当前FSX:;
4.map > map_table_info.txt
5.重启进入macosx
6.替换下面代码里的PciRoot.../\EFI为刚刚map里FSX对应的pciroot值
<key>Entries</key>
<array>
<dict>
<key>Arguments</key>
<string></string>
<key>Auxiliary</key>
<false/>
<key>Comment</key>
<string>Not signed for security reasons</string>
<key>Enabled</key>
<false/>
<key>Name</key>
<string>Win10</string>
<key>Path</key>
<string>PciRoot(0x0)/Pci(0x1,0x1)/Pci(0x0,0x0)/NVMe(0x1,11-22-33-44-55-66-77-88)/HD(1,GPT,00000000-0000-0000-0000-000000000000,0x800,0x64000)/\EFI\Microsoft\Boot\bootmgfw.efi</string>
</dict>
<dict>
<key>Arguments</key>
<string></string>
<key>Auxiliary</key>
<false/>
<key>Comment</key>
<string>Not signed for security reasons</string>
<key>Enabled</key>
<false/>
<key>Name</key>
<string>Grub2</string>
<key>Path</key>
<string>PciRoot(0x0)/Pci(0x1,0x1)/Pci(0x0,0x0)/NVMe(0x1,11-22-33-44-55-66-77-88)/HD(1,GPT,00000000-0000-0000-0000-000000000000,0x800,0x64000)/\EFI\centos\grubX64.EFI</string>
</dict>
</array>
6、重启测试,opencore可进入grub菜单引导Linux了,但是opencore启动速度慢。故有实验三猜想,中午回家测试。。
第三次实验猜想:
1-4、同实验二;
5、修改esp分区内的/EFI/centos/grub.cfg:
----1)添加opencore引导,路径为/EFI/Boot/BOOTx64.efi
----2)替换esp分区内的/EFI/Boot目录下的BOOTx64.efi为opencore里的BootX64.efi
6、重启测试