使用黑苹果
更新于:2020–04–19
从2010年第一次使用Ubuntu之后,我一直都是Linux系统的坚实用户。2014年的时候,业余上的尝鲜心理以及工作上所任职的公司程序员被配置的默认工作平台均为macOS的事实,导致我打算迁移工作平台到macOS上,但发现macOS远不如自己想想那样的好用,比如诸多原本习惯的快捷键冲突的适应性问题,以及alt+tab在macOS下面特殊的表现等问题。这更加坚定了我Linux才是最最适合自己的工作平台系统的认知。这样的认为着就从没有再次想迁移工作平台到macOS下,直到2017年的某一天,偶然在网上看到一款字体的截图效果进而想要将这字体应用到自己的Emacs上的时候,发现Ubuntu似乎无论如何都无法调整到macOS下那样的字体渲染效果。所以再次萌生了想要切换平台到macOS系统之下的想法。
agave字体在macOS下的渲染效果可见下图:
但是仅仅因为一款字体就放弃掉自己使用长久了的Linux,对我而言,一时间是难以下定决心的。况且,关键的是自己早已深刻的认识到,macOS在系统的定制性以及快捷键的定制性上,完全及不上Linux。综合而言,这种情况下无论如何都是难以马上让自己做出决定买下一款苹果设备来当主力生产平台的。所以,一种折中的方案是,我在自己2014年配置好的这款台式主机上,安装一个黑苹果来尝试下看看自己是否能够按照自己在Linux上面已经定制好的使用感受和快捷键操作方式来改造好macOS系统。倘若不能改造好,又能否在心理上做出妥协适当的接受新迁移之后的改变。
时间转眼过去,略去很多过程的,结果上自己终于是部分改造部分适应的接受了macOS系统,最让我头疼感觉设计极其不符合当代的alt+tab问题(macOS是在应用间并非窗口间切换的)也找到了可行的解决办法。另外因为macOS的封闭性和商业性,显然我有了更多的可用应用,并且也很显然,macOS系统有着更加良好的GUI渲染效果,这样下来,基本上我已经有了充足的理由来购置一款苹果硬件设备来当做主力生产平台使用。然而的问题是,自己2014年购置的硬件至今却没有任何缺失或不满足我要求的地方,Windows+Ubuntu+macOS三系统在同一硬件中来去自如我切换,黑苹果甚至也运行的相当完美,我真的是找不到一个合适的理由来说服自己去挥霍一台新硬件出来。唯一有可能的是,我明年可能会改变现有的生活习惯,对移动性办公的要求可能会提升,这或许有可能会让我购置一款Macbook Pro。但不管怎么说,这远不是我当下需要着急要处理的事情。
我的安装过程
黑苹果进化到2020年,它的安装已经是非常简单了的。以安装Catalina为例,简单来说,只要按照此教程就行了:下载macOS系统,通过UniBeast应用来创建启动盘,安装Catalina,然后通过应用MultiBeast来安装macOS启动程序和驱动程序就可以了。
不过回想从我原本使用黑苹果装high sierra,到现在安装Catalina,因为我特殊的硬件,常常是在重新安装系统的时候遇到一些相同的问题反复在搜索进行着重复的解决,所以我打算写一遍博客记录一下。
我的系统配置
- 主板为BIOSTAR映泰的Hi-Fi B85N 3D (Intel B85/LGA 1150)
- CPU为i3–4150
- 显卡内置为HD4400
- 主硬盘为淘宝买的一款名叫士必得的SSD固态硬盘,打算安装macOS和win10
- 辅硬盘为一个机械硬盘,安装有Ubuntu系统,剩下空间作为数据存储分区
SSD硬盘问题
我配置的主机有两块硬盘,一块机械硬盘作为数据盘使用exFAT分区(此硬盘另安装有Linux系统作为主硬盘系统无法启动时紧急修复系统使用),另有一块固态硬盘安装的macOS和Windows系统。但在安装时候,我遇到的第一个问题就是,macOS的安装程序无法识别我的固态硬盘,导致我无法安装系统。我的解决方案是,将此固态硬盘通过USB方式作为移动设备连接,启动macOS安装程序将Catalina安装在USB设备的分区中,等到完成安装后先通过USB设备启动新安装的macOS系统,再来安装驱动解决SATA无法识别SSD硬盘的问题。
用MultiBeast安装驱动
等到Catalina安装完成并通过USB启动起来之后,先安装MultiBeast应用,打开后如下图依次选择VoodooHDA、intel Generic AHCI SATA、RealtekRTL8111 v2.2.2和Core Graphics Fixup AKA WhateverGreen来安装这些驱动。
SSD硬盘处理:AppleAHCIPort.kext和相关config.plist
安装完成后,再来解决SATA驱动SSD硬盘的问题:此时需要先挂载EFI分区,例如可以打开终端输入sudo mount -t msdos /dev/disk0s1 ~/efi
来挂载分区,或者可以直接下载EFI Mounter应用(提取码3nl1)来操作挂载EFI分区。
为了可以通过SATA来驱动我的SSD硬盘,我需要把AppleAHCIPort.kext
内核放在EFI分区的CLOVER/kexts/Other
目录下,并且打开CLOVER/config.plist
文件在如下图所示的位置添加如下代码:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
...... <dict> <key>Comment</key> <string>ALPM IO Error AppleAHCIPort</string> <key>Disabled</key> <false/> <key>Find</key> <data>QGACAA==</data> <key>InfoPlistPatch</key> <false/> <key>Name</key> <string>AppleAHCIPort</string> <key>Replace</key> <data>AAAAAA==</data> </dict> ...... |
Clover相关的问题
Clover的启动项参数
在启动Clover的时候,选择[option]按钮,编辑启动参数,加入-v
输出详细日志信息,-s
进入但用户模式,-x
进入安全模式,-f
为no kext cache mode。
Clover分辨率的问题
这样操作完之后,重启电脑即可(为了方便,我通常都会通过Clover Configurator应用来修改添加-v
参数来使之启动的时候默认展示出debug信息)。另外需要注意的是,我的电脑在Clover启动选择启动分区启动的时候,屏幕分辨率很低导致界面图标很大,是通过禁用BIOS中的CSM选项来搞定的。
开机Boot Menu缺失Clover引导选项的问题处理
此时,再拆掉USB移动硬盘,通过SATA接口将硬盘直接连接到电脑启动macOS(此时如果缺失CLOVER引导项,可以通过安装盘的CLOVER启动选择添加所有启动项来完成)。如果顺利,此时就能正常启动黑苹果了。
Clover问题的debug命令
- 系统中打开终端,可以通过如下命令来查看加载了的内核:
kextstat |grep AHCI
。 - 如果Clover启动有任何问题,可以通过
bdmesg |more
来查看Clover的启动日志。 - 如果需要查看Disk / Partition UUID,macos下可以通过比如:
diskutil info /dev/disk1
(/Volumes/name
也可以)。或者可以在「关于本机」> 「系统报告」里面查看。
移除Clover中的启动项
如果觉得Clover的启动项太多,可以通过编辑EFI分区的config.plist文件来隐藏:
1 2 3 4 5 6 7 8 9 |
...... <key>GUI</key> <dict> <key>Hide</key> <array> <string>data</string> <string>ndata</string> </array> ...... |
Clover默认启动卷
另外的是,比如我遇到了在Clover的启动界面,无法从已定义的磁盘启动系统的问题,是通过sudo bdmesg
看Clover的日志发现有如下错误GetEfiBootDeviceFromNvram Default boot entry not found
来debug的。
其实有一种指定分区可以在Clover下次启动的时候自动选择分区卷来自动启动的方式是:在 Mac 上,选取「苹果菜单」 >「系统偏好设置」,然后点按「启动磁盘」,再点按想要使用的磁盘的图标,然后点按「重新启动」,可见:https://support.apple.com/zh-cn/guide/mac-help/mchlp1034/mac。
但是,我最后发现我的问题是,EFI分区的Clover启动共有两个引导文件,一个是BOOT/BOOTx64.efi
,还有一个是CLOVER/CLOVERX64.efi
。如果使用后者引导启动Clover,Clover的默认设置的自启动分区卷和鼠标均不正常工作,而使用前者则并无这个问题。
HD4400显卡显示问题
驱动似乎是自动识别的,并不需要额外处理,唯一等问题是,打开大型图片等时候卡顿,图片显示异常。
更新系统
另外,如果macos官方有推送系统更新,直接更新重启即可,Clover会自动从Preboot启动来安装更新包进入系统的。
系统损坏处理
例如,如果不小心在安装kext的时候,系统不能正常启动了,可以使用原安装设备启动安全程序,不格式化安装分区,重新安装一次系统即可。
如果系统启动后,旧管理员用户变成了普通用户,此时启动恢复模式或者安装程序,选择命令行工具,编辑/private/etc/sudoers
文件,加入自己用户的所有权限,例如可为yanying ALL = (ALL) ALL
。
或者,有说法是删除/private/var/db/.AppleSetupDone
可另重新启动系统时进行引导操作。
或者,使用dscl
命令例如:dscl . -append /groups/admin GroupMembership yanying
。
macOS中应用的config文件位置
可在: * /Library/Preferences/
, ~/Library/Preferences
* ~/Library/Application Support/
/Library/Application Support/
* ~/Library/Caches/