前情请参阅:《ThinkPad T450s 黑苹果升级》。
为了解决登录不进桌面的问题,着实思索过不少可能的原因以及验证或者解决的路子,可惜得很,都没有奏效。从体感上,既然已经成功启动到了登录界面,EFI 其实是应该没什么问题的,但询问 AI 后,AI 的回答又让人不敢完全确定。AI 是这么说的,在登录界面时可能系统使用的是较为基础的显卡驱动程序,而当进入到用户桌面时,它会尝试加载可能更加匹配的高性能的显卡驱动,对应于本案例,则正好是发生卡死的时机。你看,这说法也相当成立。
昨晚又想尝试一次,是因为发现了另一个人在 GitHub 上公开新的 EFI。这个人看上去是个新手,写的说明文档是从制作安装盘开始的,但三太爷作为一个普通用户,在之前使用的 EFI 仓库 issue 帖下发表请教而无人问津长达数月,把新出现的 EFI 当作稻草救救命也应该无可厚非。过程相对顺利,结果如出一辙。问题还是那个问题,输入用户名和密码,有错误还则罢了,有视觉动效略作提醒,停留在本界面等待重试,而如若没有错误,则等候动画旋转不止,就此无限下去。
这次,三太爷感觉应该和 EFI 关联性不大了,毕竟这个新的 EFI 看上去和先前的 EFI 相关性极小,并非肉眼可见的衍生物。如果是这样的话,那么问题可能出在要登录的那个用户的软件环境上。要想验证这个想法,可行的方法有一个:为这个无法登录当前唯一用户的系统新建一个用户。经过查阅资料,发现大部分都要在恢复模式下进行操作,而这个黑苹果,如何进入恢复模式本身就是个讨厌差事。再度进行探求,发现了 dscl 命令的进阶用法,原来它是可以针对一份本机当前系统之外的系统进行操作的。
这个命令的相关信息不算多,如果你在打 AI 的主意的话,三太爷特别提醒,要非常小心,它的知识库很可能不足够准确,尤其是对各个参数的形式要求。历经在命令行下的种种组合尝试,三太爷终于在 MacBook Pro 2015 无头骑士上,把 ThinkPad T450s 所用的黑苹果的系统盘用 USB 外接起来,成功创建了一个新的管理员账户。
为了让可能的同路人少走弯路,此处将添加新用户的脚本给出。Monterey 是目标系统所在的宗卷,最后一行的 merge 是将新建用户指定为管理员。执行时会提示为新建用户输入密码,别不赘述。
|
1 2 3 4 5 6 7 8 9 10 11 12 |
[crayon-69c372cc8094c727146271 inline="true" ]export TARGET="/Volumes/Monterey" export USERNAME="oldman" export USERID="1976" sudo dscl -f "$TARGET/var/db/dslocal/nodes/Default" localonly create ./Local/Default/Users/$USERNAME sudo dscl -f "$TARGET/var/db/dslocal/nodes/Default" localonly create ./Local/Default/Users/$USERNAME UserShell /bin/zsh sudo dscl -f "$TARGET/var/db/dslocal/nodes/Default" localonly create ./Local/Default/Users/$USERNAME RealName "Oldman" sudo dscl -f "$TARGET/var/db/dslocal/nodes/Default" localonly create ./Local/Default/Users/$USERNAME UniqueID "$USERID" sudo dscl -f "$TARGET/var/db/dslocal/nodes/Default" localonly create ./Local/Default/Users/$USERNAME PrimaryGroupID 20 sudo dscl -f "$TARGET/var/db/dslocal/nodes/Default" localonly create ./Local/Default/Users/$USERNAME NFSHomeDirectory /Users/$USERNAME sudo dscl -f "$TARGET/var/db/dslocal/nodes/Default" localonly passwd ./Local/Default/Users/$USERNAME sudo dscl -f "$TARGET/var/db/dslocal/nodes/Default" localonly merge ./Local/Default/Groups/admin GroupMembership $USERNAME |
把黑苹果从 USB 上断开,放回到 T450s 重启,登录界面如愿出现了新创建的用户,并且在输入密码后成功登录。在界面里执行操作感觉很卡,不过这次老夫倾向于是 EFI 的锅了,因为这份新的 EFI 的安装指令中本就要求系统安装完成后还要使用 OpenCore Legacy Patcher 做一些善后事宜。但老夫的直觉想法是换回之前用的那份 EFI,:)。
附录。AI 其实还提出过一个思路,它说如果你把一份 macOS 系统中存放于 /var/db 下的 .AppleSetupDone 文件删除的话,重启系统会引发新装系统后的设置助理执行起来。然而事实是老夫多次尝试,并没有任何效果,且该文件会被重新创建出来(macOS Sequoia)。
