怎么修

怎么修

当需要在 Mac OS X 系统上安装文件中的软件包时.pkg,系统会使用随系统提供的软件包安装程序。在安装任何软件包的某个时刻,系统都会询问应在哪个文件系统分区上安装该软件包。在我的系统上,它过去会显示安装 Mac OS X 的分区,称为“Macintosh HD”,但由于我不知道的原因,它现在不再显示,而是只显示两个恢复分区,都称为“Recovery HD”;这实际上使我无法使用软件包安装程序安装任何东西。此外,Mavericks 安装程序中的可用选项中也没有系统分区,这意味着这个问题也阻止我将系统从 Mountain Lion 升级到 Mavericks。

我告诉磁盘实用程序修复硬盘,但它没有发现任何问题。我还想修复系统分区,但它没有出现在磁盘实用程序的分区列表中。后来我通过启用磁盘实用程序的调试模式让它显示出来,虽然修复选项是灰色的,但我能够运行验证,没有发现任何问题,并修复权限。

此外,当选择硬盘时,磁盘实用程序的“分区”选项卡显示系统分区应该在的位置实际上是 207.91 GB 的可用空间。我以前使用过一些其他分区来运行 Debian 系统,但后来我删除了它们,现在它们都是空分区。

最后,当选择硬盘时,我无法从磁盘实用程序的“分区”选项卡中更改分区布局:每次我尝试删除分区或应用更改时,它都会告诉我要求的更改太小并拒绝执行。

我当前的系统是运行在 Mac mini 上的 Mac OS X 10.8.5。

答案1

好的,您的 GPT 已全部损坏。您的许多分区都标有错误的分区类型。但是您的 PMBR 看起来很完美,所以这很好。

让我们看看您的 GPT(确保您的窗口很宽或水平滚动以查看“应该是”列):

      起始大小索引内容 - “标签”类型应为
          0 1 PMBR
          1 1 Pri GPT 标头
          2 32 Pri GPT 表
         34 6         
         40 409600 1 GPT 部分 - “EFI 系统分区” EFI 系统分区
     409640 404390464 2 GPT 部分 - “Macintosh HD” Apple_Boot HFS+
  404800104 1269544 3 GPT 部分 - “Recovery HD” EFI 系统分区 Apple_Boot
  406069648 1269544 4 GPT 部分 - “Recovery HD” HFS+ Apple_Boot(或者直接删除它)
  407339192 1269536 5 GPT 部分 - “Recovery HD” HFS+ Apple_Boot(或者直接删除它)
  408608728 40         
  408608768 279976563 6 GPT 部分 - “Ubuntu” Apple_Boot Linux 文件系统数据?
  688585331 1421         
  688586752 974848 7 GPT 部分 - “” EFI 系统分区 不确定?也许直接删除它?
  689561600 13410304 8 GPT 部分 - “Apple_HFS_Untitled_6” HFS+
  702971904 262144         
  703234048 5597184 9 GPT 部分 - “Apple_HFS_Untitled_5” HFS+
  708831232 262144         
  709093376 780288 10 GPT 部分 - “Apple_HFS_Untitled_4” HFS+
  709873664 258428928 11 GPT 部分 - “Apple_HFS_Untitled_3” HFS+
  968302592 262144         
  968564736 7946248 12 GPT 部分 - “Apple_HFS_Untitled_2” HFS+
  976510984 262151         
  976773135 32 秒 GPT 表
  976773167 1 秒 GPT 标头

因此,看起来索引 2、3、4、5、6 和 7 处的分区在 GPT 中都被标记为错误的分区类型,如果它们中没有任何有价值的数据,也许可以删除其中一些分区。我也不确定为什么您有一堆较小的 HFS+ 分区,例如索引 10 处的分区,只有 390 MB(381 MiB)。您是故意把它们放在那里的,还是知道它们是什么以及上面有什么?或者它们也是这个奇怪的混乱分区表之谜的一部分?

我应该声明,我不太了解 Debian 如何对磁盘进行分区,尤其是在 Mac 硬件上。我知道曾经有一段时间,使用 GPT 的 Windows PC 上的 Linux 发行版使用 Windows 分区类型作为 Linux 文件系统,但我认为这种旧方法如今已不再受欢迎。也许 Debian 在 GPT 中使用了 Apple 风格的分区类型标记,但“在内部”将它们用作 Linux 文件系统和交换分区?

怎么修

解决此问题的一种方法是使用命令gpt删除类型错误的分区表条目,然后使用正确的类型重新添加它们。这是一项棘手的工作,如果您犯了错误,您很有可能丢失整个分区或驱动器上的所有内容。

但情况会是这样的:

删除类型为 Apple_Boot 的“Macintosh HD”的“坏”条目(该 GUID 以 426 开头...):

sudo gpt remove -b 409640 -s 404390464 -i 2 -t 426F6F74-0000-11AA-AA11-00306543ECAC disk0

为其添加一个“好”条目,这次类型为 HFS+(GUID 以 484 开头...):

sudo gpt add    -b 409640 -s 404390464 -i 2 -t 48465300-0000-11AA-AA11-00306543ECAC disk0

现在再次将其标记为“Macintosh HD”:

sudo gpt label  -b 409640 -s 404390464 -i 2 -l "Macintosh HD" disk0

请注意,在“remove”和“label”命令中,我以多种方式选择分区。我格外小心,避免输入错误;如果所有三种选择器类型不匹配,我不希望该命令起作用,因为这意味着我输入错误。

请注意,您必须在从其他设备启动时执行这些命令,这样您正在编辑的磁盘就不会忙。请非常小心起始/开始块和大小/长度数字。编辑分区表的风险由您自己承担。在编辑分区表之前,请对您关心的所有内容进行完整备份(并测试您的备份)。

相关内容