MacOS系统下使用gpt命令修复损坏的EFI分区
今天在远景论坛里看到有坛友将EFI的分区损坏,于是就跟帖回复,现将回复的内容整理下放到博客上,让更多遇到问题的人看到。
命令及用法
显示gpt分区
命令如下:
1 | sudo gpt -r show disk0 |
其中:
C12A7328-F81F-11D2-BA4B-00A0C93EC93B
是EFI系统分区(ESP)的标志index
是指磁盘分区,这里的数值是1
,也就是说是设备disk0
的第一个分区start
是指开始的扇区,这里的数值是:2048
size
是指扇区的偏移量,这里的数值是:614400
删除“坏”的EFI分区,请先阅读下面的警告信息,再运行以下命令:
- 确保你知道你在做什么,然后再从这里开始 - 如果你搞砸,你可能会丢失数据。
- 您无法使用
gpt
编辑分区表,而驱动器上的分区已装入,因此您需要从另一个驱动器(例如,使用OSX安装程序的USB记忆棒)引导,或者以目标磁盘模式运行mac并从另一个mac进行分区操作。 - 您可能需要使用
diskutil unmountDisk disk0
卸载任何自动安装的卷,然后再继续执行下面的操作。
1 | sudo gpt remove -i 1 disk0 |
- 确保disk0真的是要更改的磁盘 - 数字可以在重新启动之间更改。
- 而且,只有在EFI系统分区(ESP)已经存在的情况下才能运行,如果没有,则删除分区1可能是灾难性的! 在这种情况下,您需要移动索引,因为我认为ESP必须具有索引
1
重新添加分区与正确的布局和类型:
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分区备份到文件,命令如下:
1 | sudo dd if=/dev/rdisk0s1 of=~/Desktop/ESP.img # 将EFI分区备份到用户目录-桌面,文件名为:ESP.img |
从备份文件恢复到ESP分区,命令如下:
1 | sudo dd if=~/Desktop/ESP.img of=/dev/rdisk0s1 # 将备份文件ESP.img恢复到EFI分区 |
关于打赏
您的支持就是我更新的动力!
如果不希望看到博主停更的话,请点击下方的 打赏
支持一下,有钱的捧个钱场,没钱的捧个人场,谢谢大家!