如何修复损坏的GPT,GUID和不可安装的无类型卷?


10

我有一台Macbook Pro,配备视网膜,优胜美地和500GB硬盘。我尝试使用Bootcamp安装Windows,并意外删除了一个分区,现在Mac无法启动了。这是来自的输出sudo gpt -r show disk0

  gpt show: disk0: Suspicious MBR at sector 0
    start       size  index  contents
        0          1         MBR
        1          1         Pri GPT header
        2         32         Pri GPT table
       34          6         
       40     409600      1  GPT part - C12A7328-F81F-11D2-BA4B-00A0C93EC93B
   409640  776617328      2  GPT part - FFFFFFFF-FFFF-FFFF-FFFF-FFFFFFFFFFFF
777026968    1269760      3  GPT part - 48465300-0000-11AA-AA11-00306543ECAC
778296728        616         
778297344  198807552      4  GPT part - 48465300-0000-11AA-AA11-00306543ECAC
977104896        131         
977105027         32         Sec GPT table
977105059          1         Sec GPT header

我只需要使第二个分区位于索引2并键入FFFFFFFF-FFFF-FFFF-FFFF-FFFFFFFFFFFF即可再次引导。此分区已启用FileVault 2。

但是现在,我不知道该怎么办。

P / S:我按照@klanomath的说明从具有完整Yosemite系统的外部硬盘启动,但是在最后一个更改分区类型的命令中

sudo gpt add -b 409640 -s 776617328 -i 2 -t 53746F72-6167-11AA-AA11-00306543ECAC /dev/disk0

出现此错误:

gpt add: /dev/disk0: Suspicious MBR at sector 0
gpt add: /dev/disk0: error: no space available on device

这是来自的输出 sudo gpt -r show /dev/disk0

   gpt show: /dev/disk0: Suspicious MBR at sector 0
     start       size  index  contents
         0          1         MBR
         1          1         Pri GPT header
         2         32         Pri GPT table
        34          6         
        40     409600      1  GPT part - C12A7328-F81F-11D2-BA4B-00A0C93EC93B
    409640  776617328      2  MBR part 218
 777026968    1269760      3  GPT part - 48465300-0000-11AA-AA11-00306543ECAC
 778296728        616         
 778297344  198807552      4  MBR part 175
 977104896        131         
 977105027         32         Sec GPT table
 977105059          1         Sec GPT header

进展:

我已经执行了命令 sudo gpt destroy /dev/disk0

但是当我尝试使用此命令重新添加第一个分区时 sudo gpt add -b 40 -s 409600 -i 1 -t C12A7328-F81F-11D2-BA4B-00A0C93EC93B /dev/disk0

我马上得到这个错误

gpt add: /dev/disk0: Suspicious MBR at sector 0
gpt add: /dev/disk0: error: no primary GPT header; run create or recover

现在命令sudo gpt -r show /dev/disk0给我这个

   gpt show: /dev/disk0: Suspicious MBR at sector 0
     start       size  index  contents
         0          1         MBR
         1     409639         
    409640  776617328      2  MBR part 218
 777026968    1269760      3  MBR part 175
 778296728        616         
 778297344  198807552      4  MBR part 175
 977104896        164

进度2:

我执行sudo gpt create /dev/disk0 并收到此错误:

gpt create: /dev/disk0: Suspicious MBR at sector 0
gpt create: /dev/disk0: error: device contains a MBR

我执行了此命令sudo fdisk -i -a hfs /dev/disk0以写入新的MBR并sudo gpt create /dev/disk0再次执行,但是得到了相同的错误gpt create: /dev/disk0: error: device contains a MBR

现在sudo gpt -r show /dev/disk0给我这个

      start       size  index  contents
      0          1         MBR
      1         62         
     63  977104997      1  MBR part 175

进度3和决赛:D

首先,非常感谢@klanomath,如果没有帮助,我将走不了那么远。

我执行了这个命令 sudo gpt create -fp /dev/disk0

然后此命令sudo gpt recover /dev/disk0获取辅助GPT标头

之后,我执行sudo gdisk /dev/disk0并安装了磁盘并正常运行

Answers:


11

第二个分区的内容类型错误。而不是FFFFFFFF-FFFF-FFFF-FFFF-FFFFFFFFFFFF必须如此53746F72-6167-11AA-AA11-00306543ECAC

要编辑内容类型,您必须启动到Internet Recovery Mode并使用gpt。此外,将删除第四个分区(可能是“已删除”分区)。请检查其中是否包含任何数据!

制备:

  • 卸下任何外部驱动器(尤其是外部Time Machine备份驱动器)
  • alt cmd R在启动时按重新启动到Internet恢复模式。

    先决条件是安装的最新固件更新(以太网或WLAN(WPA / WPA2))和激活了DHCP的路由器。
    在50 Mbps的线路上,大约需要4分钟(呈现一个小的动画地球)启动到恢复网络启动映像,该映像通常是从Apple / Akamai服务器加载的。

    我推荐以太网,因为它更可靠。如果您只能使用WIFI,并且启动过程失败,则只需重新启动Mac,直到成功启动为止。

    或者,您可以从可引导的安装程序拇指驱动器(最好是优胜美地或El Capitan)或包含完整系统的拇指驱动器(最好是优胜美地或El Capitan)开始。如果您启动到完整的系统并以admin身份登录,则必须sudo先执行gpt ...

