我有一个使用 GPT 的 2 TB USB 驱动器,但是当我在磁盘上插入一个分区后,我的 MacBook Pro(2015 年初)上的 OSX(10.11.4)停止识别我的 HFS+ 分区。
这是我最初拥有的,并且 OSX 在 Finder 中正确列出了所有分区:
[ Elements | Extra Fett | | Time machine ]
[ NTFS | ExFAT | Unallocated | HFS+ ]
[ ~1500 | 97 | 97 | 167 ] (GB)
该驱动器当前具有以下布局(我缩小了 Elements 并创建了 TESTPART):
[ Elements | TESTPART | Extra Fett | | Time machine ]
[ NTFS | FAT32 | ExFAT | Unallocated | HFS+ ]
[ ~1350 | 150 | 97 | 97 | 167 ] (GB)
...但这是 OSX 所看到的(仅列出 Finder 中的前三个):
[ Elements | TESTPART | Extra Fett | | ? ]
[ NTFS | FAT32 | ExFAT | Unallocated | ? ]
[ ~1350 | 150 | 97 | 97 | 167 ] (GB)
发生了什么?我认为这个操作在 GPT 驱动器上不会有问题。
更多详细信息
Ubuntugdisk
表示它使用的是带有保护性 MBR 的 GPT,并且 gdisk 和 gparted 都列出了所有分区,没有任何问题。Windows 10 分区管理器也列出了所有分区,并表示驱动器使用 GPT。
当我diskutil list
在 OSX 上运行时,我得到:
/dev/disk2 (external, physical):
#: TYPE NAME SIZE IDENTIFIER
0: GUID_partition_scheme *2.0 TB disk2
1: Microsoft Basic Data Elements 1.5 TB disk2s1
2: Microsoft Basic Data Extra Fett 104.9 GB disk2s2
3: Microsoft Basic Data 167.8 GB disk2s3
4: Microsoft Basic Data TESTPART 157.3 GB disk2s4
我认为存在以下几个问题:
- 这未分配空间未列出。
- 分区肯定列在错误的顺序。
- HFS+ 卷 #3(我的时间机器)以前在 OSX 中一直可见,失去了标签并被列为 Microsoft Basic Data。它不再显示在 Finder 或磁盘实用程序中。自从我缩小 Elements 后,这种情况就发生了。我在结果空间中创建了 TESTPART(在 Win10 中完成)。
答案1
未分配空间不显示其实并不是什么问题;许多程序(包括gdisk
和diskutil
)只显示分区,而不显示未分配空间。GParted 和等工具cgdisk
明确显示未分配空间(尽管我认为 GParted 也会忽略低于特定大小的未分配空间)。
定义分区顺序有两种方式:分区本身在磁盘上的顺序以及分区表中指向分区的指针的顺序。如果这两个顺序匹配,则最不容易混淆,但 GPT(或 MBR 主分区)中没有任何内容可以强制执行这一点。因此,无序分区很常见,并不一定意味着存在问题。不必担心这个细节。
因此,您报告的唯一真正问题是您的 HFS+ 卷已无法访问。这可能可能是分区表问题,但更可能是文件系统问题。不幸的是,由于没有分区起始点的详细前后信息,我无法区分这两种可能性。最安全的做法是:
- 在 OS X 或 Linux 中对分区进行低级备份
dd
,如sudo dd if=/dev/disk2s3 of=/path/to/lots/of/space/disk2s3-backup.img
。这将保留分区中的数据,以防下一步使情况变得更糟,这是真正有可能的。您还应该使用主菜单b
上的选项备份当前的分区表。gdisk
- 使用 OS X 的磁盘实用程序修复分区。GUI 工具应该可以做到这一点。我不太熟悉 OS X 命令行工具如何做到这一点,但在 Linux 中可以
fsck
,在 OS X 中可能也一样。 - 如果这不起作用,请通过反转
if=
和of=
选项恢复您在步骤1中所做的备份。
如果这不起作用,我还有一些其他建议:
- 您可以删除错误的分区并尝试使用测试磁盘或类似的东西来恢复它。这里的想法是,无论您使用什么来修改分区,都可能调整了 HFS+ 分区的起始点,这将导致它无法访问。TestDisk 会扫描文件系统并为它们创建新的分区表条目,这应该可以解决这个问题。不过,这并不是一件万无一失的事情。
- 重新创建分区并从备份中恢复其文件。
- 如果失败,请恢复原始分区(通过使用现在的精确起点和终点重新创建它或通过恢复
gdisk
分区表备份)并使用相簿或类似工具,逐个文件恢复分区内容。这比从备份中恢复文件要繁琐得多,而且您不太可能恢复所有内容,但如果幸运的话,您将能够恢复大多数文件。
了解您使用什么工具来调整 NTFS 分区的大小并创建新分区可能会有所帮助。虽然我不知道常用实用程序中是否存在会导致这种确切症状的错误,但我当然更信任某些分区工具。(标准 Windows 实用程序是非常例如,MBR 磁盘上的扩展/逻辑分区存在错误 - 但您的是 GPT 磁盘,所以这并不是什么问题。)
编辑:
我刚刚注意到您的描述中有一些内容: 应该为 HFS+ 卷的内容被 标记为“Microsoft Basic Data”类型diskutil
。这完全是错误的。使用 可以轻松修复gdisk
:
gdisk
在磁盘上启动。- 键入
p
以查看分区表并明确识别无法访问的分区。我预计它是分区 3,但最好确定一下。 - 键入
t
以更改类型代码。系统将要求您输入分区号。 - 类型
3
(或刚才确定的任何适当的数字)。 - 出现提示时,输入类型代码
AF00
。 - 键入
w
以保存您的更改。(系统将要求您进行验证。)
这应该可以解决问题。(如果您从 OS X 执行此操作,则可能需要重新启动。)有可能需要输入AF05
而不是AF00
类型代码,因此如果它不起作用,请尝试重复该过程,但要进行更改。
其他工具可能也能修复它,但我对具体步骤不太熟悉。(也许删除parted
GParted 中的“msftdata 标志”就可以了……)