如何重建2019款带Intel&T2芯片MacBook Pro的macOS EFI分区?
兄弟,我太懂你误删EFI分区的崩溃感了——尤其是带T2芯片的Intel Mac,分区操作本来就比普通机器敏感,还牵扯着双启动Fedora的需求。别慌,咱们一步步把macOS的EFI分区给重建回来:
先做最重要的事:备份数据!
分区操作有风险,先把macOS里的重要数据备份到外部硬盘,避免万一操作失误丢了东西。
步骤1:进入macOS恢复模式
重启你的Mac,按住 Command + R 不放,直到看到苹果标志或进度条,进入恢复模式。然后在顶部菜单栏的「实用工具」里打开「终端」。
步骤2:确认当前磁盘分区情况
先敲个命令确认你的磁盘状态,和你提供的信息对应上:
diskutil list
你会看到disk0是1TB的物理盘,disk0s1是400GB左右的APFS容器(装macOS的),disk0s2是Linux的EFI分区(NO NAME)。
步骤3:缩小APFS容器,腾出EFI空间
咱们需要在APFS容器前面腾出约314MB的空间(和你原来的EFI分区大小接近)。敲下面的命令:
diskutil apfs resizeContainer disk0s1 399885400000B
解释下:原来的disk0s1是400.2GB,减去314.6MB后得到这个数值,执行后会在disk0s1前面空出对应空间。如果报错,先敲diskutil verifyDisk disk0和diskutil verifyVolume disk1检查磁盘错误,修复后再试。
步骤4:用GPT创建新的EFI分区
因为T2 Mac的分区权限限制,咱们用gpt命令来创建分区:
- 先解锁磁盘(输入你的Mac密码):
diskutil unmountDisk disk0
- 创建EFI分区(注意命令里的参数别打错):
gpt add -i 1 -b 40 -s 619152 -t C12A7328-F81F-11D2-BA4B-00A0C93EC93B disk0
-i 1:把这个分区设为第1个分区(符合GUID表的标准EFI位置)-b 40:从第40扇区开始(前面40扇区是GUID表头)-s 619152:对应约317MB空间,和你原来的EFI大小差不多- 后面的长字符串是标准EFI分区的GUID类型标识符
步骤5:格式化新的EFI分区
EFI分区必须是FAT32格式,敲命令格式化:
diskutil eraseVolume fat32 EFI disk0s1
执行后,新的EFI分区就命名为「EFI」了。
步骤6:修复macOS的启动引导
现在需要把macOS的启动文件放到新EFI分区里:
- 先挂载你的macOS系统卷(一般是
disk1s1,如果卷名不是默认的「Macintosh HD」,记得替换):
diskutil mount disk1s1
- 用
bless命令设置引导:
bless --folder /Volumes/Macintosh\ HD/System/Library/CoreServices --bootefi --create-snapshot
如果这个命令报错,可能是系统完整性保护(SIP)限制,你可以先在恢复模式的终端里敲csrutil disable关闭SIP,重启后再重复步骤1到6,完成后再敲csrutil enable打开SIP。
步骤7:验证并重启
再敲diskutil list确认新的EFI分区(disk0s1)已经存在,然后重启Mac——应该能正常进入macOS了!
等你恢复macOS后,就可以正常运行T2Linux的firmware.sh脚本了,记得先在恢复模式的「启动安全实用工具」里把启动安全级别调低,允许从外部介质启动哦。
备注:内容来源于stack exchange,提问作者tom_kp