删除第四个分区并更改第二个分区的内容类型

  • 引导至Internet恢复模式,打开菜单栏中的实用程序→终端,然后输入: diskutil list以获取磁盘标识符。下面我假设您的主磁盘具有磁盘标识符disk0。

  • 首先,您必须删除第四个分区(仅当它确实为空时才这样做!):

    gpt -r show /dev/disk0 #to get an overview
    

    要删除gpt磁盘分区,必须先卸载:

    diskutil unmountDisk /dev/disk0
    gpt remove -i 4 /dev/disk0 #remove the fourth partition
    
  • 然后,您必须更改第二个分区的内容类型:

    diskutil unmountDisk /dev/disk0
    gpt remove -i 2 /dev/disk0 #remove the second partition
    gpt add -b StartBlock -s NumberOfBlocks -i 2 -t 53746F72-6167-11AA-AA11-00306543ECAC
    

    在您的情况下:

    gpt add -b 409640 -s 776617328 -i 2 -t 53746F72-6167-11AA-AA11-00306543ECAC /dev/disk0
    
  • 现在,应该询问您FileVault密码。输入它。
  • 进入exit和退出终端
  • 检查主卷Macintosh HD中是否有错误
  • 退出磁盘实用程序,然后重新启动到主卷

附录:删除顽固的MBR

您可以在块0处使用fdiskgpt删除MBR。如果使用admin用户,请sudogpt ....命令前添加。

  • 首先再次获得概述。在销毁gpt之前,这一步骤很重要,因为这是从头开始重建它的来源:

    gpt -r show /dev/disk0
    
  • 然后删除gpt:

    diskutil unmountDisk /dev/disk0
    gpt destroy /dev/disk0
    
  • 创建一个新的GUID分区表:

    gpt create -f /dev/disk0
    
  • 最后一个一个地添加所有分区:

    gpt add -b 40 -s 409600 -i 1 -t C12A7328-F81F-11D2-BA4B-00A0C93EC93B /dev/disk0
    gpt add -b 777026968 -s 1269760 -i 3 -t 426F6F74-0000-11AA-AA11-00306543ECAC /dev/disk0
    gpt add -b 409640 -s 776617328 -i 2 -t 53746F72-6167-11AA-AA11-00306543ECAC /dev/disk0
    

    提示:如果保留正确的索引号,则可以按任意顺序添加和删除分区。在上述命令中,我... -i 3 ...在添加第二个分区()之前添加了第三个分区(... -i 2 ...)。然后,您不必卸载disk0,因为分区i = 1和i = 3不包含自动挂载的卷,而第二个分区则包含自动挂载的卷。

    我错过了在答案的第一部分中检测到 Recovery HD的错误分区类型(索引号为3的第三个分区)的问题。因此,我使用了:

    gpt add -b 777026968 -s 1269760 -i 3 -t 426F6F74-0000-11AA-AA11-00306543ECAC /dev/disk0
    

    以上而不是错误的

    gpt add -b 777026968 -s 1269760 -i 3 -t 48465300-0000-11AA-AA11-00306543ECAC /dev/disk0 #wrong partition type of the Recovery HD
    

    重新添加它。

    如果仍然出现错误,请使用来解决MBR fdisk。如果您使用管理员用户,请sudo使用以下fdisk ...命令:

    fdisk -i -a hfs /dev/disk0
    

    并添加gpt ...上面概述的gpt条目。


调整主卷大小以填满整个磁盘

最后,您可能想要调整主卷的大小以填满整个磁盘。

  • 通过以下方式获得概述:

    diskutil cs list
    

    如果您从具有完整系统的外部驱动器启动,则可能会有多个CoreStorage逻辑卷组!使用正确的一个!

  • 调整整个堆栈的大小:

    diskutil cs resizeStack lvUUID size #lvUUID is the UUID of the Logical Volume. Usually it's the last one listed.
    

    启动到优胜美地,您可以使用0g它来扩展大小。0g在这里是“神奇”的大小。

    diskutil cs resizeStack lvUUID 0g
    

    启动至El Capitan后,您必须使用像的实际尺寸500g。如果出现错误,请使用较小的尺寸,例如499g499500m

    diskutil cs resizeStack lvUUID 500g
    

1
我仍然被卡住。首先,执行“ gpt delete -i 2 / dev / disk0”后,它说“ gpt:unknown命令:delete”,因此我假设我需要将“ delete”更改为“ remove”。但是在我需要执行的最后一条命令中,它说“ gpt add:/ dev / disk0:错误:设备上没有可用空间”
LN

我已按照您的指示并在问题中发布了结果,谢谢
LN

我遵循了第二条指令,不幸的是,我再次被错误“ gpt add:/ dev / disk0:错误:没有主要的GPT标头;运行创建或恢复”卡住了。我添加了进度
LN

不用担心,我只是更新了进度。看起来我无法摆脱MBR
LN

1
知道几个月前何时发生同样的确切问题对我很有用... klanomath从未使我对他对Mac的了解程度感到惊奇。我最终丢失了所有数据。
Flare Cat
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.