Legacy BIOS MBR 安装黑苹果 High sierra

您所在的位置:网站首页 笔记本安装黑苹果bios怎么设置硬盘启动 Legacy BIOS MBR 安装黑苹果 High sierra

Legacy BIOS MBR 安装黑苹果 High sierra

2024-07-09 11:51| 来源: 网络整理| 查看: 265

编辑中:

首先看看机器配置,史前时代 2007——2008年的机器,和 UEFI + GPT 没有半毛钱的关系,够老了。应该很少人比这个还老了。

搞错了。这个CPU最多安装 10.13 High Sierra ,是无法安装Mojave的。

 

 

先说说原理:

传统的引导过程是:

BIOS →MBR(硬盘首扇区)→PBR(分区首扇区)→Boot file/Boot Blocks → OS init

传统Legacy BIOS中,大部分由操作系统来接管从MBR、PBR的引导过程,不过这个过程一般引导单个独立的OS操作系统。如果要引导多个OS,就需要功能更强大的第三方boot loader。bootloader会接管这个 MBR->PBR->Boot file/boot blocks等整个引导链。

UEFI引导过程:

BIOS →UEFI(GPT / ECP分区内的文件)→ \EFI\BOOT\BOOTx64.EFI  →OS init

关键原理:传统Legacy BIOS是通过加载硬盘首扇区MBR 和 分区首扇区PBR(partition boot recoder)/ DBR (Dos partition boot recoder),通过两个关键的首扇区内的代码传递加载控制权的。而UEFI引导就是BIOS内置 FAT32 的文件系统代码。UEFI-BIOS通过解析GPT分区的磁盘,直接寻找ESP分区,加载运行ESP分区(一般是FAT32文件系统)boot目录下 .efi文件,直接获取系统控制权。

所以,支持 UEFI GPT启动的BIOS,必须满足两个条件:1.内置FAT32文件系统;2.可以识别GPT分区表。显然2008的老主板什么都没有。此时就需要grub2或者Clover之类的第三方boot loader了。

由于苹果只支持GPT的分区引导,所以硬盘必然也是GPT分区。不过没关系,对GPT固然是BIOS支持最好,老主板不支持也没关系,只要MBR/PRB(DBP)内能够支持GPT就能完成GPT的引导。这点Grub2和Clover都支持。

Clover的boot0.s 代码中,https://github.com/Clover-EFI-Bootloader/clover/blob/master/BootHFS/boot0.s

xor eax, eax mov [my_lba], eax ; store LBA sector 0 for read_lba function mov al, 2 ; load two sectors: MBR and LBA1 mov bx, kMBRBuffer ; MBR load address call load jc error ; MBR load error

直接读取两个扇区,sec0-1,sector 0是MBR,而sector 1是GPT head,系统会判别并处理。同样,Grub2也有类似的代码。

 

和普通boot loader不同,clover不仅是一个bootloader,实际上是一个高度可定制挂载的BIOS。它做得远远超过了一般的bootloader。它会内置一些用户所需的信息,占用一些RAM来模拟BIOS,特别是模拟苹果的SMC固件,来骗过操作系统苹果的防盗版系统DSMOS系统。

 

安装:

 

实现的原理就是

BIOS →MBR(硬盘首扇区)→PBR(ESP分区首扇区)→Clover→OS loader

Clover直接接管了MBR扇区,叫 boot0ss,通过boot0导入ESP分区的 clover,再通过clover自身对fat32和gpt的支持,来替代UEFI做同样的工作。达到在Legacy BIOS上启动GPT分区操作系统的效果。

其实即便是UEFI,也无法直接使用Mac OS,还是需要通过引导器比如Clover或变色龙来欺骗OS X加载。

UEFI→Clover→OS loader(Mac OS X/Windows/Linux)

 

Mac OS X 的ECP分区是FAT32分区,这点和Windows FAT16不同。

