macOS系统下使用gpt命令修复损坏的EFI分区

macOS系统下使用gpt命令修复损坏的EFI分区命令及用法

显示gpt分区

命令如下:

sudo gpt -r show disk0 start size index contents 0 1 PMBR 1 1 Pri GPT header 2 32 Pri GPT table 34 2014 2048 614400 1 GPT part - C12A7328-F81F-11D2-BA4B-00A0C93EC93B 616448 409600 2 GPT part - E3C9E316-0B5C-4DB8-817D-F92DF00215AE 1026048 157696000 3 GPT part - EBD0A0A2-B9E5-4433-87C0-68B6B72699C7 158722048 32000000 4 GPT part - 48465300-0000-11AA-AA11-00306543ECAC 190722048 262144 190984192 196116728 5 GPT part - 7C3457EF-0000-11AA-AA11-00306543ECAC 387100920 400937448 6 GPT part - 48465300-0000-11AA-AA11-00306543ECAC 788038368 262144 788300512 1280000 7 GPT part - 5361644D-6163-11AA-AA11-00306543ECAC 789580512 129175576 8 GPT part - 48465300-0000-11AA-AA11-00306543ECAC 918756088 1269536 9 GPT part - 426F6F74-0000-11AA-AA11-00306543ECAC 920025624 19594968 10 GPT part - EBD0A0A2-B9E5-4433-87C0-68B6B72699C7 939620592 59325048 11 GPT part - 48465300-0000-11AA-AA11-00306543ECAC 998945640 1269536 12 GPT part - 426F6F74-0000-11AA-AA11-00306543ECAC 1000215176 7 1000215183 32 Sec GPT table 1000215215 1 Sec GPT header

其中:

  • C12A7328-F81F-11D2-BA4B-00A0C93EC93B 是EFI系统分区(ESP)的标志
  • index 是指磁盘分区,这里的数值是 1 ,也就是说是设备 disk0 的第一个分区
  • start 是指开始的扇区,这里的数值是: 2048
  • size 是指扇区的偏移量,这里的数值是: 614400

删除“坏”的EFI分区,请先阅读下面的警告信息,再运行以下命令:

  • 确保你知道你在做什么,然后再从这里开始 - 如果你搞砸,你可能会丢失数据。
  • 您无法使用 gpt 编辑分区表,而驱动器上的分区已装入,因此您需要从另一个驱动器(例如,使用OSX安装程序的USB记忆棒)引导,或者以目标磁盘模式运行mac并从另一个mac进行分区操作。
  • 您可能需要使用 diskutil unmountDisk disk0 卸载任何自动安装的卷,然后再继续执行下面的操作。
sudo gpt remove -i 1 disk0
  • 确保disk0真的是要更改的磁盘 - 数字可以在重新启动之间更改。
  • 而且,只有在EFI系统分区(ESP)已经存在的情况下才能运行,如果没有,则删除分区1可能是灾难性的! 在这种情况下,您需要移动索引,因为我认为ESP必须具有索引 1

重新添加分区与正确的布局和类型:

sudo gpt add -b 2048 -i 1 -s 614400 -t C12A7328-F81F-11D2-BA4B-00A0C93EC93B disk3

执行完这三条命令,您的EFI系统分区(ESP)也就恢复正常了。

dd命令的基本用法

其实在做修复之前,也可以使用 dd 命令将EFI分区做个备份,尤其是准备在同一块磁盘里面安装Windows和MacOS的同学,更应该先做个EFI分区的备份,以便EFI被 玩坏 后可以恢复如初。

EFI分区备份到文件,命令如下:

sudo dd if=/dev/rdisk0s1 of=~/Desktop/ESP.img # 将EFI分区备份到用户目录-桌面,文件名为:ESP.img

从备份文件恢复到ESP分区,命令如下:

sudo dd if=~/Desktop/ESP.img of=/dev/rdisk0s1 # 将备份文件ESP.img恢复到EFI分区

本文来源:daliansky

# 更多macOS技巧,请关注「macOS专题