当需要在 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”命令中,我以多种方式选择分区。我格外小心,避免输入错误;如果所有三种选择器类型不匹配,我不希望该命令起作用,因为这意味着我输入错误。
请注意,您必须在从其他设备启动时执行这些命令,这样您正在编辑的磁盘就不会忙。请非常小心起始/开始块和大小/长度数字。编辑分区表的风险由您自己承担。在编辑分区表之前,请对您关心的所有内容进行完整备份(并测试您的备份)。