00000000 eb 58 90 42 53 44 20 20 34 2e 34 00 02 01 20 00 |.X.BSD 4.4... .| 00000010 02 00 00 00 00 f0 00 00 3f 00 ff 00 28 00 00 00 |........?...(...| 00000020 00 40 06 00 67 0c 00 00 00 00 00 00 02 00 00 00 |[email protected]...........| 00000030 01 00 06 00 00 00 00 00 00 00 00 00 00 00 00 00 |................| 00000040 00 00 29 f4 11 60 28 45 46 49 20 20 20 20 20 20 |..)..`(EFI | 00000050 20 20 46 41 54 33 32 20 20 20 fa 31 c0 8e d0 bc | FAT32 .1....| 00000060 00 7c fb 8e d8 e8 00 00 5e 83 c6 19 bb 07 00 fc |.|......^.......| 00000070 ac 84 c0 74 06 b4 0e cd 10 eb f5 30 e4 cd 16 cd |...t.......0....| 00000080 19 0d 0a 4e 6f 6e 2d 73 79 73 74 65 6d 20 64 69 |...Non-system di| 00000090 73 6b 0d 0a 50 72 65 73 73 20 61 6e 79 20 6b 65 |sk..Press any ke| 000000a0 79 20 74 6f 20 72 65 62 6f 6f 74 0d 0a 00 00 00 |y to reboot.....| 000000b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................| * 000001f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 55 aa |..............U.|

 

 

 

 

但是Clover 不仅是一个bootloader,实际上是一个可挂载的 BIOS

UEFI其实就是BIOS,只不过是一个可扩展的升级版BIOS。

 

 

  安装过程,这里介绍已经有一台白苹果的环境下操作。

下载资源,https://blog.daliansky.net/macOS-Mojave-10.14.6-18G87-Release-version-with-Clover-5033-original-image.html

这个下载包有一个问题,只支持 UEFI+GPT启动,不支持Legacy BIOS + MBR 启动。需要下载Clover V2.5 R5033的安装包处理一下才可以。

Clover : https://github.com/Dids/clover-builder/releases/tag/v2.5k_r5033 

在 mac os x 下操作

1.制作Mojave启动U盘

sudo /Volumes/Install\ macOS\ Mojave\ 1/Install\ macOS\ Mojave.app/Contents/Resources/createinstallmedia --volume /Volumes/INSTALL --applicationpath /Volumes/Install\ macOS\ Mojave\ 1/Install\ macOS\ Mojave.app --nointeraction

2.制作完U盘安装盘 createinstallmedia命令执行完,U盘会有两个分区,其中之一就是EFI分区。可以发现其中的EFI分区是空的。而源dmg的目录内efi分区包含clover引导程序。

照理使用 Clover的 pkg安装盘直接使用即可,但发现无法安装到U盘的EFI分区上。所以,只能自己动手,原理参照上述。具体的操作命令可以参考 /Volumes/Clover-v2.5k-5033-X64/EFI/CLOVER/doc/boot1f32-install.sh (前面是mount的挂载路径,如有不同自行修改)

记住一个原则:先安装Clover到efi分区,再copy dmg中的覆盖文件。顺序不要搞错,否则老机器 BIOS + MBR的方式的U盘启动无法运行。

3.挂载 clover.iso 和 mojave.dmg,分别在  Volumes  下。

SongYingdeMacBook-Pro:~ SongYing$ ls -l /Volumes/ total 8 drwxr-xr-x@ 5 SongYing staff 170 7 29 2019 Clover-v2.5k-5033-X64 drwxrwxr-x 13 SongYing staff 510 8 2 2019 Install macOS Mojave lrwxr-xr-x 1 root admin 1 3 3 08:46 Macintosh HD -> / SongYingdeMacBook-Pro:~ SongYing$

4.插入U盘,查看一下磁盘位置信息  diskutil list ,我efi分区位置是  /dev/disk2s1。记住这个位置

/dev/disk0 (internal, physical): #: TYPE NAME SIZE IDENTIFIER 0: GUID_partition_scheme *120.0 GB disk0 1: EFI EFI 209.7 MB disk0s1 2: Apple_HFS Macintosh HD 119.2 GB disk0s2 3: Apple_Boot Recovery HD 650.0 MB disk0s3 /dev/disk1 (disk image): #: TYPE NAME SIZE IDENTIFIER 0: GUID_partition_scheme +7.2 GB disk1 1: EFI EFI 209.7 MB disk1s1 2: Apple_HFS Install macOS Mojave 6.9 GB disk1s2 /dev/disk2 (external, physical): #: TYPE NAME SIZE IDENTIFIER 0: GUID_partition_scheme *64.4 GB disk2 1: EFI EFI 209.7 MB disk2s1 2: Apple_HFS Install macOS Mojave 64.1 GB disk2s2 /dev/disk3 (disk image): #: TYPE NAME SIZE IDENTIFIER 0: Apple_partition_scheme +10.2 MB disk3 1: Apple_partition_map 32.3 KB disk3s1 2: Apple_HFS Clover-v2.5k-5033-X64 9.9 MB disk3s2

 4. 修改启动代码的顺序是 MBR boot0   ,PBR boot1  ,根目录启动文件 BOOT,启动文件的名称固定在PBR代码内。

原始的U盘 MBR和PBR,本来就为UEFI引导,只有一个空分区表项,没有引导的程序代码(前440都是00)

#原来的MBR,没有引导程序,只保存分配表的数据参数 SongYingdeMacBook-Pro:~ SongYing$ sudo dd if=/dev/disk2 count=1 bs=512| hexdump -C 1+0 records in 1+0 records out 512 bytes transferred in 0.001378 secs (371537 bytes/sec) 00000000 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................| * 000001b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 fe |................| 000001c0 ff ff ee fe ff ff 01 00 00 00 ff ff 7f 07 00 00 |................| 000001d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................| * 000001f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 55 aa |..............U.| 00000200 #原来的PBR,无法引导,只保存分区的基本参数 SongYingdeMacBook-Pro:~ SongYing$ sudo dd if=/dev/disk2s1 count=1 bs=512| hexdump -C 1+0 records in 1+0 records out 512 bytes transferred in 0.003339 secs (153337 bytes/sec) 00000000 eb 58 90 42 53 44 20 20 34 2e 34 00 02 01 20 00 |.X.BSD 4.4... .| 00000010 02 00 00 00 00 f0 00 00 20 00 10 00 00 00 00 00 |........ .......| 00000020 00 40 06 00 4f 0c 00 00 00 00 00 00 02 00 00 00 |[email protected]...........| 00000030 01 00 06 00 00 00 00 00 00 00 00 00 00 00 00 00 |................| 00000040 00 00 29 ed 17 e3 67 45 46 49 20 20 20 20 20 20 |..)...gEFI | 00000050 20 20 46 41 54 33 32 20 20 20 fa 31 c0 8e d0 bc | FAT32 .1....| 00000060 00 7c fb 8e d8 e8 00 00 5e 83 c6 19 bb 07 00 fc |.|......^.......| 00000070 ac 84 c0 74 06 b4 0e cd 10 eb f5 30 e4 cd 16 cd |...t.......0....| 00000080 19 0d 0a 4e 6f 6e 2d 73 79 73 74 65 6d 20 64 69 |...Non-system di| 00000090 73 6b 0d 0a 50 72 65 73 73 20 61 6e 79 20 6b 65 |sk..Press any ke| 000000a0 79 20 74 6f 20 72 65 62 6f 6f 74 0d 0a 00 00 00 |y to reboot.....| 000000b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................| * 000001f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 55 aa |..............U.| 00000200

 

修改 MBR,Clover的boot0,有boot0af、boot0ss、boot0md,一共3个,一般我们用boot0ss

boot0af,适用于混合MBR/GPT分区,启动策略MBR优先 ,搜索MBR分区的活动分区,再搜索EFI分区。

              混合MBR hybrid MBR,详见:https://www.v2ex.com/t/466839

boot0ss,适用于纯GPT分区,启动策略GPT优先。先搜索GPT/EFI分区

boot0md,多硬盘启动。

一般黑苹果默认boot0ss。

# 以下命令要小心操作 #读取U盘 MBR 到 /tmp/mod_MBR.bin 文件 SongYingdeMacBook-Pro:~ SongYing$ sudo dd if=/dev/disk2 of=/tmp/mod_MBR.bin bs=512 count=1 1+0 records in 1+0 records out 512 bytes transferred in 0.001389 secs (368603 bytes/sec) #提取Clover的MBR引导代码,我选择boot0ss,先查找EFI分区,再检查MBR分区。 SongYingdeMacBook-Pro:~ SongYing$ sudo dd if=/Volumes/Clover-v2.5k-5033-X64/usr/standalone/i386/boot0ss of=/tmp/mod_MBR.bin bs=440 count=1 conv=notrunc 1+0 records in 1+0 records out 440 bytes transferred in 0.000027 secs (16331803 bytes/sec) #写回MBR SongYingdeMacBook-Pro:~ SongYing$ sudo dd of=/dev/disk2 if=/tmp/mod_MBR.bin bs=512 count=1 dd: /dev/disk2: Resource busy #一个插曲,无法写回,因为有挂载分区 #把相关分区全部卸载 SongYingdeMacBook-Pro:~ SongYing$ diskutil umount /dev/disk2s1 disk2s1 was already unmounted SongYingdeMacBook-Pro:~ SongYing$ diskutil umount /dev/disk2s2 Volume Install macOS Mojave on disk2s2 unmounted #再次写回U盘 MBR SongYingdeMacBook-Pro:~ SongYing$ sudo dd of=/dev/disk2 if=/tmp/mod_MBR.bin bs=512 count=1 1+0 records in 1+0 records out 512 bytes transferred in 0.001849 secs (276916 bytes/sec) #查看一下内容,引导代码已经写入 SongYingdeMacBook-Pro:~ SongYing$ sudo dd if=/dev/disk2 bs=512 count=1 | hexdump -C 1+0 records in 1+0 records out 512 bytes transferred in 0.002200 secs (232739 bytes/sec) 00000000 fa 31 c0 8e d0 bc f0 ff fb 8e c0 8e d8 be 00 7c |.1.............|| 00000010 bf 00 e0 fc b9 00 01 f2 a5 ea 1e e0 00 00 66 31 |..............f1| 00000020 c0 66 a3 00 e4 b0 02 bb 00 10 e8 25 01 72 06 be |.f.........%.r..| 00000030 be 11 e8 09 00 bf a3 e1 e8 4a 01 f4 eb fd 81 7c |.........J.....|| 00000040 40 55 aa 75 5e 31 db fe c7 b9 04 00 66 8b 44 08 |@U.u^1......f.D.| 00000050 66 a3 00 e4 80 7c 04 00 74 36 80 7c 04 ee 75 05 |f....|..t6.|..u.| 00000060 c6 04 00 b3 01 80 ff 01 75 02 eb 09 80 3c 80 75 |........u.....;| 000000f0 74 08 66 3d b7 26 99 c7 75 1c 66 8b 44 20 66 a3 |t.f=.&..u.f.D f.| 00000100 00 e4 b6 01 e8 15 00 75 0d be be 11 66 89 44 08 |.......u....f.D.| 00000110 c6 44 04 af eb 8e 01 de e2 c4 5b c3 60 b0 03 bb |.D........[.`...| 00000120 00 7c e8 2d 00 0f 82 0c ff 08 f6 74 1d a1 00 80 |.|.-.......t....| 00000130 3d 48 2b 74 15 3d 48 58 74 10 a1 03 7c 3d 45 58 |=H+t.=HXt...|=EX| 00000140 74 08 a1 5a 7c 3d 42 4f 75 06 81 3e fe 7d 55 aa |t..Z|=BOu..>.}U.| 00000150 61 c3 51 b9 05 00 e8 06 00 73 02 e2 f9 59 c3 66 |a.Q......s...Y.f| 00000160 60 89 e5 1e 1e 66 8b 0e 00 e4 66 51 06 53 30 e4 |`....f....fQ.S0.| 00000170 50 6a 10 89 e6 b4 42 cd 13 73 05 31 c0 cd 13 f9 |Pj....B..s.1....| 00000180 89 ec 66 61 c3 60 57 be ac e1 e8 06 00 5e e8 02 |..fa.`W......^..| 00000190 00 61 c3 bb 01 00 fc ac 3c 00 74 06 b4 0e cd 10 |.a...... /Volumes/EFI/BOOT #至此,EFI分区引导链完成 #BIOS->MBR(boot0ss)->PBR(boot1f32)->BOOT(boot6)

拷贝 Clover 以及驱动资料,dmg文件内

#挂载 mojave+clover dmg文件的EFI分区 SongYingdeMacBook-Pro:~ SongYing$ diskutil mount /dev/disk1s1 Volume EFI on /dev/disk1s1 mounted #挂载结果,挂载在 /Volumes/EFI 1 SongYingdeMacBook-Pro:~ SongYing$ ls /Volumes/EFI\ 1/ EFI README.md #copy 文件 SongYingdeMacBook-Pro:~ SongYing$ cp -R /Volumes/EFI\ 1/* /Volumes/EFI SongYingdeMacBook-Pro:~ SongYing$ ls -l /Volumes/EFI total 899 -rwxrwxrwx@ 1 SongYing staff 450048 3 3 21:00 BOOT drwxrwxrwx 1 SongYing staff 512 3 3 21:10 EFI -rwxrwxrwx@ 1 SongYing staff 9488 3 3 21:11 README.md

 

 

Clover 启动成功

 

系统安装:

每个版本有差异。折腾了好久,找到一个版本

资料下载:https://www.dianruan.org/4686.html  MacOS Mojave 10.14.6 18G84原版镜像

用这个作为母盘启动。

注意:fix rtc 否则会改写CMOS,每次都要恢复CMOS。

看了下,这个CPU版本最高支持 10.13 High serria 

参考资料:

 

BIOS + GPT + GRUB + Linux + Windows 折腾笔记 https://blog.csdn.net/o_alpha/article/details/102959192

详解黑苹果引导程序clover小白教程 (分区位置)http://www.tzit.net/htmlitjs/2019-03-27/3387.html

clover教程和机制  https://www.ozmacos.com/3911.html

Clover引导Windows10,Mac OS High Sierra,CentOS7(黑哥) https://blog.csdn.net/qq_43348643/article/details/82956282

SMBIOS/Apple ID 设定 https://zhuanlan.zhihu.com/p/23932863

【让天下没有难装的黑果】3 在legacy传统BIOS下使用CLOVER模拟EFI引导在GPT格式硬盘上安装OS X+WIN双系统 (单/双硬盘) (分区位置分配)  http://blog.sina.com.cn/s/blog_9cdacc870102wtka.html

传统BIOS传统MBR分区,Clover硬盘安装基础教程 http://www.memacx.com/thread-5201-1-1.html

Clover MBR https://github.com/Clover-EFI-Bootloader/clover/tree/master/BootHFS

(启动扇区  MBR/DBR 或者叫 PBR )详解: http://www.360doc.com/content/11/0531/11/1074365_120667417.shtml

grub2 https://wenku.baidu.com/view/77c60ac2d4bbfd0a79563c1ec5da50e2524dd153?pcf=2&re=view

grub2 手册 https://www.cnblogs.com/f-ck-need-u/archive/2017/06/29/7094693.html

 

 

 

 



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3